Python 3 - Días horas minutos y segundos que ha vivido una persona

Python | Días, horas, minutos y segundos que ha vivido una persona

Vamos a resolver un ejercicio en Python que pide la fecha de nacimiento de una persona y a partir de ella indica cuántos días, horas, minutos y segundos lleva viviendo al momento de ejecutar el script.

Para ello usaremos a datetime y haremos operaciones con fechas, algo relativamente sencillo.

Python 3 - Días horas minutos y segundos que ha vivido una persona
Python 3 – Días horas minutos y segundos que ha vivido una persona

También vamos a usar la función divmod para convertir los segundos a horas y minutos.

Nota: el código de la captura fue ejecutado el 25 de marzo a las 11 de la noche con 30 minutos.

Imports necesarios y solicitar fecha de nacimiento

Necesitamos importar el módulo de datetime con import datetime.

Para solicitar la fecha de nacimiento de la persona se usa la función input con int para convertir la cadena a entero; se pide por separado el año, mes y día.

Las fechas y timedelta

Para crear un timedelta usamos la función datetime.datetime, le pasamos en orden el año, mes y día. Si no especificamos las horas, minutos y segundos se supone que están en cero.

Cuando ya tenemos el timedelta de la fecha de nacimiento ahora creamos un timedelta actual, es decir, la fecha y hora de hoy. Para ello usamos datetime.datetime.now().

Finalmente, para obtener la diferencia restamos:

diferencia = fecha_de_hoy - fecha_de_nacimiento

Eso dará una diferencia que tiene los días y los segundos (también los microsegundos) como se especifica en la documentación oficial.

Convertir segundos a minutos y horas

Como ya lo dije anteriormente, el timedelta no tiene horas ni minutos, solamente segundos.

Entonces usamos a divmod para convertir segundos a horas, y el sobrante lo convertimos a minutos, al final el residuo de todo ello son los segundos que restan.

Hablar es de mal gusto, muéstrame el código

Una vez explicada la solución al algoritmo no queda más que poner el código:

"""
	Crea un programa en python que solicite la fecha de nacimiento del usuario y le 
	devuelva la cantidad de días, horas, minutos y segundos que ha vivido hasta hoy.

	Nota: este programa toma la zona horaria local; si lo ejecutas en línea
	tomará la hora del servidor

	Nota 2: si no entiendes la función divmod, mira este post: 
	
Divmod en Python: dividir para obtener cociente y residuo
@author parzibyte """ import datetime # Necesitamos el día, mes y año dia = int(input("Día de nacimiento: ")) mes = int(input("Mes de nacimiento: ")) anio = int(input("Año de nacimiento: ")) # Crear un objeto de tipo datetime.datetime; con horas, minutos y segundos en 0 fecha_de_nacimiento = datetime.datetime(anio, mes, dia) # Necesitamos la fecha y hora de hoy... fecha_de_hoy = datetime.datetime.now() # Operar como si fueran simples números diferencia = fecha_de_hoy - fecha_de_nacimiento # Y ahora podemos acceder a cada valor por separado ;) # Es un objeto timedelta: https://docs.python.org/3/library/datetime.html#timedelta-objects dias_vividos = diferencia.days # Para los minutos y horas es distinto segundos_vividos = diferencia.seconds # Convertir segundos a horas y obtener sobrante horas_vividas, segundos_vividos = divmod(segundos_vividos, 3600) # Convertir segundos sobrantes a minutos y obtener sobrante minutos_vividos, segundos_vividos = divmod(segundos_vividos, 60) # Preparar un mensaje mensaje = "Has vivido {} día(s), {} hora(s), {} minuto(s) y {} segundo(s)".format( dias_vividos, horas_vividas, minutos_vividos, segundos_vividos) # Imprimirlo y listo print(mensaje)

Cuando ya hemos calculado todo lo que requiere el algoritmo simplemente imprimimos. Falta pulir algunas cosas como los plurales pero eso es algo sencillo.

Probar código de tiempo vivido de una persona

Puedes descargar el código que dejé arriba; antes de ello asegúrate de instalar Python en Windows o en Android.

Te invito a ver más sobre:

Con eso terminamos por hoy.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

2 comentarios en “Python | Días, horas, minutos y segundos que ha vivido una persona”

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *