Jeśli trzeba porównać jedyny dzień wartości miesięcznego niż można użyć następującego kodu:
if yourdate.day == datetime.today().day:
# do something
Jeśli trzeba sprawdzić, że różnica między dwoma datami jest dopuszczalne wtedy można użyć timedelta:
if (datetime.today() - yourdate).days == 0:
#do something
A jeśli chcesz porównać datę udział wyłącznie niż można po prostu użyć:
from datetime import datetime, date
if yourdatetime.date() < datetime.today().date()
# do something
Zauważ, że timedelta ma następujący format:
datetime.timedelta([days[, seconds[, microseconds[, milliseconds[, minutes[, hours[, weeks]]]]]]])
dzięki czemu są w stanie sprawdzić diff w dni, sekundy, milisekundy, minutach i tak dalej w zależności od tego, czego naprawdę potrzebujesz:
from datetime import datetime
if (datetime.today() - yourdate).days == 0:
#do something
W twoim przypadku, kiedy trzeba sprawdzić, czy dwie daty są dokładnie takie same, można użyć timedelta (0):
from datetime import datetime, timedelta
if (datetime.today() - yourdate) == timedelta(0):
#do something
'.day' jest od dnia -miesiąc. Tak więc 12 sierpnia jest "równy" 12 grudnia, używając pierwszego fragmentu kodu. Prawdopodobnie nie jest to zachowanie, które OP chce. – trutheality
@trutheality - tak, zacząłem pisać odpowiedź zanim pytanie zostało zmienione, więc nie byłem w stanie zrozumieć, czego dokładnie potrzebuje, dlatego udostępniłem kilka opcji dla tego –
Szybka uwaga: obiekty datetime mają atrybut o nazwie " obiekty day '(no' s ') i timedelta mają atrybut o nazwie' days '(z literą' s '), na wypadek gdyby ludzie poczuli się oszołomieni tym, dlaczego ich składnia nie działa. –