как от даты отнять год? python
срок действия сертификата - 1 год. есть дата окончания в формате yyyy-mm-dd. как получить дату выдачи в формате dd-mm-yyyy, учитывая, что выдача может приходиться на високосный год?
Ответы (3 шт):
Автор решения: Max Watson
→ Ссылка
Я думаю, что в datetime это учли. Может не совсем верно понял ваш вопрос, но и примеров ваших тоже нет. Поэтому думаю можете начать с этого.
import datetime
def get_day(date, step=0):
l = date.split("-")
y = int(l[0])
m = int(l[1])
d = int(l[2])
old_date = datetime.datetime(y, m, d)
new_date = (old_date + datetime.timedelta(days=step)).strftime('%Y-%m-%d')
print(new_date)
return new_date
get_day('2019-01-31', 0) # текущий
get_day('2019-01-31', 365) # след год
Автор решения: Qwertiy
→ Ссылка
- Распарсить дату
- Вычесть год
- Отформатировать дату
from datetime import datetime
from dateutil.relativedelta import relativedelta
cur = datetime.fromisoformat(input())
prev = cur - relativedelta(years=1)
print(cur)
print(prev)
print(prev.strftime("%d-%M-%Y"))
2000-02-29
2000-02-29 00:00:00
1999-02-28 00:00:00
28-00-1999
Автор решения: user2240578
→ Ссылка
Если без учета високосных:
>>> import datetime
>>> datetime.datetime.now()- datetime.timedelta(days=365)
datetime.datetime(2021, 6, 30, 22, 34, 24, 587704)
>>>