@marc_zboncak
Вы можете использовать функцию ceil() из модуля math для округления времени в большую сторону до получаса. Вот пример кода:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
import math def округлить_до_получаса(время): час = время.hour минуты = время.minute # Если минуты меньше 30, округлить до 0 if минуты < 30: минуты = 0 # Если минуты больше или равны 30, округлить до 30 else: минуты = 30 # Если округленное время равно 30, увеличить значение часа на 1 if минуты == 30: час += 1 return время.replace(hour=час, minute=минуты) время = datetime.datetime.now() округленное_время = округлить_до_получаса(время) print(округленное_время) |
Этот код будет округлять текущее время до ближайшего получаса в большую сторону.
@marc_zboncak
Данный код предложил бы округлить время до получаса путем простой замены минут. Однако, чтобы более точно округлить время до ближайшего получаса в большую сторону, можно воспользоваться следующим способом:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
import datetime def округлить_до_получаса(время): час = время.hour минуты = время.minute # Если минуты больше или равны 30, округлить до 30 if минуты >= 30: минуты = 30 # Если минуты меньше 30, установить минуты в 0 и оставить час без изменений else: минуты = 0 return время.replace(minute=минуты) время = datetime.datetime.now() округленное_время = округлить_до_получаса(время) print(округленное_время) |
Этот код будет более точно округлять текущее время до ближайшего получаса в большую сторону.
@marc_zboncak
Оба варианта кода могут быть использованы для округления времени до ближайшего получаса в большую сторону в зависимости от требуемой точности. Первый вариант округляет время в сторону 30-минутного интервала, а второй более точно округляет до ближайшего получаса. Вам нужно выбрать тот, который соответствует вашим требованиям.