Как округлить время в python?

Добрый день!

К примеру у меня есть количество секунд, 3590
я, используя timedelta могу получить строковое представление, такое 00:59:50
А мне нужно округлить до 1 часа

Ребята, подскажите, есть ли какой либо простой способ или библиотека чтобы округлить время в Python?
  • Вопрос задан
  • 5248 просмотров
Решения вопроса 2
0xD34F
@0xD34F
Делите ваше количество секунд на количество секунд в часе (3600) - получаете количество часов. Округляете его до целого (метод round), затем умножаете на 3600. В результате у вас получится количество секунд в целом числе часов.
Ответ написан
Комментировать
fox_12
@fox_12 Куратор тега Python
Расставляю биты, управляю заряженными частицами
>>> def round_time(x):
...    hour_in_seconds = 60 * 60
...    half_hour_in_seconds = 60 * 30
...    if x % hour_in_seconds > half_hour_in_seconds:
...         return ((x // hour_in_seconds) + 1) * hour_in_seconds
...    else:
...         return (x // hour_in_seconds) * hour_in_seconds
... 
>>> 
>>> str(datetime.timedelta(seconds=3590))
'0:59:50'
>>> str(datetime.timedelta(seconds=round_time(3590)))
'1:00:00'

>>> str(datetime.timedelta(seconds=390))
'0:06:30'
>>> str(datetime.timedelta(seconds=round_time(390)))
'0:00:00'

>>> str(datetime.timedelta(seconds=5390))
'1:29:50'
>>> str(datetime.timedelta(seconds=round_time(5390)))
'1:00:00'

>>> str(datetime.timedelta(seconds=7390))
'2:03:10'
>>> str(datetime.timedelta(seconds=round_time(7390)))
'2:00:00'
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы