Python - Calculo de edad sin usar funciones

 
Vista:
sin imagen de perfil
Val: 2
Ha aumentado su posición en 958 puestos en Python (en relación al último mes)
Gráfica de Python

Calculo de edad sin usar funciones

Publicado por Simon (4 intervenciones) el 17/06/2021 22:01:31
Hola. Estoy iniciando con la programación de Python y entre los ejercicios de práctica, pone crear una función para calcular la edad en años, meses y días a partir de la fecha de nacimiento y una fecha determinada. Sin embargo, no encuentro cómo poner en el código una condición para que me calcule con exactitud la fecha. He buscado ejemplos pero siempre usan funciones como fecha.day, fecha.month y la idea es hacerlo los más sencillo posible, es decir sin if, while, y esas condiciones. No sé qué podrías aconsejarme.
Gracias.

1
2
3
4
5
def calcular_edad (dia_nace:int, mes_nace:int, ano_nace:int, dia_actual:int, mes_actual:int, ano_actual:int)->str:
    anos = ano_actual - ano_nace # Aquí si pongo la fecha Agosto/15/2000, aparece 21 años pero aun no se llega a agosto 15.
    mes = abs(mes_nace - mes_actual)
    dia = abs(dia_nacio - dia_actual)
    return str(anos)+","+str(mes)+","+str(dia)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de joel
Val: 3.475
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Calculo de edad sin usar funciones

Publicado por joel (901 intervenciones) el 18/06/2021 08:10:51
Hola Simon, la verdad es que sin utilizar ni un solo if() yo no te sabría decir como calcularlo con exactitud, ya que creo que necesitas saber si has pasado el día dentro del año o no.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 121
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Calculo de edad sin usar funciones

Publicado por Antoni Masana (67 intervenciones) el 18/06/2021 18:43:15
Es bastante simple i no necesitas condicionales.

Necesitas una tabla con los días que han pasando antes de cada mes.
Ejemplo:
- para ENERO 0
- para FEBRERO 28,
- para MARZO 59, ( cuando llegamos al 1 de marzo han pasa 31 días de enero y 28 días de febrero)
- para BRIL 90, ( cuando llegamos al 1 de abril han pasa 31 días de enero y 28 días de febrero y 31 días de marzo)
- y así hasta diciembre

Pasos 1 : Tomas la primera fecha:
- Tomas el año de la 1ª fecha y lo multiplicas por 365.25 y tomas la parte entera.
- Tomas el mes y buscas en la tabla los días que le toca.
- Todas el día
- Y ahora sumas estos tres número y los guardas en una variable.

Paso 2 : Haces lo mismo con la segunda fecha.

Paso 3 : Restas los dos numero. El resultado tiene que ser positivo.

Paso 4: Calcular la fecha

AÑO: El resultado lo divides por 365.25 y tomas la parte entera
MES: Restas el resultado del paso 3 menos el año * 365.25. Con este numero tienes que buscar en la tabla y ver que mes corresponde.
DIA: Aqui quizas necesites otra tabla que tendrás que pensar pero ya casi lo tienes.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar