mirror of
https://github.com/ail-project/ail-framework.git
synced 2024-11-23 14:37:17 +00:00
83 lines
2.6 KiB
Python
83 lines
2.6 KiB
Python
#!/usr/bin/python3
|
|
|
|
import datetime
|
|
|
|
# # TODO: refractor me
|
|
|
|
class Date(object):
|
|
"""docstring for Date"""
|
|
def __init__(self, *args):
|
|
if len(args) == 3:
|
|
self.year = str(args[0])
|
|
self.month = str(args[1])
|
|
self.day = str(args[2]).zfill(2)
|
|
if len(args) == 1:
|
|
self.year = str(args[0])[:4]
|
|
self.month = str(args[0])[4:6]
|
|
self.day = str(args[0])[6:]
|
|
|
|
def __str__(self):
|
|
return "{0}{1}{2}".format(self.year, self.month, self.day)
|
|
|
|
def _get_year(self):
|
|
return self.year
|
|
|
|
def _get_month(self):
|
|
return self.month
|
|
|
|
def _get_day(self):
|
|
return self.day
|
|
|
|
def _set_year(self, year):
|
|
self.year = year
|
|
|
|
def _set_month(self, month):
|
|
self.month = month
|
|
|
|
def _set_day(self, day):
|
|
self.day = day
|
|
|
|
def substract_day(self, numDay):
|
|
computed_date = datetime.date(int(self.year), int(self.month), int(self.day)) - datetime.timedelta(numDay)
|
|
comp_year = str(computed_date.year)
|
|
comp_month = str(computed_date.month).zfill(2)
|
|
comp_day = str(computed_date.day).zfill(2)
|
|
return comp_year + comp_month + comp_day
|
|
|
|
def date_add_day(date, num_day=1):
|
|
new_date = datetime.date(int(date[0:4]), int(date[4:6]), int(date[6:8])) + datetime.timedelta(num_day)
|
|
new_date = str(new_date).replace('-', '')
|
|
return new_date
|
|
|
|
def date_substract_day(date, num_day=1):
|
|
new_date = datetime.date(int(date[0:4]), int(date[4:6]), int(date[6:8])) - datetime.timedelta(num_day)
|
|
new_date = str(new_date).replace('-', '')
|
|
return new_date
|
|
|
|
# # TODO: remove me ## FIXME:
|
|
def get_date_range(num_day):
|
|
curr_date = datetime.date.today()
|
|
date = Date(str(curr_date.year)+str(curr_date.month).zfill(2)+str(curr_date.day).zfill(2))
|
|
date_list = []
|
|
|
|
for i in range(0, num_day+1):
|
|
date_list.append(date.substract_day(i))
|
|
return list(reversed(date_list))
|
|
|
|
def get_previous_date_list(num_day):
|
|
curr_date = datetime.date.today()
|
|
date = Date(str(curr_date.year)+str(curr_date.month).zfill(2)+str(curr_date.day).zfill(2))
|
|
date_list = []
|
|
for i in range(0, num_day+1):
|
|
date_list.append(date.substract_day(i))
|
|
return list(reversed(date_list))
|
|
|
|
def substract_date(date_from, date_to):
|
|
date_from = datetime.date(int(date_from[0:4]), int(date_from[4:6]), int(date_from[6:8]))
|
|
date_to = datetime.date(int(date_to[0:4]), int(date_to[4:6]), int(date_to[6:8]))
|
|
delta = date_to - date_from # timedelta
|
|
l_date = []
|
|
for i in range(delta.days + 1):
|
|
date = date_from + datetime.timedelta(i)
|
|
l_date.append( date.strftime('%Y%m%d') )
|
|
return l_date
|