python

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

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: 
 

 @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.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Ver comentarios

Entradas recientes

Servidor HTTP en Android con Flutter

El día de hoy te mostraré cómo crear un servidor HTTP (servidor web) en Android…

3 días hace

Imprimir automáticamente todos los PDF de una carpeta

En este post te voy a enseñar a designar una carpeta para imprimir todos los…

4 días hace

Guía para imprimir en plugin versión 1 desde Android

En este artículo te voy a enseñar la guía para imprimir en una impresora térmica…

1 semana hace

Añadir tasa de cambio en sistema de información

Hoy te voy a mostrar un ejemplo de programación para agregar un módulo de tasa…

2 semanas hace

Comprobar validez de licencia de plugin ESC POS

Los usuarios del plugin para impresoras térmicas pueden contratar licencias, y en ocasiones me han…

2 semanas hace

Imprimir euro € en impresora térmica

Hoy voy a enseñarte cómo imprimir el € en una impresora térmica. Vamos a ver…

3 semanas hace

Esta web usa cookies.