Foros del Web » Programando para Internet » Javascript »

calculo intantaneo de edad

Estas en el tema de calculo intantaneo de edad en el foro de Javascript en Foros del Web. amigos tengo una duda de como puedo hacer un calculo intantaneo de la edad de una persona al momento de ingresar la fecha; ya que ...
  #1 (permalink)  
Antiguo 05/05/2006, 02:58
 
Fecha de Ingreso: noviembre-2004
Mensajes: 181
Antigüedad: 20 años, 2 meses
Puntos: 1
calculo intantaneo de edad

amigos tengo una duda de como puedo hacer un calculo intantaneo de la edad de una persona al momento de ingresar la fecha;
ya que tengo don cuadros de texto donde uno es la fecha de naciniento y mas avajo es la edad entonces lo que nesesito essaber como ago para que cuando ingrese la fecha de nacimiento de calcule la edad inmediato y se pase el valor de la edad al cuadro de texto sin que tenga q escribir la edad.
muchas gracias de nate mano..
  #2 (permalink)  
Antiguo 05/05/2006, 03:21
Avatar de jimi  
Fecha de Ingreso: mayo-2006
Ubicación: La Plata, Bs As, Argentina
Mensajes: 60
Antigüedad: 18 años, 8 meses
Puntos: 0
esto te va a servir..
//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
}

Nota:
1- acordate que en javascript cuando una funcion realiza el return corta la ejecucion (por si tenes ganas de entender el codigo:))
2- Para que se te actualice inmediatamente una vez que ingrese la fecha, tenes que ingresar en el input de la fecha un evento que ejecute esta funcion
y despues asignarle el valor al campo de la edad..
__________________
Puntovista
  #3 (permalink)  
Antiguo 05/05/2006, 09:35
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 23 años
Puntos: 129
Si ha de ser "instantaneo" .. no será la sulución con PHP. Será por javascript o en general por algún lenguaje del "lado del cliente".

Recuerda que PHP se "ejecuta" cuando le haces llegar los datos a el script en cuestión .. en tu caso, al enviar ese "formulario" .. no antes.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 19:52.