calcular edad
-
Upload
jose-bernabe-sanchez-perez -
Category
Documents
-
view
68 -
download
1
Transcript of calcular edad
Este es el contenido del archivo calcularedad.html
<!DOCTYPE HTML>
<html>
<head>
<title>Calcular la edad a partir de la fecha de nacimiento</title>
<script type="text/javascript" src="./jscript/edad.js"></script>
</head>
<body bgcolor="FFFFF2" text="008500">
<form name="formaedad">fecha de nacimiento
<input type=text name="edad" size=15 onFocus="ClearForm1(this.form)">
<input type="button" value="Calcular edad" onClick="calcular_edad(document.formaedad.edad.value)"> <br> <br> <br>
La edad es: <input type=text name="edad1" size=10>
</form>
</body>
</html>
Para cuando vayan a crear el archivo de javascrip en el editor comodo seleccionen la opción JavaScript (Ver figura), para que solo pongan el nombre del
archivo que este caso se llama edad y el editor automáticamente asumirá la extensión js. O sea que nuestro archivo se llamara edad.js.
Recuerden de crear una subcarpeta dentro de la carpeta que contendrá el archivo html la cual la llamaran jscript para que todo funcione
bien.
Este es el contenido del archivo edad.js
//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();
//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 alert("Error en la fecha");
//compruebo que los ano, mes, dia son correctos
var ano;
ano = parseInt(array_fecha[2]);
if (isNaN(ano))
return alert("Error en la fecha");
var mes;
mes = parseInt(array_fecha[1]);
if (isNaN(mes))
return alert("Error en la fecha");
var dia;
dia = parseInt(array_fecha[0]);
if (isNaN(dia))
return alert("Error en la fecha");
//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.getFullYear()- ano - 1; //-1 porque no se si ha cumplido años ya este año
//+ 1 porque los meses empiezan en 0
if (hoy.getMonth() + 1 - mes == 0)
{
//entonces los mese 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 document.formaedad.edad1.value=edad + 1;
else
return document.formaedad.edad1.value=edad;
}
else
{
//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 document.formaedad.edad1.value=edad;
}
if (hoy.getMonth() + 1 - mes > 0)
{
return document.formaedad.edad1.value=edad + 1;
}
}
}
function ClearForm1(form){
form.edad.value="";
form.edad1.value="";
}