繁体   English   中英

如何使用日期时间模块减去两天之间的军事时间

[英]How to subtract military time between days with datetime module

我正在研究一个延时程序,我希望能够在多天内暂停一整夜。 我使用的是军事时间,当我尝试说18:00:00作为暂停开始而08:00:00作为暂停结束时,我得到一个负数。 我可能可以取24:00:00和18:00:00以及0:00:00和08:00:00之间的差值,并将它们相加以获得答案,但是我想知道是否有什么datetime模块中缺少我可以执行此操作的模块?

from datetime import datetime

pause_start=input('Enter pause start time as 24 hrs (hh:mm:ss): ')
pause_end=input('Enter pause end time as 24 hrs (hh:mm:ss): ')
pause_start=datetime.strptime(pause_start, '%H:%M:%S')
pause_end=datetime.strptime(pause_end, '%H:%M:%S')

total_pause_time=(pause_end-pause_start).total_seconds() 
print(total_pause_time)

input:18:00:00
input:08:00:00
output:-36000.0

我尝试输入25:00:00,并收到一条错误消息,提示时间数据与格式'%H:%M:%S'不匹配,因此我认为它已被正确地读取为军事时间。

您所缺少的是,您正在同一天计算时间。 因此,您从较早的时间中减去了较晚的时间,这将带来负面的结果。 我看到两种解决方案:

  1. 将24小时添加到最终结果中以获得正确的偏移量。

  2. 创建datetime对象,以便今天是18:00:00,明天是08:00:00。 然后减去日期。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM