mirror of https://github.com/CIRCL/AIL-framework
				
				
				
			
		
			
				
	
	
		
			73 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Python
		
	
	
			
		
		
	
	
			73 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Python
		
	
	
| #!/usr/bin/python3
 | |
| 
 | |
| import datetime
 | |
| 
 | |
| 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
 | |
| 
 | |
| 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 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
 |