Python メモ

数値を使って時間計算 Python

Pythonで時間計算を実装する場合、単純にint型の値を使って計算すると時間単位では24進数、分秒単位では60進数をつかわなければいけないので、桁上がりを考慮しなければいけません。

これって超面倒なので、Pythonには時間計算用のモジュール datetime があります。

datetime を使えば値を単純に足し引きできるので重宝します。

以下の例はリストに格納された int 型の値を使って時間計算をした実装例です。

 

import datetime


time1 = [2, 15, 30]
time2 = [6, 45, 59]
time3 = [23, 1, 19]
time4 = [5, 24, 3]

time1delta = datetime.timedelta(hours=time1[0], minutes=time1[1], seconds=time1[2])
time2delta = datetime.timedelta(hours=time2[0], minutes=time2[1], seconds=time2[2])
print(time1delta + time2delta)

time3delta = datetime.timedelta(hours=time3[0], minutes=time3[1], seconds=time3[2])
time4delta = datetime.timedelta(hours=time4[0], minutes=time4[1], seconds=time4[2])
print(time3delta + time4delta)

# 出力結果

# 9:01:29
# 1 day, 4:25:22

 

time1 は 2時15分30秒を意味した要素がリストに格納されています。

time1 に time2 を加える事で 2時15分30秒の 6時間45分59秒後の時間を出力しているのが、 time1delta + time2delta です。

time3 は 23時1分19秒を意味した要素がリストに格納されています。

time3 に time4 を加える事で 23時1分19秒の 5時間25分3秒後の時間を出力しているのが、 time3delta + time4delta です。

この場合、24時を超える事で日付を跨いだ事になり次の日の 4時25分22秒である事が正しく出力されています。

 

 

 

-Python, メモ

Copyright© donguri.pyのblog , 2024 All Rights Reserved.