Как бы я сравнил две даты, чтобы увидеть, какая из них позже, с использованием Python?
Например, я хочу проверить, не превышает ли текущая дата последнюю дату в списке, который я создаю, дат праздников, чтобы он автоматически отправлял электронное письмо с указанием администратору обновить файл holiday.txt.
<
и>
оператор, так же , как с любым другим сравнением.int compare_dates(void const *, void const*)
, приводите оба аргументаstruct Date *
и реализуете логику сравнения. Это может быть не так очевидно для новичка в Python.Ответы:
Используйте
datetime
метод и оператор<
и его род.источник
past
аpresent
? Я не могу понять ваш пример, и его результат не имеет смысла.past
иpast_but_a_little_after
. Технически,present
это также в прошлом, когда проводится сравнениеpast < present
.использование
time
Допустим, у вас есть начальные даты в виде строк:
date1 = "31/12/2015"
date2 = "01/01/2016"
Вы можете сделать следующее:
newdate1 = time.strptime(date1, "%d/%m/%Y")
иnewdate2 = time.strptime(date2, "%d/%m/%Y")
преобразовать их в формат даты Python. Тогда сравнение очевидно:newdate1 > newdate2
вернетсяFalse
newdate1 < newdate2
вернетсяTrue
источник
datetime.date(2011, 1, 1) < datetime.date(2011, 1, 2)
вернетсяTrue
.datetime.date(2011, 1, 1) - datetime.date(2011, 1, 2)
вернетсяdatetime.timedelta(-1)
.datetime.date(2011, 1, 1) + datetime.date(2011, 1, 2)
вернетсяdatetime.timedelta(1)
.смотри документы .
источник
Другие ответы с использованием
datetime
и сравнения также работают только на время, без даты.Например, чтобы проверить, является ли сейчас больше или меньше 8:00 утра, мы можем использовать:
А позже сравните с:
который вернется
True
источник
Для расчета дней с разницей в две даты, можно сделать, как показано ниже:
Потому что, если одна дата больше с датой оплаты, то мы должны взимать
источник