Как сложить datetime.time и datetime.timedelta
Подскажите пожалуйста как решить проблему?
Функция генератор принимает два аргумента (кортежи с 3 целыми числами) и должна возвращать первичное время time_start и на каждой следующей итерации возвращать предыдущий результат +1 секунда. При этом час окончания может быть меньше от начального.
Функцию я сделал:
import datetime
from datetime import time
def time_range(time_start: tuple, time_end: tuple) -> tuple:
start = time(time_start[0], time_start[1], time_start[2])
end = time(time_end[0], time_end[1], time_end[2])
step = datetime.timedelta(seconds=1)
while start <= end:
new_result = start + step
yield new_result
t_range = time_range(time_start=(10, 0, 0), time_end=(10, 0, 3))
print(next(t_range)) # == (10, 0, 0)
print(next(t_range)) # == (10, 0, 1)
print(next(t_range)) # == (10, 0, 2)
Но есть две проблемы, которые не могу решить:
- Выдает ошибку и не складывает datetime.time и datetime.timedelta (в документации почитал, но так и не понял как можно решить эту проблему).
- Не могу сообразить как возвращать первичное время time_start, а уже после этого возвращать время + 1 секунда?
Источник: Stack Overflow на русском