Files
Newsfeed/Test.py
2026-01-29 18:09:56 -05:00

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))