Веб-версияОткрыть в Telegram

ПостДержите капельку знаний для работы с временем в Python. Речь пойдёт о timedelta - разнице между двумя точками во времени…

10 октября 2024
C
Cool and Fun Python
Держите капельку знаний для работы с временем в Python. Речь пойдёт о timedelta - разнице между двумя точками во времени. Решим простую задачу, сколько секунд прошло между двумя датами. Для простоты возьмём сегодняшнее число и время с интервалом в один час. Вначале у нас всё хорошо. from datetime import datetime dt_gt = datetime(2024, 10, 10, 11, 11) dt_lt = datetime(2024, 10, 10, 10, 11) td = dt_gt - dt_lt print(f'<{dt_gt}> - <{dt_lt}> = <{td}>') print(f'{td.seconds = }') # Результат # <2024-10-10 11:11:00> - <2024-10-10 10:11:00> = <1:00:00> # td.seconds = 3600 Из большего значения (более поздней даты) вычитаем меньшее значение. И получаем ожидаемую разницу в один час - 1:00:00. У timedelta есть удобное свойство, seconds. Оно вернуло 3600 секунд. Познавательная минутка 🤓 В одном часе 60 минут. В одной минуте 60 секунд. Следовательно в одном часе 60 × 60 = 3600 секунд. А ещё в сутках 24 часа или 86400 секунд. Эти знания нам пригодятся после второго примера. А теперь поменяем местами даты. from datetime import datetime dt_gt = datetime(2024, 10, 10, 11, 11) dt_lt = datetime(2024, 10, 10, 10, 11) td = dt_lt - dt_gt print(f'<{dt_lt}> - <{dt_gt}> = <{td}>') print(f'{td.seconds = }') # Результат # <2024-10-10 10:11:00> - <2024-10-10 11:11:00> = <-1 day, 23:00:00> # td.seconds = 82800 Ранее мы убедились, что между датами 1 час или 3600 секунд. Но timedelta сообщает о разнице в 82800 секунд. 😨 Если присмотреться, timedelta теперь минус один день и плюс 23 часа. Считаем -1 день = -24 часа. -24 + 23 = -1 час или -3600 секунд. Получается, что разница во времени посчитана верно. Но ожидаемы -3600 секунд мы не получили. Что делать? 🤔 Смотреть пример 3. from datetime import datetime dt_gt = datetime(2024, 10, 10, 11, 11) dt_lt = datetime(2024, 10, 10, 10, 11) td = dt_lt - dt_gt print(f'<{dt_lt}> - <{dt_gt}> = <{td}>') print(f'{td.total_seconds() = }') # Результат # <2024-10-10 10:11:00> - <2024-10-10 11:11:00> = <-1 day, 23:00:00> # td.total_seconds() = -3600.0 У объекта timedelta есть метод total_second. Он и вернул ожидаемые -3600 секунд. 🥳 Познавательная минутка 🤓 Доступ к свойству объекта осуществляется через точку. объект.свойство Доступ к методу объекта осуществляется путём вызова метода, через имя и круглые скобки. объект.метод() Всем отличного времени, какая бы разница у него не была. ⏳ ✍️ - беру на вооружение 🤯 - как это работает? #познавательно #python
2 · 488 ·

Рядом в ленте

CCool and Fun PythonЦелую неделю ждал хотя бы 10 реакций 🤯. Не дождался. Этот пост посвящается девятку интересующихся. 🫡 Что же такое ast.literal_eval ? Если просто и коротко, то эCCool and Fun PythonСтолько реакций! Класс! Благодарю всех. 🥰 Сегодня день учителя. Надеюсь этот канал учит вас, даёт новые знания. А ваши вопросы в комментариях зачастую учат адми
это сообщение
CCool and Fun Pythonprint(10 / 2) # 5.0 print(10 // 2) # 5 print(10.0 // 2) # 5.0 print(10 // 2.0) # 5.0 print(10.0 // 2.0) # 5.0 #юморCCool and Fun PythonЭволюция строки кода В одном из проектов надо было разделить две переменных нацело. И в первой версии код выглядел как частное = делимое // делитель: div = divi

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Границы индекса · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем