Python - Edad de persona a partir de la fecha de nacimiento

 
Vista:

Edad de persona a partir de la fecha de nacimiento

Publicado por Juan Cuz Savino (1 intervención) el 23/03/2018 12:54:55
Necesito que me ayuden a hacer este ejercicio:

Persona, tiene que tener fecha de nacimiento (en un atributo del tipo datatime) y una función que devuelva la edad de esa persona, en el momento de la consulta.
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 José María
Val: 819
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Edad de persona a partir de la fecha de nacimiento

Publicado por José María (245 intervenciones) el 23/03/2018 17:59:06
Espero que te sirva :)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import datetime
 
def edad(naci):
    hoy = datetime.date.today()
    if hoy < naci:
        print 'error en la fecha de nacimiento'
    else:
        ano = naci.year
        mes = naci.month
        dia = naci.day
 
        fecha = naci
        edad = 0
        while fecha < hoy:
            edad += 1
            fecha = datetime.date(ano+edad, mes, dia)
 
        print 'Mi edad es: %s' % (edad-1)
 
edad(datetime.date(1956, 5, 31))
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de Leonardo Daniel A.
Val: 95
Ha disminuido su posición en 2 puestos en Python (en relación al último mes)
Gráfica de Python

Edad de persona a partir de la fecha de nacimiento

Publicado por Leonardo Daniel A. (33 intervenciones) el 24/03/2018 18:40:37
jajaja neta ?? un WHILE para calcular la edad ???

en C# tan sencillo como... y seria mas sencillo si no hicieramos la comprobacion del CompareTo

1
2
3
4
5
6
7
8
9
10
11
public static int Edad(DateTime fechaNacimiento)
{
    int edad = DateTime.Now.Year - fechaNacimiento.Year;
    DateTime nacimientoAhora = fechaNacimiento.AddYears(edad);
 
    if (DateTime.Now.CompareTo(nacimientoAhora) < 0)
    {
        edad--;
    }
    return edad;
}
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
sin imagen de perfil

Edad de persona a partir de la fecha de nacimiento

Publicado por Jesus (1 intervención) el 11/07/2019 17:29:28
Primero debes instalar python-dateutil

pip install python-dateutil

1
2
3
4
5
6
7
8
9
10
11
12
13
14
from datetime import date
from dateutil.relativedelta import relativedelta
 
def calcular_edad(fecha_nacimiento):
 
    edad = date.today().year - fecha_nacimiento.year
    cumpleanios = fecha_nacimiento + relativedelta(years=edad)
 
    if cumpleanios > date.today():
        edad = edad - 1
 
    return edad
 
calcular_edad(date(1991, 10, 15))
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

Edad de persona a partir de la fecha de nacimiento

Publicado por ZRJ_Gamer (1 intervención) el 25/06/2020 18:33:23
1
calcular_edad(date(1991, 10, 15))

Hey amigos, ¿Como puedo sustituir los valores o parametros en negrita colocando una variable?
Me urgen sus respuestas...

Gracias!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar
Imágen de perfil de kip
Val: 1.120
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Edad de persona a partir de la fecha de nacimiento

Publicado por kip (257 intervenciones) el 11/07/2019 18:13:18
1
2
3
4
5
6
7
8
9
10
11
>>> from datetime import datetime
>>> birth_date = datetime(1965, 7, 11)
>>> today = datetime.now()
>>> rectifier = datetime(today.year, birth_date.month, birth_date.day) >= today
>>> print('{} years'.format(today.year - birth_date.year - rectifier))
54 years
>>> birth_date = datetime(1965, 7, 12)
>>> rectifier = datetime(today.year, birth_date.month, birth_date.day) >= today
>>> print('{} years'.format(today.year - birth_date.year - rectifier))
53 years
>>>
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

Edad de persona a partir de la fecha de nacimiento

Publicado por JonathanDev (1 intervención) el 24/03/2021 17:04:24
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
def CalcularEdad(fechaNacimiento):
    listAux = fechaNacimiento.split("/") #["dd","mm","yyyy"]
    listTemp = []
    listTemp.append([date.today().day,date.today().month,date.today().year])
    if(int(listAux[1]) < listTemp[0][1]): #Ya cumplió años
        return listTemp[0][2] - int(listAux[2])
    elif(int(listAux[1]) == listTemp[0][1]): #Mismo mes
        if(int(listAux[0]) <= listTemp[0][0]): #Ya pasó el día de cumpleaños o bien está de cumpleaños
            return listTemp[0][2] - int(listAux[2])
        elif(int(listAux[0]) > listTemp[0][0]): #Mismo mes, pero aún no llega el día del cumpleaños
            return listTemp[0][2] - int(listAux[2])-1
    elif(int(listAux[1]) > listTemp[0][1]): #El mes actual es menor al mes del cumple (aún no cumple años)
        return listTemp[0][2] - int(listAux[2])-1
 
print(CalcularEdad("1/1/2000"))
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

Edad de persona a partir de la fecha de nacimiento

Publicado por El mostafa (1 intervención) el 13/02/2022 20:51:47
from datetime import datetime
def run():

print('''
Este programa muestra tu edad segun tu fecha de nacimiento''')
fecha=(input('''ingresa le fecha de tu nacimiento
con el siguiente formato: DD,MM,YYYY
'''))

f_hoy=datetime.today().strftime('%d,%m,%Y')
fecha=fecha.split(',')
f_hoy=f_hoy.split(',')

if int(f_hoy[1]) > int(fecha[1]) or int(f_hoy[1]) == int(fecha[1]) and int(f_hoy[0]) >= int(fecha[0]):
r=int(f_hoy[2])-int(fecha[2])
print('Tienes ' + str(r) + ' años')
else:
r=int(f_hoy[2])-int(fecha[2])-1
print('Tienes ' + str(r) + ' años')

if __name__=="__main__":
run()
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