我需要一个方法来找出一个日期时间.time一个接一个日期时间.time很简单,但是。。。问题是我的时间值是24小时制的,所以这并不是简单的从一个值到另一个值求反。相反,我需要计算出时间a之后的时间b是多长,如果我要在时间上向前数数,并且在午夜时间循环,即
time_a = 09:00
time_b = 04:00
这里的时间是19小时后的时间
def time_after_time(time_a, time_b):
a_hour = time_a.hour
a_minute = time_a.minute
b_hour = time_b.hour
b_minute = time_b.minute
out_hour = b_hour - a_hour
out_minute = b_minute - a_minute
if out_hour < 0:
out_hour += 24
if out_minute < 0:
out_hour -= 1
out_minute += 60
return datetime.time(out_hour, out_minute)
这是我第一次尝试,但结果是错误的。你知道吗
有人能想出一个更干净/正确的方法来做这件事吗?你知道吗
根据我的经验,必要的是,每当你从外部来源收到一个基于24小时的时间戳时,你应该立即在内部将其转换为绝对时间,例如从1970年开始的秒。例如,参见
C
,https://stackoverflow.com/a/12859648/318716中的方法。你知道吗一旦你做到这一点,那么简单的时间减法就变得简单有效了。你知道吗
如果您不这样做,那么时间戳相差48小时的问题最终会出现。你知道吗
这种转换有时不应基于当前日期/时间,例如,如果您正在对历史存档数据进行分析或回放。你知道吗
一定要使用日期时间。日期时间次。。。你知道吗
你可以转换日期时间.time与…约会
是09:00-10:00=1小时还是25小时?那最多24小时吗?你知道吗
以下是我的解决方案:
你可以在codepad.org上测试它。你知道吗
相关问题 更多 >
编程相关推荐