我现在用这个代码得到两个不同时间的差
from time import strftime
from datetime import datetime
fmt = '%H:%M'
currentTimeString = strftime(fmt) #get the current time
gameTimeObject = datetime.strptime(time , fmt)
currentTimeObject = datetime.strptime(currentTimeString, fmt)
diff = currentTimeObject-gameTimeObject
diff_minutes = diff.seconds/60
我有一个for循环,循环不同的时间值,11:00,12:00,13:00,14:00。在
在这个例子中,假设currentTime是13:23
当时间过去的时候,我得到了我想要的结果,11:00,12:00,13:00,但是当时间到了14:00时,差异分钟显示值1403
为什么这是一个问题,因为我是在代码执行之后才这样做的
^{pr2}$正如你所看到的,还没有过去的时间将变为“FT”,因为我用if语句来判断一场比赛的时间是否已经结束。我该怎么解决这个问题?在
---按要求编辑更多我想做的事情的信息
所以我在这里要做的是把时间变量设置为足球比赛。以上提到的13:00等不同时间是游戏开始的时间。所以我想做的是,如果当前时间是13:23,那么我会把那场足球赛的时间标签改为23分钟,因为23分钟过去了。如果已经过去的总时间超过108分钟,那么这意味着游戏结束了,这就是为什么我在最后一个If语句中将时间变量设置为“FT”。在
正如我之前所说的,这就是问题发生的地方,因为diff_minutes给了我一个大于108分钟的值,当游戏尚未开始时,它会将时间变量更改为“FT”,这是错误的
所以我们真正应该做的是只处理datetime对象。当你对它们进行数学运算时,会产生timedelta对象。这些timedelta对象具有可比性。这使得编写代码成为秘书。另外-由于if/elif/else树是短路的,所以不需要检查时间是否在两倍之间,只需小于上限。我承认我对足球的了解仅限于知道这是一场90分钟的比赛,所以你可能需要调整这一点,但它应该给你一个想法。在
PS:说真的,圭多?在
PPS:我应该在发布之前测试一下。很抱歉我没有。在
相关问题 更多 >
编程相关推荐