En este post de programación en Python y trabajo con fechas te enseñaré a sacar la diferencia que hay entre 2 fechas y luego convertir esa diferencia a segundos, minutos, horas, días, etcétera.
Con las operaciones y funciones que te mostraré serás capaz de calcular cualquier diferencia que hay entre 2 fechas incluso con segundos usando Python.
Gracias a esto podrías saber cuánto falta para determinada fecha, cuántos segundos restan hasta alcanzar una hora, o el tiempo transcurrido entre dos fechas, por ejemplo, cuántos días han pasado desde cierto evento, etcétera.
Vamos a trabajar con Python y el módulo datetime
que dentro tiene a datetime
y timedelta
.
Vamos a trabajar con 2 fechas y sacar la diferencia entre ellas, pero antes de proceder a ello quiero dejar algo claro: podemos declarar las fechas o podemos solicitarlas al usuario.
En el primer caso podemos obtener la fecha actual con datetime.datetime.now()
, pero para el segundo caso es distinto ya que la fecha puede venir del usuario, de una base de datos, etcétera.
Si quieres trabajar con fechas definidas desde el código usa las funciones de datetime.datetime
y timedelta
como explico en este post de sumar y restar fechas en Python.
Y en caso de que quieras parsear la fecha desde una cadena, usa strptime
. Por ejemplo, la de la línea 3:
Nota: en los ejemplos voy a mostrar la diferencia en segundos totales, pero al final también te mostraré a convertir los segundos a minutos, horas, años, días, etcétera.
Para este primer ejemplo veamos cómo obtener la diferencia entre dos fechas que son proporcionadas según una cadena.
La salida para este caso es:
La diferencia es de 6 días y 0 segundos. La diferencia total es de 518400.0 segundos
Lo que yo sugiero es que siempre obtengas el total de segundos a través de total_seconds
y a partir de ahí hagas las conversiones, ya que el resultado de tipo timedelta
es un poco confuso al inicio.
Por cierto, como puedes ver todo es correcto, ya que hay exactamente 6 días de diferencia entre esas dos fechas.
Podemos obtener varios datos de la diferencia de fechas, o mejor dicho, obtener la diferencia de fechas expresado de distintas maneras.
Yo sigo recomendado obtenerlo a partir de total_seconds
pero también podemos acceder a days
, seconds
y microseconds
. Solo que no son valores separados, sino que la suma de los mismos nos dará la verdadera diferencia.
Por ejemplo, si la diferencia es de 2 días y 10 minutos, days
estará en 2 y seconds
en 120
. Es decir, los valores days
, seconds
y microseconds
se suman. Entonces es mejor usar total_seconds
si quieres una diferencia precisa.
Ahora veamos el otro ejemplo, en donde sumamos y restamos fechas para tener una fecha del futuro y poder indicar la diferencia.
La salida será: 180000.0 y eso es correcto, ya que son los segundos transcurridos que se convertirán a 50 horas.
Como viste en los ejemplos anteriores estamos obteniendo los segundos totales, pero ahora te mostraré cómo convertirlos a algo legible o mejor dicho a extraer los valores (como en el ejemplo de convertir segundos a horas, minutos y segundos).
Aquí la función:
En este caso estoy considerando hasta los días, pero incluso podrías sacar los años y todo eso. Por cierto, estoy regresando los valores en una oración como cadena, pero puedes regresarlos como una tupla, arreglo, etcétera. Al final queda en ti.
El código de ejemplo que saca la diferencia entre dos fechas con Python y muestra el tiempo legible queda así:
El ejemplo va a funcionar con fechas proporcionadas como cadena y con fechas de resultado de timedelta. Finalmente te dejo con más tutoriales de Python.
La impresión de un PDF en cualquier impresora se puede automatizar con un bot de…
Hoy te enseñaré cómo enviar un mensaje a un usuario desde un bot de Telegram…
El día de hoy te enseñaré algo muy sencillo pero útil al programar con PHP:…
El plugin para imprimir en impresoras térmicas alcanza hoy su versión 3.4.0 agregando soporte para…
En ocasiones es necesario leer los pixeles y colores de una imagen con JavaScript del…
Siguiendo con los tutoriales de listas desplegables o select con JavaScript, vamos a ver cómo…
Esta web usa cookies.
Ver comentarios
Gracias por compartir
OMG JAJAJA muchas gracias, creeme que estaba haciendo todo lo que la hace esta funcion desde 0 y no estaba teniendo exito, saludos.