datetime.timedelta()
期間をモデル化するために使用します。
from datetime import timedelta
def to_delta(value):
minutes, seconds = map(int, value.split(':'))
return timedelta(minutes=minutes, seconds=seconds)
var_a = to_delta('22:50')
var_b = to_delta('22:30')
var_a + var_b
timedelta()
その後、オブジェクトを分 + 秒の表現に戻すことができます。
def to_minutes_seconds(delta):
return '{:02.0f}:{:02.0f}'.format(*divmod(delta.total_seconds(), 60))
デモ:
>>> var_a = to_delta('22:50')
>>> var_b = to_delta('22:30')
>>> var_a + var_b
datetime.timedelta(0, 2720)
>>> to_minutes_seconds(var_a + var_b)
'45:20'
または、str()
a の結果は次のようtimedelta
にフォーマットされHH:MM:SS
ます。
>>> str(var_a + var_b)
'00:45:20'
あなたのニーズにも合うかもしれません。1 時間を超えるデルタの場合、 と の間に違いがあることに注意してstr()
くださいto_minutes_seconds()
。前者は時間、分、秒を表示しますが、後者は分を表示するだけで、分の値が 60 を超える場合があります。24 時間を超えるデルタには、日数の追加プレフィックスが付けられます。
>>> str(timedelta(minutes=65, seconds=10))
'1:05:10'
>>> to_minutes_seconds(timedelta(minutes=65, seconds=10))
'65:10'
>>> str(timedelta(minutes=(60*24)+1, seconds=10))
'1 day, 0:01:10'