在Python中计算重复事件的剩余时间

在Python中计算重复事件的剩余时间,python,datetime,Python,Datetime,该场景如下:给定UTC中完全任意的开始日期,有一个事件每24小时重复一次。我需要计算,考虑到当前的当地时间,在下一个事件之前还有多少时间 理想情况下,理想函数可以: time_since_start = now - start_time remaining_seconds = time_remaining(time_since_start) 编辑:一些澄清。开始时间定义历元,即自事件开始重复以来的全局开始时间。第二,现在是一个任意时间,发生在开始时间之后,本地 问题不在于计算下一个事件的发生时

该场景如下:给定UTC中完全任意的开始日期,有一个事件每24小时重复一次。我需要计算,考虑到当前的当地时间,在下一个事件之前还有多少时间

理想情况下,理想函数可以:

time_since_start = now - start_time
remaining_seconds = time_remaining(time_since_start)
编辑:一些澄清。开始时间定义历元,即自事件开始重复以来的全局开始时间。第二,现在是一个任意时间,发生在开始时间之后,本地

问题不在于计算下一个事件的发生时间,这将简单地增加24小时的开始时间,但如果我选择一个介于一个事件和另一个事件之间的时间,那么在下一个事件之前还有多少时间

我会选择秒,因为它们可以快速解析为天、分钟和小时。使用datetime将是首选,但与其他第三方模块相比不是必需的,因为我正在尝试减少依赖项的数量


我尝试使用datetime和timedelta,但两者的区别总是不正确的。最好的方法是什么?

您想要的是开始时间-现在+一天

如果这两个项目是日期时间项目,则不起作用,因为它们不能减去整数。设置的问题是减法错误。如果你想知道下一个事件的时间,你需要做下一个事件的时间-现在。下一个事件的时间是一天+开始时间。类似于:秒=开始时间-datetime.datetime.now+datetime.timedeltadays=1.5秒;打印“%d小时%d分钟%d秒“%s/3600,秒/60%秒/3600*60,秒%60给定第一个答案,我意识到我的解释不正确。我更新了问题,希望现在更清楚。@Einar:我的原始答案与你的问题有关。利维贝特进一步澄清了这一点。请考虑一下。