在Python中计算循环事件的剩余时间
场景是这样的:给定一个完全任意的UTC起始日期,有一个事件每24小时重复一次。我需要计算在当前本地时间下,距离下一个事件还有多少时间。
理想情况下,一个完美的函数应该能做到:
time_since_start = now - start_time
remaining_seconds = time_remaining(time_since_start)
编辑:一些澄清说明。start_time
定义了“纪元”,也就是事件开始重复以来的全球起始时间。其次,now
是一个发生在start_time
之后的任意时间,本地时间。
问题不在于计算下一个事件的发生时间(这只是简单地在start_time
上加24小时),而是如果我选择的时间恰好在两个事件之间,那么距离下一个事件还有多少时间。
我会选择用秒来计算,因为秒可以快速转换成天、分钟和小时。使用datetime
会更好(但不是必须),因为我想减少对其他第三方模块的依赖。
我尝试使用datetime
和timedelta
,但计算出的差值总是错误的。接下来该怎么做才好呢?
1 个回答
0
你想要的就是 开始时间 - 现在的时间 + (一天)