/ / Python получават стойности за целия час между 2 обекта dattime - python, datetime

Python получава стойности за цял час между два обекта от дата-време - Python, datetime

Имам 2 стойности на datetime: "start" и end ". Искам да върна списък с всички дати, които попадат точно в часа между двете (включително).

Например "старт" е 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)