Как сравнить даты в 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