Foros del Web » Programando para Internet » Javascript »

funcion para sacar la edad actual de alguien..

Estas en el tema de funcion para sacar la edad actual de alguien.. en el foro de Javascript en Foros del Web. Hola... Existe alguna funcion en especial para sacar la edad de una persona?.... Cuando yo capure el año de nacimiento quiero que me haga el ...
  #1 (permalink)  
Antiguo 22/06/2005, 08:25
 
Fecha de Ingreso: agosto-2003
Ubicación: pachuca,hgo
Mensajes: 132
Antigüedad: 20 años, 8 meses
Puntos: 0
funcion para sacar la edad actual de alguien..

Hola...

Existe alguna funcion en especial para sacar la edad de una persona?....
Cuando yo capure el año de nacimiento quiero que me haga el calculo pero no se si hay alguna funcion o que?...

Les agradeceria mucho su ayuda....
__________________
just do it
  #2 (permalink)  
Antiguo 22/06/2005, 08:30
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Código:
//calcular la edad de una persona 
//recibe la fecha como un string en formato español 
//devuelve un entero con la edad. Devuelve false en caso de que la fecha sea incorrecta o mayor que el dia actual 
function calcular_edad(fecha){ 

    //calculo la fecha de hoy 
    hoy=new Date() 
    //alert(hoy) 

    //calculo la fecha que recibo 
    //La descompongo en un array 
    var array_fecha = fecha.split("/") 
    //si el array no tiene tres partes, la fecha es incorrecta 
    if (array_fecha.length!=3) 
       return false 

    //compruebo que los ano, mes, dia son correctos 
    var ano 
    ano = parseInt(array_fecha[2]); 
    if (isNaN(ano)) 
       return false 

    var mes 
    mes = parseInt(array_fecha[1]); 
    if (isNaN(mes)) 
       return false 

    var dia 
    dia = parseInt(array_fecha[0]); 
    if (isNaN(dia)) 
       return false 


    //si el año de la fecha que recibo solo tiene 2 cifras hay que cambiarlo a 4 
    if (ano<=99) 
       ano +=1900 

    //resto los años de las dos fechas 
    edad=hoy.getYear()- ano - 1; //-1 porque no se si ha cumplido años ya este año 

    //si resto los meses y me da menor que 0 entonces no ha cumplido años. Si da mayor si ha cumplido 
    if (hoy.getMonth() + 1 - mes < 0) //+ 1 porque los meses empiezan en 0 
       return edad 
    if (hoy.getMonth() + 1 - mes > 0) 
       return edad+1 

    //entonces es que eran iguales. miro los dias 
    //si resto los dias y me da menor que 0 entonces no ha cumplido años. Si da mayor o igual si ha cumplido 
    if (hoy.getUTCDate() - dia >= 0) 
       return edad + 1 

    return edad 
}
  #3 (permalink)  
Antiguo 22/06/2005, 11:32
 
Fecha de Ingreso: agosto-2003
Ubicación: pachuca,hgo
Mensajes: 132
Antigüedad: 20 años, 8 meses
Puntos: 0
Como aplico la funcion para que me de la edad?

Como puedo aplicar la funcion para que me de la edad al momento de capturar la fecha de nacimiento?....Es decir, al perder el foco este campo...
__________________
just do it
  #4 (permalink)  
Antiguo 22/06/2005, 12:57
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Código:
<input type="text" name="textfield" onBlur="calcular_edad(this.value)">
  #5 (permalink)  
Antiguo 22/06/2005, 13:05
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
ó si querés el resultado en el mismo input text:
Código:
<input type="text" name="textfield" onBlur="this.value= calcular_edad(this.value);">
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:28.