Имею следующую дату, например: 2006-10-01 (гггг-мм-дд).
Мне нужно рассчитать количество лет, месяцев и дней между приведенной датой и текущей.
Перепробовал много вариантов, однако datetime почему-то не учитывает високосные года.
Приведу пример моего кода:
date = "2006-09-23"
date_object = datetime.datetime.strptime(date, "%Y-%m-%d")
delta = datetime.datetime.now() + datetime.timedelta(seconds=-date_object.timestamp()
return 'Аккаунт зарегистрирован: ' + date + '\n' + str(int(delta.strftime('%Y')) - 1970) + ' лет, ' + str(int(delta.strftime('%m')) - 1) + ' месяцев, ' + str(int(delta.strftime('%d')) - 1) + ' дней.'
Если между датами был один високосный год -- я получаю один лишний день при расчете, два високосных года -- два лишних дня.
То есть фактически на текущий момент между датами прошло 10 лет, 3 месяца, 29 дней, однако моя программа возвращает что между датами прошло 10 лет, 4 месяца, 1 день. Корректно она отрабатывает лишь если между датами не было високосных годов.
Как решить эту проблему?