Чтобы округлить объект Python datetimeдо ближайшего часа, вы можете использовать несколько методов. Вот несколько примеров:
Метод 1: использование datetime.timedeltaи datetime.datetime.replace:
import datetime
def round_to_nearest_hour(dt):
rounded = dt.replace(second=0, microsecond=0)
if rounded.minute >= 30:
rounded += datetime.timedelta(hours=1)
return rounded
Метод 2: использование datetime.timedeltaи целочисленного деления:
import datetime
def round_to_nearest_hour(dt):
rounded = dt.replace(second=0, microsecond=0)
rounded += datetime.timedelta(minutes=30)
rounded -= datetime.timedelta(minutes=rounded.minute % 60)
return rounded
Метод 3: использование datetime.datetimeи datetime.timedeltaс divmod:
import datetime
def round_to_nearest_hour(dt):
rounded = dt.replace(second=0, microsecond=0)
rounded += datetime.timedelta(hours=1) // 2
rounded -= datetime.timedelta(minutes=rounded.minute % 60)
return rounded
Эти методы округляют заданный объект datetimeдо ближайшего часа. Вы можете выбрать метод, который лучше всего соответствует вашим потребностям.