Python: добавление 3 недель к любой дате

Мне нужна помощь с программой.
Как добавить 3 недели (21 день) к любой дате, когда пользователь может контролировать дату?

Пользователь вводит дату YYYY-MM-DD.

Ниже я пытаюсь найти дефис и убедиться, что есть только 2. Это то, что у меня есть до сих пор, но все, что он делает, это повторить сам, может кто-нибудь сказать мне, где я ошибся?:

date = raw_input("Enter date: ")
i = 0
while i <= len(date):
    if date[i] != "-":
    i = i + 1
print date

Теперь я выбираю год, месяц, день. Есть ли более простой способ сделать это, потому что мне нужно учитывать месяцы изменений и т.д.?

year = date[0:4]
month = date[5:7]
day = date[9:11]

спасибо

Ответы

Ответ 1

Используйте datetime модуль для задачи. Вы создаете объект, поддерживающий дату и время, и добавляете к нему 21-дневный объект timedelta.

>>> import datetime
>>> u = datetime.datetime.strptime("2011-01-01","%Y-%m-%d")
>>> d = datetime.timedelta(days=21)
>>> t = u + d
>>> print(t)
2011-01-22 00:00:00

Ответ 2

Вы можете использовать объект datetime.timedelta для представления 3 недели, а затем просто добавить это к объекту datetime, который представляет пользовательский ввод.

import datetime

date = raw_input("Enter date: ")
aDate = datetime.datetime.strptime(date,"%Y-%m-%d")
threeWeeks = datetime.timedelta(weeks = 3)

print aDate + threeWeeks

Подробнее об использовании метода strptime см. http://docs.python.org/library/datetime.html#strftime-and-strptime-behavior.

Ответ 3

вы можете использовать datetime.strptime для ввода данных от пользователя в качестве даты

from datetime import datetime
i = str(raw_input('date'))
try:
    dt_start = datetime.strptime(i, '%Y, %m, %d')
except ValueError:
    print "Incorrect format"

а затем добавить 3 недели (21 день)

dt_start = dt_start + datetime.timedelta(days=21)

Там вы идете