¿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
datetime
método y el operador<
y sus parientes.fuente
past
ypresent
? No puedo entender tu ejemplo y su resultado no tiene sentido.past
ypast_but_a_little_after
. Técnicamente,present
también está en el pasado cuando se hace la comparaciónpast < present
.Utilizar
time
Digamos 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 > newdate2
volveráFalse
newdate1 < newdate2
volveráTrue
fuente
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
datetime
y 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á
True
fuente
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