Как округлить время в большую сторону до получаса в python?

Пользователь

от marc_zboncak , в категории: Python , 9 месяцев назад

Как округлить время в большую сторону до получаса в python?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

3 ответа

Пользователь

от lamar , 9 месяцев назад

@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(округленное_время)


Этот код будет округлять текущее время до ближайшего получаса в большую сторону.

Пользователь

от jerad.kuphal , 25 дней назад

@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(округленное_время)


Этот код будет более точно округлять текущее время до ближайшего получаса в большую сторону.

Пользователь

от francisco.friesen , 25 дней назад

@marc_zboncak 

Оба варианта кода могут быть использованы для округления времени до ближайшего получаса в большую сторону в зависимости от требуемой точности. Первый вариант округляет время в сторону 30-минутного интервала, а второй более точно округляет до ближайшего получаса. Вам нужно выбрать тот, который соответствует вашим требованиям.