¿Cómo compararía dos fechas para ver cuál es más tarde, usando Python?
Por ejemplo, quiero verificar si la fecha actual es posterior a la última fecha en esta lista que estoy creando, de fechas de vacaciones, para que envíe un correo electrónico automáticamente, diciéndole al administrador que actualice el archivo holiday.txt.

<y>, al igual que con cualquier otra comparación.int compare_dates(void const *, void const*), emite ambos argumentosstruct Date *e implementa la lógica de comparación. Puede que no sea tan obvio para un recién llegado a Python.Respuestas:
Use el
datetimemétodo y el operador<y sus parientes.fuente
pastypresent? No puedo entender tu ejemplo y su resultado no tiene sentido.pastypast_but_a_little_after. Técnicamente,presenttambién está en el pasado cuando se hace la comparaciónpast < present.Utilizar
timeDigamos que tiene las fechas iniciales como cadenas como estas:
date1 = "31/12/2015"date2 = "01/01/2016"Puede hacer lo siguiente:
newdate1 = time.strptime(date1, "%d/%m/%Y")ynewdate2 = time.strptime(date2, "%d/%m/%Y")convertirlos al formato de fecha de Python. A continuación, la comparación es obvia:newdate1 > newdate2volveráFalsenewdate1 < newdate2volveráTruefuente
datetime.date(2011, 1, 1) < datetime.date(2011, 1, 2)devolveráTrue.datetime.date(2011, 1, 1) - datetime.date(2011, 1, 2)devolverádatetime.timedelta(-1).datetime.date(2011, 1, 1) + datetime.date(2011, 1, 2)devolverádatetime.timedelta(1).ver los documentos .
fuente
Otras respuestas usando
datetimey comparaciones también funcionan solo por tiempo, sin fecha.Por ejemplo, para verificar si en este momento es más o menos de las 8:00 am, podemos usar:
Y luego comparar con:
que volverá
Truefuente
Para calcular la diferencia de días en dos fechas, se puede hacer de la siguiente manera:
Porque si un segundo es más con la fecha de vencimiento, entonces tenemos que cobrar
fuente