Как сравнить даты в Python?

Мне нужно посмотреть, если у даты больше X дней. Как я могу сделать это в Python?

Я проверил что-то вроде:

if datetime.date(2010, 1, 12) > datetime.timedelta(3):

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

TypeError: can't compare datetime.date to datetime.timedelta

Любая подсказка о том, как этого добиться?

2 ответа

Решение

Вы не можете сравнить datetime к timedelta, timedelta представляет продолжительность, а datetime представляет конкретный момент времени. Разница двух datetime с является timedelta, Datetime сопоставимы друг с другом, как и timedelta s.

У вас есть 2 варианта:

  • Вычесть другой datetime от того, что вы дали, и сравните полученный timedelta с timedelta Вы также дали.
  • Преобразовать timedelta к datetime добавляя или вычитая его к другому datetime, а затем сравнить полученные datetime с datetime ты дал.

Сравнивать яблоки и апельсины всегда очень сложно! Вы пытаетесь сравнить "12 января 2010 года" (фиксированный момент времени) с "3 часами" (продолжительность). В этом нет никакого смысла.

Если то, что вы спрашиваете, "делает мой datetime упасть после n-го дня месяца "тогда можно сделать:

my_important_date = datetime.now()

if my_important_date.day > n:
    pass #do you important things
Другие вопросы по тегам