3

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'

なぜなのかご存知ですか?

4

2 に答える 2

6

オブジェクトには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)
于 2010-01-16T23:26:05.480 に答える
0

あなたはあなたの望む結果を得ることができます

t1 = time(12, 0)
t2 = time(11, 0)
td = timedelta(hours=t1.hour-t2.hour, minutes=t1.minute-t2.minute)
于 2010-01-16T23:28:41.490 に答える