非常奇怪的是 python 里面并没有直接比较时间 (时间, 时间, 时间 !!! 不是日期, 那些把日期和时间混淆的博客都应该烧到元宇宙去)
本文介绍一种计算两个时间差的算法, 非常简单粗暴. 若有更好用的算法请大佬不吝赐教
由于代码非常简单就不解释了.
def MinusTime(futureTime, passTime): # (datetime.time, datetime.time)
futureTimeStr = str(futureTime)
passTimeStr = str(passTime)
hour1 = int(futureTimeStr.split(":")[0])
hour2 = int(passTimeStr.split(":")[0])
min1 = int(futureTimeStr.split(":")[1])
min2 = int(passTimeStr.split(":")[1])
sec1 = int(futureTimeStr.split(":")[2])
sec2 = int(passTimeStr.split(":")[2])
if(hour1 < hour2):
hour1 += 24
diffHour = hour1 - hour2
if(min1 < min2):
diffHour -= 1
min1 += 60
diffMin = diffHour * 60 + min1 - min2
if(sec1 < sec2):
diffMin -= 1
sec1 += 60
diffSec = diffMin * 60 + sec1 - sec2
return
if __name__ == "__main__":
futureTime = "00:30"
passTime = "23:31"
futureTime = datetime.strptime(futureTime,"%H:%M").time()
passTime = datetime.strptime(passTime,"%H:%M").time()
print(futureTime) # 00:30:00
print(passTime) # 23:31:00
diffTime = MinusTime(futureTime, passTime)
print(diffTime) # 3540