Я пытаюсь получить дату дня, месяца и года от определенной даты + пять дней спустя.

Это мой код:

import datetime

day = datetime.datetime(2018,3,27).strftime("%d")
month = datetime.datetime(2018,3,27).strftime("%m")
year = datetime.datetime(2018,3,27).strftime("%Y")

day += datetime.timedelta(days=5)
month += datetime.timedelta(days=5)
year += datetime.timedelta(days=5)

print (day)
print (month)
print (year)

Я получаю ошибку:

TypeError: must be str, not datetime.timedelta

Я пытался конвертировать с помощью str (), но потом 2019 я получил 20195.

У кого-нибудь есть идеи, как решить проблему?

0
Yotam 2 Май 2019 в 21:39

3 ответа

Лучший ответ

Почему вы пытаетесь рассчитать timedeltas для дня, месяца и года отдельно? Просто сделай все сразу.

import datetime

start = datetime.datetime(2018,3,27)
end = start + datetime.timedelta(days=5)

print (end.day)
print (end.month)
print (end.year)
1
John Gordon 2 Май 2019 в 18:46

Мне кажется, вы делаете это немного сложнее, чем нужно: P.

Если вы просто упростите свой код, и он будет работать нормально.

import datetime

my_date = datetime.datetime(2018,3,27) + datetime.timedelta(days=5)

print (my_date)

Когда побежал

2018-04-01 00:00:00

Если вы хотите 3 значения в разных строках, как ваш вопрос, вы можете сделать что-то вроде этого

my_date.strftime('%d\n%m\n%Y')
0
CwakrJax 2 Май 2019 в 18:46

Вы должны носить что-то подобное.

from datetime import datetime
from datetime import timedelta

today = datetime.now()
print(today)
     2019-05-02 15:46:58.262000

today_plus_five_days = today + timedelta(days = 5)
print(today_plus_five_days)
    2019-05-07 15:46:58.262000
0
Fer García 2 Май 2019 в 20:19