当a大于b时求时差

2024-04-19 08:19:26 发布

您现在位置:Python中文网/ 问答频道 /正文

当a和b关闭时,代码工作正常。我试着用2359作为a,1作为b,它给出了正确的小时数,但给出的是1438分钟,而不是58分钟。我知道这是因为它不会改变a的分钟值。有什么建议可以解决这个问题吗。我还尝试了添加%1440的方法,但没有成功

numA = int(input("A departs at: "))
Ahours = numA // 100
Aminutes = numA % 100
numA = Ahours * 60 + Aminutes

numB = int(input("B departs at: "))
Bhours = numB // 100
Bminutes = numB % 100
numB = Bhours * 60 + Bminutes

diffMin = abs(numB - numA)
diffHours = diffMin // 60

2条回答

您确定行numB = Bhours * 60 + Bminutes不应读取trainB = Bhours * 60 + Bminutes

还有,为什么要费尽心机去计算trainAtrainB,然后在最后计算差异时不使用它们呢

代码当前将diffMin设置为时间a和时间b之间的总分钟数。这包括两次之间的多个小时。要使其不这样做,请减去适当的分钟数:

#get numB
#get numA
diffMin = abs(numB-numA)
diffHours = diffMin // 60
diffMin -= 60*diffHours

也可以使用模数60:

#get numB
#get numA
diffMin = abs(numB-numA)
diffHours = diffMin // 60
diffMin %= 60

您还可以使用datetime模块,该模块具有一些非常好的处理日期和时间的功能

相关问题 更多 >