2016-08-04 15 views
1

HH:MM形式のユーザーからの入力として時間がかかります。 00:00と言いましょう。今は1分を加えて00:01、00:02などにしたいと思います。時間と分でPythonの時間を計算して差を計算する

また、start_timeend_timeという2つの入力を文字列として取ります。 2つの時間の差異を数分でどのように計算することができますか?

私はPythonには新しく、どんな助けもありがとう!

私は以下のコードを使用しています:

#to calculate difference in time 
time_diff = datetime.strptime(end_time, '%H:%M') - datetime.strptime(start_time, '%H:%M') 
minutes = int(time_diff.total_seconds()/60) 
print minutes 

#to convert string to time format HH:MM 
start_time = datetime.strptime(start_time, '%H:%M').time() 

#to increment time by 1 minute 
start_time = start_time + datetime.timedelta(minutes=1) 

私はstart_time使用してはtimedeltaをインクリメントすることはできませんよ。

+0

をあなたが行った試みや問題のある箇所を表示できますか? – James

+0

@James説明に自分のコードを追加しました。これをチェックしてください。 –

答えて

1
import datetime 

time_diff = datetime.datetime.strptime(end_time, '%H:%M') - datetime.datetime.strptime(start_time, '%H:%M') 
minutes = int(time_diff.total_seconds()/60) 
print minutes 

datetimestrptimeと呼ばれるクラスメソッドを持っていdatetimeモジュールのクラスです。命名法はちょっと混乱しますが、これは意図したとおりに機能するはずです。

時間デルタを追加すると、あなたが仕事にそれを取得するためにdatetime対象として開始時間を保存する必要がありますが:

start_datetime = datetime.datetime.strptime(start_time, '%H:%M') 
start_datetime = start_datetime + datetime.timedelta(minutes=1) 
print start_datetime 
+0

ありがとう!私も同じことをしましたが、今は1分で時間を増やすのが難しいです。 –

+0

最初は質問のその部分を見ていなかった - 私は今答えた – James

0

あなたの質問の最初の部分、あなたはdatetime moduleを使用することができます。

from datetime import datetime as dt 
from datetime import timedelta as td 
UsrInput = '00:00' 
fmtString = '%H:%M' 
myTime = dt.strptime(UsrInput, fmtString) 
increment = td(0,1) 
for count in range(10): 
    myTime += increment 
    print (dt.strftime(myTime, fmtString)) 

第二の部分はまたのような、日時を使用します。

from datetime import datetime as dt 
from datetime import timedelta as td 
start_time = '00:01' 
end_time = '00:23' 
fmtString = '%H:%M' 
myStart = dt.strptime(start_time, fmtString) 
myEnd = dt.strptime(end_time, fmtString) 
difference = myEnd - myStart 
print(td.strftime(difference, '%M') 
+0

これは分ではなく増加している。私はどうしたらいいのですか? –