>>>print(today - date, (today - date).seconds) [1] 63 days, 8:45:34.250649 31534 ↑
Это далеко от правильного результата. 31534 секунды намного меньше, чем 63 дня. Почему python дает неправильное значение?
Вы запрашиваете только seconds из timedelta - вам нужно timedelta.totalseconds().
seconds
timedelta
timedelta.totalseconds()
timedelta.seconds сообщает только о всех секундах, потраченных в последний день дельты.
timedelta.seconds
https://docs.python.org/3/library/datetime.html#datetime.timedelta.total_seconds
import datetime d1 = datetime.datetime.now() d2 = datetime.datetime.now()-datetime.timedelta(days=1.4) delta = d1-d2 print(delta, delta.seconds, delta.total_seconds(), sep="\n")
Выход:
1 day, 9:35:59.999997 34559 # (9 * 60 + 35 ) * 60 + 59 ca. 34559 - the full day is not part of ".seconds" 120959.999997