Добавление дней к дате в Python
Проблема с добавлением дней к дате в Python
Я имею дату в формате "10/10/11 (m-d-y)"
и хочу добавить к ней 5 дней с помощью скрипта на Python. Пожалуйста, предложите общее решение, которое также будет работать с концами месяцев.
В настоящее время я использую следующий код:
import re
from datetime import datetime
StartDate = "10/10/11"
Date = datetime.strptime(StartDate, "%m/%d/%y")
В результате выполнения print Date
выводит '2011-10-10 00:00:00'
.
Теперь я хочу добавить 5 дней к этой дате. Я попытался использовать следующий код:
EndDate = Date.today() + timedelta(days=10)
Но получил ошибку:
name 'timedelta' is not defined
Как я могу исправить эту ошибку и правильно добавить 5 дней к исходной дате, учитывая все необходимые кейсы, такие как конец месяца?
5 ответ(ов)
Импортируйте timedelta
и date
в первую очередь.
from datetime import timedelta, date
Затем date.today()
вернет сегодняшнюю дату, к которой вы сможете добавить timedelta
:
end_date = date.today() + timedelta(days=10)
Это может помочь:
from datetime import date, timedelta
date1 = date(2011, 10, 10) # Исходная дата
date2 = date1 + timedelta(days=5) # Добавляем 5 дней
print(date2) # Выводим новую дату
В данном коде мы используем модуль datetime
для работы с датами. Мы создаем объект date
с указанной датой, а затем с помощью timedelta
добавляем 5 дней к этой дате. Результат выводится на экран.
Если вы хотите добавить дни к текущей дате, вы можете использовать следующий код:
from datetime import datetime
from datetime import timedelta
date_now_more_5_days = (datetime.now() + timedelta(days=5)).strftime('%Y-%m-%d')
Этот код импортирует необходимые модули datetime
и timedelta
, после чего к текущей дате добавляет 5 дней. Результат форматируется в строку в формате 'ГГГГ-ММ-ДД'.
Вот другой способ добавления дней к дате, используя relativedelta из модуля dateutil.
from datetime import datetime
from dateutil.relativedelta import relativedelta
print('Сегодня: ', datetime.now().strftime('%d/%m/%Y %H:%M:%S'))
date_after_five_days = datetime.now() + relativedelta(days=5)
print('Через 5 дней:', date_after_five_days.strftime('%d/%m/%Y %H:%M:%S'))
Вывод будет выглядеть следующим образом:
Сегодня: 25/06/2015 15:56:09
Через 5 дней: 30/06/2015 15:56:09
Этот код использует datetime.now()
для получения текущей даты и времени, а затем применяет метод relativedelta
для добавления 5 дней к текущей дате. Это удобный способ работать с датами, так как relativedelta
позволяет легко манипулировать временными интервалами, включая месяцы, годы и дни.
Похоже, вы упускаете что-то вроде этого:
from datetime import timedelta
Как получить день недели по заданной дате?
Как рассчитать количество дней между двумя заданными датами
Как вывести дату в стандартном формате?
Итерация по диапазону дат в Python
Преобразование строки даты JSON в datetime в Python