2 つの時間オブジェクトを減算できないのはなぜですか? たとえば、12:00 - 11:00 = 1:00
from datetime import time
time(12,00) - time(11,00) # -> timedelta(hours=1)
datetime.time.__sub__
欠けているようです
TypeError: サポートされていないオペランド型 -: 'datetime.time' および 'datetime.time'
なぜなのかご存知ですか?
2 つの時間オブジェクトを減算できないのはなぜですか? たとえば、12:00 - 11:00 = 1:00
from datetime import time
time(12,00) - time(11,00) # -> timedelta(hours=1)
datetime.time.__sub__
欠けているようです
TypeError: サポートされていないオペランド型 -: 'datetime.time' および 'datetime.time'
なぜなのかご存知ですか?
オブジェクトにはtime
日付がないため、たとえば、12:00
が (たとえば) 水曜日で、11:00
がその前の火曜日である場合、差は 1 時間ではなく 25 時間になります (24 の任意の倍数が加算または減算される可能性があります)。それらが実際に同じ日付であることがわかっている場合は、それぞれに任意の日付を適用して (2 つのdatetime
オブジェクトを作成)、それらを差し引くことができます。例えば:
import datetime
def timediff(t1, t2):
td = datetime.date.today()
return datetime.datetime.combine(td, t1) - datetime.datetime.combine(td, t2)
あなたはあなたの望む結果を得ることができます
t1 = time(12, 0)
t2 = time(11, 0)
td = timedelta(hours=t1.hour-t2.hour, minutes=t1.minute-t2.minute)