在Python中计算循环事件的剩余时间

1 投票
1 回答
2882 浏览
提问于 2025-04-16 05:15

场景是这样的:给定一个完全任意的UTC起始日期,有一个事件每24小时重复一次。我需要计算在当前本地时间下,距离下一个事件还有多少时间。

理想情况下,一个完美的函数应该能做到:

time_since_start = now - start_time
remaining_seconds = time_remaining(time_since_start)

编辑:一些澄清说明。start_time定义了“纪元”,也就是事件开始重复以来的全球起始时间。其次,now是一个发生在start_time之后的任意时间,本地时间

问题不在于计算下一个事件的发生时间(这只是简单地在start_time上加24小时),而是如果我选择的时间恰好在两个事件之间,那么距离下一个事件还有多少时间。

我会选择用秒来计算,因为秒可以快速转换成天、分钟和小时。使用datetime会更好(但不是必须),因为我想减少对其他第三方模块的依赖。

我尝试使用datetimetimedelta,但计算出的差值总是错误的。接下来该怎么做才好呢?

1 个回答

0

你想要的就是 开始时间 - 现在的时间 + (一天)

撰写回答