2017-10-21 135 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早。 –