Programa Python para calcular la edad en años.

Dada la fecha de nacimiento en formato a/m/d, escriba un programa Python para encontrar la edad actual en años.

Ejemplos: 

Input : 1997/2/3
Output : 21 years (for present year i.e 2018)

Input : 2010/12/25
Output : 8 years (for present year i.e 2018)

Enfoque # 1: 
El enfoque ingenuo para encontrar la edad actual en años es encontrar la diferencia entre el año actual y el año de nacimiento. Consulte el enfoque Naive desde aquí .

Enfoque #2: Uso del módulo  de fecha y hora
Python proporciona un módulo de fecha y hora para tratar todos los problemas relacionados con la fecha y hora en Python. Usando datetime podemos encontrar la edad restando el año de nacimiento del año actual. Junto con esto, debemos centrarnos en el mes de nacimiento y el cumpleaños. Para esto, verificamos si el mes y la fecha actuales son menores que el mes y la fecha de nacimiento. En caso afirmativo, reste 1 a la edad, de lo contrario, 0. 

Python3

# Python3 code to  calculate age in years
 
from datetime import date
 
def calculateAge(birthDate):
    today = date.today()
    age = today.year - birthDate.year -
         ((today.month, today.day) <
         (birthDate.month, birthDate.day))
 
    return age
     
# Driver code
print(calculateAge(date(1997, 2, 3)), "years")
Producción: 

21 years

 

  
Enfoque n.º 3: enfoque eficiente de fecha y hora 
Los enfoques anteriores no se ocupan de un caso especial, es decir, cuando la fecha de nacimiento es el 29 de febrero y el año actual no es un año bisiesto. Este caso debe plantearse como una excepción porque el cálculo de la fecha de nacimiento puede ser inexacto. Este método incluye la prueba y la captura de esta excepción. 

Python3

# Python3 code to  calculate age in years
from datetime import date
 
def calculateAge(born):
    today = date.today()
    try:
        birthday = born.replace(year = today.year)
 
    # raised when birth date is February 29
    # and the current year is not a leap year
    except ValueError:
        birthday = born.replace(year = today.year,
                  month = born.month + 1, day = 1)
 
    if birthday > today:
        return today.year - born.year - 1
    else:
        return today.year - born.year
         
# Driver code
print(calculateAge(date(1997, 2, 3)), "years")
Producción: 

21 years

 

Enfoque n.º 4: Uso de la división
En este enfoque, calculamos el número de fechas desde la fecha de nacimiento hasta la fecha actual. Divida el número de fecha por los días en un año, es decir, 365,2425. 

Python3

# Python3 code to  calculate age in years
from datetime import date
 
def calculateAge(birthDate):
    days_in_year = 365.2425   
    age = int((date.today() - birthDate).days / days_in_year)
    return age
         
# Driver code
print(calculateAge(date(1997, 2, 3)), "years")
Producción: 

21 years

 

Publicación traducida automáticamente

Artículo escrito por Smitha Dinesh Semwal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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