6

Добавление дней к дате в Python

42

Проблема с добавлением дней к дате в 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 ответ(ов)

2

Импортируйте timedelta и date в первую очередь.

from datetime import timedelta, date

Затем date.today() вернет сегодняшнюю дату, к которой вы сможете добавить timedelta:

end_date = date.today() + timedelta(days=10)
0

Это может помочь:

from datetime import date, timedelta

date1 = date(2011, 10, 10)  # Исходная дата
date2 = date1 + timedelta(days=5)  # Добавляем 5 дней
print(date2)  # Выводим новую дату

В данном коде мы используем модуль datetime для работы с датами. Мы создаем объект date с указанной датой, а затем с помощью timedelta добавляем 5 дней к этой дате. Результат выводится на экран.

0

Если вы хотите добавить дни к текущей дате, вы можете использовать следующий код:

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 дней. Результат форматируется в строку в формате 'ГГГГ-ММ-ДД'.

0

Вот другой способ добавления дней к дате, используя 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 позволяет легко манипулировать временными интервалами, включая месяцы, годы и дни.

0

Похоже, вы упускаете что-то вроде этого:

from datetime import timedelta
Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь