-
-
Save parzibyte/8ed73ab397f78f0ae83084998b24ebc2 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
""" | |
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: | |
https://parzibyte.me/blog/2019/05/23/divmod-python-dividir-obtener-cociente-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) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment