10/08/2010, 13:37
|
| | Fecha de Ingreso: julio-2010
Mensajes: 38
Antigüedad: 14 años, 4 meses Puntos: 0 | |
Respuesta: Campos para calcular edad <head>
<title>Cálculo de la edad de una persona con Javascript</title>
<script type="text/javascript" >
//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(hoy,fecha,edad){
//calculo la fecha de hoy
hoy=new Date(dia,mes,ano)
dia=dia.getDate
mes=mes.getMonth
ano=ano.getYear
//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.getDate() - dia >= 0)
return edad + 1
return edad
}
</script>
</head>
<body>
<script>
var fecha= prompt("introduce tu fecha de nacimiento")
var resultado= calcular_edad (hoy,fecha,edad)
alert ("Tu edad es:"+ resultado)
</script>
</body>
</html>
No sé si te llegó el mensaje anterior pero le agregué al código que te había mandado al principio unas variables en la parte del boby para que la persona ingrese su fecha de nacimiento, lo que no se si la función esta bien llamada por que cuando la ejecuto lo unico que me aparece es la ventana en donde se le pide lña fecha de nacimiento a la persona pero no aparece mas nada.
La pregunta es si te podes fijar en donde esta el error para que no me calcule la edad que está desarrollado en la funcion calcula_edad.
Gracias.
Saludos.
Jesica |