time
При работе с датой и временем в Python вам достаточно часто придется иметь дело с модулем datetime. В данной статье мы поговорим о том, как использовать объект timedelta модуля datetime в Python для работы с датами. Данный объект указывает на промежуток времени и используется, когда нам нужно выполнить простые арифметические операции с объектами datetime.
В частности, мы научимся (на примерах кода) делать следующее вещи:
timedeltaПрежде чем приступить к выполнению перечисленных выше задач, давайте сначала импортируем необходимые модули, как показано во фрагменте кода ниже:
# Import Necessary Modules from datetime import date from datetime import time from datetime import datetime from datetime import timedelta
Для начала давайте создадим базовый объект timedelta:
time_delt1 = timedelta(days=270, hours=9, minutes=18) print(time_delt1) # Пример вывода # 270 days, 9:18:00
Итак, мы успешно создали объект timedelta. Теперь нам нужно создать «эталонное» время, чтобы можно было применить созданный нами объект timedelta для выполнения каких-нибудь арифметических действий. Сделаем это на следующем шаге.
Прежде чем проводить какие-либо вычисления, давайте зададим отправную точку. К примеру, возьмем текущую дату.
Получить текущую дату и время можно при помощи вызова метода now() объекта datetime, как показано во фрагменте кода ниже:
time_now = datetime.now() print(time_now) # Пример вывода # 2021-06-22 17:49:18.574503
Теперь давайте посчитаем, какая дата будет после промежутка time_delt1, который мы создали ранее.
Чтобы вычислить будущий момент времени, нам нужно только добавить диапазон, определенный объектом timedelta, к текущему времени.
future_date1 = time_now + time_delt1 print(future_date1) # Пример вывода # 2022-03-20 03:07:18.574503
Теперь давайте рассмотрим другой пример, в котором мы хотим знать, какой день наступит через определенное количество дней, скажем, 189.
future_date2 = time_now + timedelta(days=189) print(future_date2) # Пример вывода # 2021-12-28 17:49:18.574503
Как вы уже, наверное, догадались, чтобы узнать, какой день был 189 дней назад, нам нужно только заменить «+» на «-» в приведенном выше примере. Вот как это выглядит:
past_date1 = time_now - timedelta(days=189) print(past_date1) # Пример вывода # 2020-12-15 17:49:18.574503
Давайте теперь посчитаем, сколько времени осталось до Дня учителя в этом году в России отмечается 05 октября). Сделать это можно следующим образом. Чтобы вычислить с учетом сегодняшнего дня, мы можем вызвать метод today() объекта date для получения сегодняшней даты.
Синтаксис: today = date.today() # Возвращает сегодняшнюю дату
teachers_day = date(time_now.year, 10, 5) today = date.today()
Затем мы можем узнать, сколько дней осталось до Дня учителя, используя следующий фрагмент кода:
time_to_td = teachers_day - today
print(f"Teachers' day is {time_to_td.days} days away")
# Пример вывода
# Teachers' day is 105 days away Также возможно, что в этом году День учителя пройдет к тому времени, когда вы прочтете эту статью ?. Если День учителя в этом году уже прошел, сделайте следующее:
Это показано в следующем фрагменте кода:
if teachers_day < today:
print(f"This year's Teachers' Day was {(today-teachers_day).days} days ago")
teachers_day = date(time_now.year + 1, 10, 5)
time_to_td = teachers_day - today
print(f"Next year's Teachers' day is {time_to_td.days} days away") Итак, мы разобрали, как применять объект timedelta для работы с датами в Python. Поговорили о том, как его использовать для выполнения простых арифметических действий с датами и для вычисления прошлой и будущей даты. Мы также теперь умеем рассчитать время, прошедшее с момента определенного события, или время, оставшееся до определенного события.
Надеемся, вы нашли эту статью полезной. Спасибо за чтение!
Если вы ищете работу на Python, на Talanto.work сейчас есть варианты для junior, middle, senior…
Рынок Python-вакансий большой, но удобным его назвать сложно. Формально вакансий много, однако в реальном поиске…
Срезы в Python — это больше, чем a[2:7]. В статье — быстрый разбор полезных приёмов:…
В этой статье мы рассмотрим возведение в степень в Python с помощью различных методов, от…
Дубликаты в списке Python — частая проблема. В статье показано, как быстро убрать повторы, в…
Услуга виртуального хостинга на SpaceWeb позволяет арендовать часть сервера (shared-сервера) и разместить на нём свой…