forked from uncloud/uncloud
33 lines
1.1 KiB
Python
33 lines
1.1 KiB
Python
|
from django.utils import timezone
|
||
|
|
||
|
|
||
|
def start_of_month(a_day):
|
||
|
""" Returns first of the month of a given datetime object"""
|
||
|
return a_day.replace(day=1,hour=0,minute=0,second=0, microsecond=0)
|
||
|
|
||
|
def end_of_month(a_day):
|
||
|
""" Returns first of the month of a given datetime object"""
|
||
|
|
||
|
_, last_day = monthrange(a_day.year, a_day.month)
|
||
|
return a_day.replace(day=last_day,hour=23,minute=59,second=59, microsecond=0)
|
||
|
|
||
|
def start_of_this_month():
|
||
|
""" Returns first of this month"""
|
||
|
a_day = timezone.now()
|
||
|
return a_day.replace(day=1,hour=0,minute=0,second=0, microsecond=0)
|
||
|
|
||
|
def end_of_this_month():
|
||
|
""" Returns first of this month"""
|
||
|
a_day = timezone.now()
|
||
|
|
||
|
_, last_day = monthrange(a_day.year, a_day.month)
|
||
|
return a_day.replace(day=last_day,hour=23,minute=59,second=59, microsecond=0)
|
||
|
|
||
|
def end_before(a_date):
|
||
|
""" Return suitable datetimefield for ending just before a_date """
|
||
|
return a_date - datetime.timedelta(seconds=1)
|
||
|
|
||
|
def start_after(a_date):
|
||
|
""" Return suitable datetimefield for starting just after a_date """
|
||
|
return a_date + datetime.timedelta(seconds=1)
|