Skip to content

Instantly share code, notes, and snippets.

@parzibyte
Created March 26, 2019 05:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save parzibyte/8ed73ab397f78f0ae83084998b24ebc2 to your computer and use it in GitHub Desktop.
Save parzibyte/8ed73ab397f78f0ae83084998b24ebc2 to your computer and use it in GitHub Desktop.
"""
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