Посчитать количество дней между датами питон

Python: Посчитать количество дней между датами

Python: Посчитать количество дней между датами

Из этого руководства вы узнаете, как посчитать количество дней между двумя датами в Python.

Мы будем использовать стандартную библиотеку datetime , которая позволит нам действительно легко работать с datetime объектами в Python.

Создание объекта Datetime

Поскольку datetime является встроенным модулем, мы можем сразу импортировать его.

from datetime import datetime

Создать объект datetime можно несколькими способами:

date_string = "1 January, 2021" now = datetime.now() # получить текущую дату dt1 = datetime(day=1, month=1, year=2021) # с заданными аргументами dt2 = datetime.strptime(date_string, "%d %B, %Y") # из строки 

Получить количество дней между датами в Python

Попытка посчитать количество дней между датами без использования модуля datetime , очень сложная задача — с учетом високосного года и количеством дней в каждом месяце (попытки создать собственную реализацию просто бессмысленна).

Мы можем просто вычесть datetime друг из друга, чтобы получить количество дней между ними:

from datetime import datetime date1 = datetime.now() date2 = datetime(day=1, month=12, year=2021) timedelta = date2 - date1 print(timedelta) 

Если вам не нужны некоторые из этих показателей, можно конкретно указать, что вы хотите получить в результате: timedelta.days , timedelta.seconds или timedelta.microseconds :

now = datetime.now() new_years = datetime(day=1, month=1, year=2022) countdown = new_years - now print('Сегодня: ', now) print('Новый год наступит: ', new_years) print('До нового года осталось дней: ', countdown.days)

Здесь мы создали timedelta объект countdown , и теперь мы может получить доступ к параметру days , чтобы узнать количество дней между new_years и now .

Сегодня: 2021-09-29 14:43:49.218155 Новый год наступит: 2022-01-01 00:00:00 До нового года осталось дней: 93

Сложение и вычитание дней с помощью TimeDelta

Что, если вместо того, чтобы пытаться вычесть две известные даты друг из друга, вы захотите добавить или вычесть временные рамки? Например, клиент подписался на услугу за ежемесячную плату, и через 30 дней нужно напомнить ему об этом.

Используя timedelta вы можете построить временную рамку для этих 30 дней, и вычитать ее из другого datetime объекта:

from datetime import datetime, timedelta now = datetime.now() thirty_days = timedelta(days=30) print('Через 30 дней: ', now + thirty_days) print('30 дней назад: ', now - thirty_days) 
Через 30 дней: 2021-10-29 14:28:43.208634 30 дней назад: 2021-08-30 14:28:43.208634

Это невероятно полезная функция при попытке реализовать планирование или получение записей из базы данных (например, информацию за последние 30 дней).

Заключение

В этом руководстве мы рассмотрели все, что вам нужно знать о получении количества дней между двумя датами в Python.

Источник

Вычисление количества дней между датами и определение дат через количество дней

Задача 1. Вводятся две даты. Определить количество дней между ними.

from datetime import date print('Date format: YYYY-MM-DD') a = input('First date: ') b = input('Second date: ') aa = date.fromisoformat(a) bb = date.fromisoformat(b) delta = abs(aa - bb) print(delta.days)
Date format: YYYY-MM-DD First date: 2023-10-01 Second date: 2023-10-03 2
Date format: YYYY-MM-DD First date: 2022-07-06 Second date: 2023-07-06 365

Задача 2. Определить количество дней между заданной датой и сегодняшним днем. Если указанная дата — прошлое, выразить количество дней как отрицательное число, если будущее — как положительное.

from datetime import date t = date.today() print('Today:', t) a = input('Other date: ') aa = date.fromisoformat(a) print((aa - t).days)
Today: 2023-07-06 Other date: 2023-07-01 -5
Today: 2023-07-06 Other date: 2023-08-07 32

Задача 3. Определить, какая будет дата через заданные дату и количество дней от/до этой даты.

from datetime import date, timedelta input_date = input('Date: ') days = input('Amount of days: ') input_date = date.fromisoformat(input_date) delta = timedelta(days=int(days)) new_date = input_date + delta print(new_date)
Date: 2023-07-06 Amount of days: 5 2023-07-11
Date: 2023-07-06 Amount of days: -10 2023-06-26

Источник

Расчет количества дней между двумя датами в Python

Может возникнуть ситуация, когда необходимо вычислить количество дней между двумя датами. Например, при расчете сроков выполнения задач, анализе временных рядов и так далее. Рассмотрим случай, когда имеются две даты: ‘1/1/2020’ и ‘1/10/2020’ .

Python предоставляет несколько способов для расчета разницы между датами.

Использование модуля datetime

Встроенный в Python модуль datetime позволяет работать с датами и временем. Для расчета количества дней между двумя датами, можно использовать следующий код:

from datetime import datetime date1 = datetime.strptime('1/1/2020', '%m/%d/%Y') date2 = datetime.strptime('1/10/2020', '%m/%d/%Y') num_days = (date2 - date1).days

В этом примере используется функция strptime чтобы преобразовать строковое представление дат в объекты datetime . Затем, вычитая одну дату из другой, получаем объект timedelta , у которого есть атрибут days , показывающий разницу в днях между двумя датами.

Использование модуля dateutil

Модуль dateutil — это сторонняя библиотека Python, которая предоставляет расширенные функции для работы с датами. Вот как можно использовать его для расчета количества дней между двумя датами:

from dateutil.parser import parse date1 = parse('1/1/2020') date2 = parse('1/10/2020') num_days = (date2 - date1).days

В этом случае используется функция parse для преобразования строкового представления дат в объекты datetime . Далее, так же как и в предыдущем примере, вычисляется разность дней между датами.

Оба этих метода позволяют легко и быстро вычислить количество дней между двумя датами в Python.

Источник

Читайте также:  Windows task scheduler python
Оцените статью