2017-10-21 108 views
1

我工作的时间流逝计划,我希望能多天暂停过夜。我使用军事时间,当我尝试说18:00:00为暂停开始,08:00:00为暂停结束时,我得到一个负数。我大概可以采取24:00:00 18:00:00和0:00:00和08:00:00和之间的差异,将它们添加到得到的答案,但我想知道,如果有什么我在日期时间模块中缺少允许我这样做?如何减去天的军事时间日期时间模块

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小时添加到结果得到你想要的东西。 –

+0

@ Code-Apprentice:感谢您的意见。我很难相信在日期时间模块中没有办法做到这一点。 – Kurt

+0

看到我的答案。如果您想使用日期时间模块,则需要正确设置相对日期。 –

回答

0

你缺少什么,是你用在同一天的时间计算。所以你要从较早的时间中减去后面的时间,这会给出一个负面的结果。我看到两个解决方案:

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

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

+0

是的,我知道这是被认为在同一天,但我的问题是时间流逝是许多天,我不想在每天进入。我希望能够让用户输入时间开始和结束时间,并且每天都使用它。只需将24小时添加到最终结果可能是唯一的出路。 – Kurt

+0

@kurt你不需要输入很多天。只需使用今天和明天。或连续两天。 –

+0

@kurt或者添加一天pause_end的它比pause_start早。 –