2017-10-18 11 views
4

私は2つの値を持っています。私は行動が取ると思う予想される時間と、実際にその仕事を完了するのにどれくらいの時間がかかったかの値。解決策を探しているとき、私はこのコードが正常に動作することを発見しました。Python 3 - 2つの時間値の差を計算する

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. ステップ値:大きな1つの
  3. ステップから小さい方を引く:あなたはの順序を逆にするために必要な場合を2つのステップの数字は、負の時間量を持っています。それ以外の場合は、正の値になります。

EDIT:

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それは完全に動作することがわかります私の答えをdownvotingの理由は表示されません。 – gyurix

関連する問題