2

Cómo calcular el tiempo transcurrido en años, meses y días a partir de una fecha indicada.

A veces necesitamos calcular el tiempo transcurrido de un evento pasado en años, meses y días al día de hoy. Ese evento podría ser una celebración, un cumpleaños, un hecho histórico o cualquier otro acontecimiento importante.
Para ello te presento un pequeño código escrito en Python, en el cual vamos a necesitar los módulos datetime y dateutil. Si vas a escribir tu código en VSCode para Windows, como fue en mi caso, probablemente requieras instalar la librería dateutil que no viene por defecto. De ser así, aquí tienes un link en donde se explica detalladamente y en pocos pasos como hacerlo:

https://www.geeksforgeeks.org/how-to-install-python-dateutil-on-windows/

Hecho lo anterior, los pasos a seguir son los siguientes:

1- Librerías o módulos requeridos:

from datetime import date
from datetime import datetime
from dateutil import relativedelta

2- Entrada de datos. Es importante señalar el formato en que deben ser introducidos:

fecha_intr = input("Introduzca la fecha en formato dd-mm-aaaa: ")

3- Llamada al método que nos devuelve la fecha de hoy y guardarlo en una variable:

dia_hoy = date.today()

4- Convertir la fecha introducida en un objeto de clase datetime con la función strptime():

fecha_inicial = datetime.strptime(fecha_intr, '%d-%m-%Y')

5- Debido a que el método date.today() nos devuelve un objeto de clase date y se requiere convertirlo a la clase datetime, primero lo llevamos a string de formato %d-%m-%Y, con la función strftime():

fecha_fin = dia_hoy.strftime('%d-%m-%Y')

6- Luego lo convertimos a objeto de clase datetime, como se hizo con la fecha introducida en el paso 4:

fecha_fin = datetime.strptime(fecha_fin, '%d-%m-%Y')

7- Finalmente se procede a aplicar el método relativedelta y obtener el resultado:

tiempo_transc = relativedelta.relativedelta(fecha_fin, fecha_inicial)
print('Tiempo transcurrido: ',tiempo_transc.years,'años,',tiempo_transc.months,'meses,',tiempo_transc.days,'dias')

En resumen, el código completo quedaría de esta forma.

from datetime import date
from datetime import datetime
from dateutil import relativedelta

fecha_intr = input("Introduzca la fecha en formato dd-mm-aaaa: ")

dia_hoy = date.today()

fecha_inicial = datetime.strptime(fecha_intr, '%d-%m-%Y')

fecha_fin = dia_hoy.strftime('%d-%m-%Y')

fecha_fin = datetime.strptime(fecha_fin, '%d-%m-%Y')

tiempo_transc = relativedelta.relativedelta(fecha_fin, fecha_inicial)
print('Tiempo transcurrido: ',tiempo_transc.years,'años,',tiempo_transc.months,'meses,',tiempo_transc.days,'dias')

Al ejecutar el programa, obtendrán una salida como esta. Para este ejemplo la fecha que se colocó fue el 09/02/2018 y en ese momento la fecha del día era 19/09/2023:

Calculo_fechas1.png

Espero que esta información les sea de utilidad. Saludos.

Escribe tu comentario
+ 2