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")
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")
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")
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