日期减法:事件是否发生?
Dates subtraction: has the event occurred or not?
如果我有每天的日期时间 - 如何找出事件是否已经发生,通过减去 datetime.now()
让我们每天在15:35开会吧。今天 John 来得早 - 12:45,但 Alex 迟到了 2 小时。和 15 分钟。 (到达 17:40)。
meet_dt = datetime(year=2015, month=8, day=19, hour=15, minute=35)
john_dt = datetime(year=2015, month=8, day=19, hour=12, minute=45)
alex_dt = datetime(year=2015, month=8, day=19, hour=17, minute=40)
print(meat_dt - john_dt) # came before > 2:50:00
print(meat_dt - alex_dt) # came after > -1 day, 21:55:00
如果我少带走大日期 - 那么一切都很好,但相反我收到 -1 天,21:55:00 为什么不 -2:15:00,多糟糕的一天?
因为时间增量是标准化的
timedelta 的除天字段以外的所有部分始终为非负数,as described in the documentation。
顺便说一下,如果你想先看看发生了什么,就不要做这个减法。直接与<
比较即可:
if then < datetime.datetime.now():
# then is in the past
如果我有每天的日期时间 - 如何找出事件是否已经发生,通过减去 datetime.now()
让我们每天在15:35开会吧。今天 John 来得早 - 12:45,但 Alex 迟到了 2 小时。和 15 分钟。 (到达 17:40)。
meet_dt = datetime(year=2015, month=8, day=19, hour=15, minute=35)
john_dt = datetime(year=2015, month=8, day=19, hour=12, minute=45)
alex_dt = datetime(year=2015, month=8, day=19, hour=17, minute=40)
print(meat_dt - john_dt) # came before > 2:50:00
print(meat_dt - alex_dt) # came after > -1 day, 21:55:00
如果我少带走大日期 - 那么一切都很好,但相反我收到 -1 天,21:55:00 为什么不 -2:15:00,多糟糕的一天?
因为时间增量是标准化的
timedelta 的除天字段以外的所有部分始终为非负数,as described in the documentation。
顺便说一下,如果你想先看看发生了什么,就不要做这个减法。直接与<
比较即可:
if then < datetime.datetime.now():
# then is in the past