【发布时间】:2020-08-12 02:41:57
【问题描述】:
我正在尝试将以下格式 (ddmmyyyy) 的当前日期与以下格式 (ddmmyyyy) 的未来日期进行比较
我把它们放在那种格式里,这样我就可以很容易地将它们作为整数进行比较。但是,它一直未能通过 if then 测试。
from datetime import datetime, timedelta
StartDay=datetime.today() # Get current date in this format 2020-04-28 19:59:16.901897
EndDay=StartDay+timedelta(60) # I want to be able to add 60 days to StartDay
print(EndDay.strftime('%d%m%Y')) # Print EndDay as an integer 27062020
EndDay=EndDay.strftime('%d%m%Y') # Convert EndDay to make it look like an integer
StartDay=datetime.today().strftime('%d%m%Y') # Convert the StartDay to make it look like an integer
if int(StartDay)>int(EndDay):
print('Game Over!')
else:
pass
我想要实现的是日期的整数值,这样未来日期将始终大于过去/当前日期,如果这有意义的话。
【问题讨论】:
-
只需使用这种格式
'%Y%m%d'。您希望您的格式按重要性顺序排列,从大到小。否则,您的EndDay日将始终更小,因为在大多数情况下(如果不是全部),60 天略少于 2 个月。 -
您的设计存在严重缺陷。 每次你运行这个,
StartDay将被设置为当前日期,所以EndDay永远无法到达。 -
你应该在
StartDay和EndDay都还是datetime对象时进行比较
标签: python python-3.x date datetime time