Newer
Older
# coding=utf-8
from django.utils import timezone
import datetime, time
from datetime import timedelta
def timeit(method):
def timed(*args, **kw):
ts = time.time()
result = method(*args, **kw)
te = time.time()
if 'log_time' in kw:
name = kw.get('log_name', method.__name__.upper())
kw['log_time'][name] = int((te - ts) * 1000)
else:
print '%r %2.2f ms' % \
(method.__name__, (te - ts) * 1000)
return result
return timed
def get_today_midnight_date():
today = timezone.now()
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 both dates must have the same format !
todate is not included in the range
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