time1 = timedelta(days=2, hours=6.20)
time2 = timedelta(hours=20.10)
sum_time = time1 + time2
print str(sum_time)
print sum_time.total_seconds() / 3600
输出:
3 days, 2:18:00
74.3
如何获得输出 74:18:00 ?
答案 0 :(得分:2)
使用total_Seconds / 3600
,您只能获得十进制格式的小时数。
您可以使用divmod
将秒数分解为完整的小时,分钟和秒:
divmod(a,b)
取两个(非复数)数作为参数,并在使用长除法时返回一对由商和余数组成的数字
代码看起来像这样(我在time2中添加了34秒来检查秒部分是否正确):
from datetime import timedelta
time1 = timedelta(days=2, hours=6.20)
time2 = timedelta(hours=20.10, seconds=34)
sum_time = time1 + time2
print str(sum_time)
hours, seconds = divmod(sum_time.total_seconds(), 3600)
minutes, seconds = divmod(seconds, 60)
print "%d:%02d:%02d" % (hours, minutes, seconds)
,输出结果为:
3 days, 2:18:34
74:18:34
第一个divmod
的结果是74小时(商),剩余的1114秒。
第二个divmod
是从前一行(1114)开始的剩余秒数,并给出18分34秒的结果。