diff --git a/smash/web/utils.py b/smash/web/utils.py index 85341925a55903081ea73c114c887f38f6078b89..81a18cfec87bf008d0d9f5fe78c9960fee9edf6a 100644 --- a/smash/web/utils.py +++ b/smash/web/utils.py @@ -1,6 +1,7 @@ # coding=utf-8 from django.utils import timezone import datetime, time +from datetime import timedelta def timeit(method): def timed(*args, **kw): @@ -21,3 +22,24 @@ def get_today_midnight_date(): today_midnight = datetime.datetime(today.year, today.month, today.day, tzinfo=today.tzinfo) return today_midnight +def get_weekdays_in_period(fromdate, todate): + ''' + fromdate and todate must be generated using datetime.date or datetime.datetime like: + + from datetime import date + fromdate = date(2010,1,1) + todate = date(2010,3,31) + + fromdate = datetime.datetime(2018, 10, 3, 15, 00, 00) + todate = datetime.datetime.today() + + but they must have the same format ! + + + Weekdays are returned as isoweekdays like the form described in week_choices from constants.py (starting at 1) + ''' + if todate < fromdate: + return set([]) + day_generator = (fromdate + timedelta(day) for day in xrange((todate - fromdate).days)) + weekdays = set([date.isoweekday() for date in day_generator]) + return weekdays \ No newline at end of file