/ / Python отримує значення цілої години між двома об'єктами datetime - python, datetime

Python отримує цілі години значення між двома об'єктами datetime - python, datetime

У мене є два значення часу: "початок" і кінець ". Я хотів би повернути список усіх часових дат, які припадають саме на годину між двома (включно).

Наприклад, "старт" - 09:30, а "кінець" - 14:00 (в той же день). Значення, які я "хотів би повернути", - 10:00, 11:00, 12:00, 13:00, 14:00.

Я здогадуюсь, що ти би робив - це отримати наступне цілечерез годину після "запуску", додайте його до порожнього списку, потім створіть цикл, який додає та години, перевіряє, чи є "менше" (або дорівнює) "кінця", і додайте його до списку, якщо це правда.

Що я не можу розібратися - це як дістатися найближчої цілої години до часу початку дати.

Відповіді:

3 для відповіді № 1

Найпростіше було б замінити хвилини і секунди часу початку на нуль, а потім додати одну годину.

Вам знадобиться окремий випадок, якщо час початку точно в годину, і ви хочете включити його

наприклад

>>> from datetime import datetime, timedelta
>>> start_time = datetime.now()
>>> start_time
datetime.datetime(2011, 5, 18, 20, 38, 55, 546000)
>>> first = start_time.replace(minute=0, second=0, microsecond=0)+timedelta(hours=1)
>>> first
datetime.datetime(2011, 5, 18, 21, 0)
>>>

1 для відповіді № 2

Найкращий спосіб зробити це за допомогою timedelta.

>>> from datetime import datetime, timedelta
>>> start = datetime.now()
>>> if start.minute >= 30:
...     start.replace(minute=0)+timedelta(hours=1)
... else:
...     start.replace(minute=0)