Я хочу найти количество дней между сегодняшней датой и следующей датой в словаре дат. Во-первых, я пытаюсь найти ближайшую дату в словаре к текущей дате.
current_date = datetime.today()
date_schedule = {
"1": "2019-7-29",
"2": "2019-8-27",
"3": "2019-9-27",
"4": "2019-10-28",
"5": "2019-11-27",
"6": "2019-12-27",
"7": "2020-1-27",
"8": "2020-2-27",
"9": "2020-3-27",
"10": "2020-4-27",
"11": "2020-5-27",
"12": "2020-6-29",
}
def days_till_payment(date_schedule, current_date):
days_left = min(date_schedule, key=lambda x: abs(x - current_date))
return days_left
Однако, когда я пытаюсь выполнить это, я получаю следующую ошибку:
TypeError: unsupported operand type(s) for -: 'str' and 'datetime.datetime'
Я был бы очень признателен, кто-то, пожалуйста, объясните мне, как я могу обойти это и выяснить, сколько дней между текущей датой и следующей ближайшей датой из словаря.
РЕДАКТИРОВАТЬ: Эта функция будетЛучше, если он вернет СЛЕДУЮЩУЮ дату UPCOMING, а не только ближайшую дату (которая включает в себя уже ушедшие даты). Я хотел бы вывести следующую предстоящую дату и сколько дней осталось до этой даты с сегодняшнего дня.