2017-10-18 188 views
4

我有兩個值。我認爲要採取行動的預計時間量,以及實際完成該任務需要多長時間的價值。當搜索解決方案時,我發現此代碼可以正常工作,直到完成任務花費的時間超過預期的時間。Python 3 - 計算兩個時間值之間的差異

Expected = '00:00:20' 
Actual = '00:00:25' 

FMT = '%H:%M:%S' 

Difference = datetime.strptime(Expected, FMT) - datetime.strptime(Actual, FMT) 

print(Difference) 

這將打印

-1 day, 23:59:55 

所以我想知道我怎樣才能得到結果顯示爲-00:00:05,而不是?

+0

一種解決方法可能是計算絕對值,並檢查正負號。 –

+0

你是否意識到自己在做預期 - 實際?這可能是問題所在。 – user452570

+0

理論上,您可以將所有內容都轉換爲秒,然後手動進行計算。儘管如此,還是有辦法做到這一點。 –

回答

6

只要做到這3個步驟:

  1. 步:比較2時間值
  2. 步:從更大的一個
  3. 步減去較小的一個:如果你需要扭轉的順序2.步驟中的數字,那麼你有一個負數的時間,否則差異是積極的。

編輯: 整個代碼如下所示:

from datetime import datetime 
Expected = '00:00:20' 
Actual = '00:00:25' 

FMT = '%H:%M:%S' 

time1=datetime.strptime(Expected, FMT) 
time2=datetime.strptime(Actual, FMT) 
rev=time1<time2 
Difference = time2 - time1 if rev else time1-time2 
print("-" if rev else "",Difference,sep="") 
+0

你是否嘗試過自己的步驟? – roganjosh

+0

是的,我做了,讓我把代碼附加到這... – gyurix

+0

你在開玩笑,只是複製粘貼代碼在這裏:https://repl.it/languages/python3你會看到它的作品完美,我沒有看到降低我的答案的原因。 – gyurix

相關問題