2010-09-04 9 views
8

Tengo dos cadenas de fecha/hora:Cálculo si la fecha es en principio, futuro o presente en Python

start_date = 10/2/2010 8:00:00 

end_date = 10/2/2010 8:59:00 

Tengo que escribir una función para calcular si el evento es en el futuro, en el pasado o si está sucediendo ahora mismo, he leído un poco de documentación pero me parece bastante difícil hacer que esto funcione.

¡Realmente no he hecho muchos cálculos basados ​​en Python para que cualquier ayuda sea realmente apreciada!

Muchas gracias

Respuesta

15
from datetime import datetime 
start_date = "10/2/2010 8:00:00" 
end_date = "10/2/2010 8:59:00" 

# format of date/time strings; assuming dd/mm/yyyy 
date_format = "%d/%m/%Y %H:%M:%S" 

# create datetime objects from the strings 
start = datetime.strptime(start_date, date_format) 
end = datetime.strptime(end_date, date_format) 
now = datetime.now() 

if end < now: 
    # event in past 
elif start > now: 
    # event in future 
else: 
    # event occuring now 
+0

funciona muy bien. Felicitaciones. ¡Gracias! – kron

+0

@kron: tenga cuidado: la hora local puede ser no monótona, por ejemplo, durante una transición DST "hacia atrás". La comparación puede fallar. Consulte [Buscar si han pasado 24 horas entre fechas y horas - Python] (http://stackoverflow.com/q/26313520/4279) – jfs

Cuestiones relacionadas