125 lines
4.0 KiB
Python
Executable File
125 lines
4.0 KiB
Python
Executable File
from datetime import datetime
|
|
from datetime import timedelta
|
|
|
|
class DateTimeHelper:
|
|
def __init__(self):
|
|
pass
|
|
|
|
def __init__(self,capturedatetime,timeChange):
|
|
self.datetimestamp=capturedatetime
|
|
self.timeChange=timeChange
|
|
self.offsetTime=DateTimeHelper.applyRelativeTime(self.datetimestamp, self.timeChange)
|
|
|
|
def getDateTimeStamp(self):
|
|
return self.datetimestamp
|
|
|
|
def getTimeChange(self):
|
|
return self.timeChange
|
|
|
|
def getOffsetTime(self):
|
|
return self.offsetTime
|
|
|
|
def getOffsetTimeAsString(self):
|
|
return DateTimeHelper.getDateTimeAsString(self.offsetTime)
|
|
|
|
def toString(self):
|
|
pass
|
|
|
|
@staticmethod
|
|
def getDateTimeAsString(someDateTime):
|
|
if(not isinstance(someDateTime,datetime)):
|
|
raise Exception('Invalid type for parameter')
|
|
return someDateTime.strftime("%m-%d-%Y %H:%M:%S")
|
|
|
|
@staticmethod
|
|
def getDateTimeFromString(someDateTimeString):
|
|
if(not isinstance(someDateTimeString,str)):
|
|
raise Exception('Invalid type for parameter')
|
|
return datetime.strptime(someDateTimeString,"%m-%d-%Y %H:%M:%S")
|
|
|
|
@staticmethod
|
|
def getCurrentDateTime():
|
|
return datetime.now()
|
|
|
|
@staticmethod
|
|
def applyRelativeTime(sometime,relativetime):
|
|
if(not isinstance(sometime,datetime)):
|
|
raise Exception('Invalid type for parameter')
|
|
if(not isinstance(relativetime,str)):
|
|
raise Exception('Invalid type for parameter')
|
|
if relativetime=='just now':
|
|
return sometime
|
|
relativetimesplit=relativetime.split()
|
|
if len(relativetimesplit)==2:
|
|
year=datetime.now().year
|
|
relativetime=relativetime+', '+str(year)
|
|
relativeDate = datetime.strptime(relativetime, '%B %d, %Y')
|
|
days=sometime-relativeDate
|
|
# sometime=sometime-timedelta(days=days)
|
|
sometime=sometime-days
|
|
elif relativetimesplit[1]=='hour' or relativetimesplit[1]=='hours':
|
|
hours=int(relativetimesplit[0])
|
|
sometime=sometime-timedelta(hours=hours)
|
|
elif relativetimesplit[1]=='day' or relativetimesplit[1]=='days':
|
|
days=int(relativetimesplit[0])
|
|
sometime=sometime-timedelta(days=days)
|
|
elif relativetimesplit[1]=='minute' or relativetimesplit[1]=='minutes':
|
|
minutes=int(relativetimesplit[0])
|
|
sometime=sometime-timedelta(minutes=minutes)
|
|
return sometime
|
|
|
|
list=[]
|
|
|
|
|
|
# date_time_str='03-03-2023 12:00:00'
|
|
# capturedatetime = datetime.strptime(date_time_str, '%m-%d-%Y %H:%M:%S')
|
|
# Item.applyRelativeTime(capturedatetime, '2 days ago')
|
|
|
|
deltaTime='March 7'
|
|
now = datetime.now()
|
|
relativeTime=DateTimeHelper.applyRelativeTime(now, deltaTime)
|
|
relativeTimeStr=DateTimeHelper.getDateTimeAsString(relativeTime)
|
|
|
|
print('time:{p1}'.format(p1=DateTimeHelper.getDateTimeAsString(now)))
|
|
print('delta:{p1}'.format(p1=deltaTime))
|
|
print('result:{p1}'.format(p1=relativeTimeStr))
|
|
|
|
|
|
#now = Item.getCurrentDateTime()
|
|
#capturedatetime = Item.getDateTimeAsString(now)
|
|
|
|
#Item.applyRelativeTime(capturedatetime, 'February 24')
|
|
|
|
|
|
list.append(Item(capturedatetime,'February 24'))
|
|
list.append(Item(capturedatetime,'2 days ago'))
|
|
list.append(Item(capturedatetime,'21 days ago'))
|
|
list.append(Item(capturedatetime,'1 day ago'))
|
|
list.append(Item(capturedatetime,'1 minute ago'))
|
|
list.append(Item(capturedatetime,'5 minutes ago'))
|
|
|
|
for item in list:
|
|
print (item)
|
|
|
|
|
|
|
|
# date_time_str='01-01-2023 12:00:00'
|
|
# b = datetime.strptime(date_time_str, '%m-%d-%Y %H:%M:%S')
|
|
|
|
# date_time_str='01-01-2023 18:00:00'
|
|
# c = datetime.strptime(date_time_str, '%m-%d-%Y %H:%M:%S')
|
|
|
|
# list.append(a)
|
|
# list.append(b)
|
|
# list.append(c)
|
|
|
|
# print(list)
|
|
|
|
# another=sorted(list, key=lambda x:x)
|
|
|
|
# print(another)
|
|
# for item in another:
|
|
# print('{:02d}-{:02d}-{:d} {:02d}:{:02d}:{:02d}'.format(item.month,item.day,item.year,item.hour,item.minute,item.second))
|
|
|
|
|