pythonで時間の計算をやってみた
やりたいこと
ある時刻「aa:aa」と「bb:bb」の差分の時間を計算させたい
なんとなくpythonで試してみる。
ちょっと調べるとweb上に沢山載っているので、ありがたく参考にした。
>>> import time >>> from datetime import datetime >>> t1 = '10:00' >>> t2 = '08:35' >>> t1 - t2 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: unsupported operand type(s) for -: 'str' and 'str'
変数に時間を入れてみて、引き算してみる。文字列とみなされるので引き算は当然エラー。
>>> time1=time.strptime(t1, '%H:%M') >>> print (time1) time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=10, tm_min=0, tm_sec=0, tm_wday=0, tm_yday=1, tm_isdst=-1) >>> time2=time.strptime(t2, '%H:%M') >>> time1-time2 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: unsupported operand type(s) for -: 'time.struct_time' and 'time.struct_time'
time.strptime()という関数が文字列を時刻の形にデータを直してくれるみたい。
年月日は指定していないので、今回は無視する。これもダメ。
#tm_wday
#tm_yday
#tm_isdst
#については調べる
もう少し調べてみると、datetime.strptime()というのもあるみたい。試してみる。
>>> time3=datetime.strptime(t1, '%H:%M') - datetime.strptime(t2,'%H:%M') >>> time3 datetime.timedelta(0, 5100) >>> print(time3) 1:25:00 >>> print((time3)*2) 2:50:00 >>>
これは内部では秒に変換してくれているみたい。この状態で引き算してみると、行けた。