Foros del Web » Programando para Internet » Javascript »

Campos para calcular edad

Estas en el tema de Campos para calcular edad en el foro de Javascript en Foros del Web. HOLA, TENGO ÉSTE CÓDIGO EN JAVASCRIPT DONDE SE LLEVA A CABO EL CALCULO DE LA EDAD DE UNA PERSONA MEDIANTE EL INGRESO DE LA FECHA ...
  #1 (permalink)  
Antiguo 30/07/2010, 12:54
 
Fecha de Ingreso: julio-2010
Mensajes: 38
Antigüedad: 13 años, 8 meses
Puntos: 0
Campos para calcular edad

HOLA, TENGO ÉSTE CÓDIGO EN JAVASCRIPT DONDE SE LLEVA A CABO EL CALCULO DE LA EDAD DE UNA PERSONA MEDIANTE EL INGRESO DE LA FECHA DE NACIMIENTO DE LA MISMA.
MI PROFESOR DE DISEÑO WEB ME PIDE " los campos que debe ingresar el usuario" Y UN BOTÓN, NO SE COMO SE HACE Y ME ESTOY VOLVIENDO LOCA.
EL CÓDIGO ES EL SIGUIENTE:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<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(fecha){
//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>
si me pueden ayudar será mejor para mi salud mental
Gracias
  #2 (permalink)  
Antiguo 30/07/2010, 14:05
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 3 meses
Puntos: 126
Respuesta: Campos para calcular edad

Hola

A ver si esto te ayuda para que te des cuenta de que estás haciendo mal
Código Javascript:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta name="http-equiv" content="Content-type: text/html; charset=UTF-8"/>
  5. <script type="text/javascript">
  6. function calcular_edad(opt1,opt2,opt3) {
  7. var dia, mes, anyo
  8. if (opt1 == "") {dia = document.forma28.dia.options[document.forma28.dia.selectedIndex].value;} else { dia = opt1;}
  9. if (opt2 == "") {mes = document.forma28.mes.options[document.forma28.mes.selectedIndex].value;} else { mes = opt2;}
  10. if (opt3 == "") {anyo = document.forma28.ano.options[document.forma28.ano.selectedIndex].value;} else { anyo = opt3;}
  11.  
  12. alert("Dia " +dia+ " Mes " +mes+ " Anyo " +anyo)
  13.  
  14. var nacimiento =new Date(anyo, mes, dia)
  15. hoy = new Date()
  16. var cuantos_dias =1000*60*60*24*365
  17. document.getElementById("edad").value = (Math.ceil((hoy.getTime()-nacimiento.getTime())/(cuantos_dias))-1);
  18. }
  19. </script>
  20. </head>
  21. <body>
  22. <center> REGISTRO </center>
  23. <center>
  24.         <form name="forma28" action="index.php?mod=jugadores&pag=guardar" id="forma28" method="post" onSubmit="return validar_jugador(this)" >
  25.          <table border="0" align="center"   id="gradient-style">
  26.            
  27.                 <tr>
  28.                 <td> Fecha de Nacimiento </td>
  29.                 <td> <select name="dia" size="5" onchange="calcular_edad(this.options[this.selectedIndex].value,'','');">
  30.             <option value=""> D&Iacute;A</option>
  31.             <option value="1" selected> 1</option>
  32.             <option value="2"> 2</option>
  33.             <option value="3"> 3</option>
  34.             <option value="4"> 4</option>
  35.             <option value="5"> 5</option>
  36.             <option value="6"> 6</option>
  37.             <option value="7"> 7</option>
  38.             <option value="8"> 8</option>
  39.             <option value="9"> 9</option>
  40.             <option value="10"> 10</option>
  41.             <option value="11"> 11</option>
  42.             <option value="12"> 12</option>
  43.             <option value="13"> 13</option>
  44.             <option value="14"> 14</option>
  45.             <option value="15"> 15</option>
  46.             <option value="16"> 16</option>
  47.             <option value="17"> 17</option>
  48.             <option value="18"> 18</option>
  49.             <option value="19"> 19</option>
  50.             <option value="20"> 20</option>
  51.             <option value="21"> 21</option>
  52.             <option value="22"> 22</option>
  53.             <option value="23"> 23</option>
  54.             <option value="24"> 24</option>
  55.             <option value="25"> 25</option>
  56.             <option value="26"> 26</option>
  57.             <option value="27"> 27</option>
  58.             <option value="28"> 28</option>
  59.             <option value="29"> 29</option>
  60.             <option value="30"> 30</option>
  61.          </select>
  62.               <select name="mes" size="5" onchange="calcular_edad('',this.options[this.selectedIndex].value,'');">
  63.                 <option value=""> MES </option>
  64.                 <option value="0" selected> Enero</option>
  65.                 <option value="1"> Febrero</option>
  66.                 <option value="2"> Marzo</option>
  67.                 <option value="3"> Abril</option>
  68.                 <option value="4"> Mayo</option>
  69.                 <option value="5"> Junio</option>
  70.                 <option value="6"> Julio</option>
  71.                 <option value="7"> Agosto</option>
  72.                 <option value="8"> Septiembre</option>
  73.                 <option value="9"> Octubre</option>
  74.                 <option value="10"> Noviembre</option>
  75.                 <option value="11"> Diciembre</option>
  76.               </select>
  77.             <select name="ano"  size="5" onchange="calcular_edad('','',this.options[this.selectedIndex].value);">
  78.                 <option value=""> A&Ntilde;O</option>
  79.                 <option value="74" selected> 1974</option>
  80.                 <option value="75"> 1975</option>
  81.                 <option value="76"> 1976</option>
  82.                 <option value="77"> 1977</option>
  83.                 <option value="78"> 1978</option>
  84.                 <option value="79"> 1979</option>
  85.                 <option value="80"> 1980</option>
  86.                 <option value="81"> 1981</option>
  87.                 <option value="82"> 1982</option>
  88.                 <option value="83"> 1983</option>
  89.                 <option value="84"> 1984</option>
  90.                 <option value="85"> 1985</option>
  91.                 <option value="86"> 1986</option>
  92.                 <option value="87"> 1987</option>
  93.                 <option value="88"> 1988</option>
  94.                 <option value="89"> 1989</option>
  95.                 <option value="90"> 1990</option>
  96.                 <option value="91"> 1991</option>
  97.                 <option value="92"> 1992</option>
  98.                 <option value="93"> 1993</option>
  99.                 <option value="94"> 1994</option>
  100.                 <option value="95"> 1995</option>
  101.                 <option value="96"> 1996</option>
  102.                 <option value="97"> 1997</option>
  103.                 <option value="98"> 1998</option>
  104.                 <option value="99"> 1999</option>
  105.                 <option value="2000"> 2000</option>
  106.                 <option value="2001"> 2001</option>
  107.                 <option value="2002"> 2002</option>
  108.                 <option value="2003"> 2003</option>
  109.                 <option value="2004"> 2004</option>
  110.                 <option value="2005"> 2005</option>
  111.                 <option value="2006"> 2006</option>
  112.                 <option value="2007"> 2007</option>
  113.                 <option value="2008"> 2008</option>
  114.                 </select>
  115.                 </td>
  116.                 </tr>
  117.             <tr>
  118.             <tr>
  119.                 <td>Edad:</td>
  120.                 <td><input type="text" id="edad" name="edad" size="10" maxlength="2">
  121.                 </td>
  122.         </tr>
  123.     </table>
  124.        
  125. </body>
  126. </html>
Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #3 (permalink)  
Antiguo 03/08/2010, 07:47
 
Fecha de Ingreso: julio-2010
Mensajes: 38
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Campos para calcular edad

Hola yo de nuevo! le envié el codigo que hiciste a mi profesor de diseño web, y dice que le falta un botón parea calcular. Podrías decirmew como lo hago?
Gracias
Jesy
  #4 (permalink)  
Antiguo 03/08/2010, 07:54
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 3 meses
Puntos: 126
Respuesta: Campos para calcular edad

Hola
Cita:
Iniciado por Jesijames Ver Mensaje
Hola yo de nuevo! le envié el codigo que hiciste a mi profesor de diseño web, y dice que le falta un botón parea calcular. Podrías decirmew como lo hago?
Gracias
Jesy
Así eso te ha dicho tu profesor ¿No será que a el le falta un tornillo? No se que quiere decir, solo puedo decirte que todos los caminos llegan a Roma

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #5 (permalink)  
Antiguo 03/08/2010, 16:52
 
Fecha de Ingreso: julio-2010
Mensajes: 38
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Campos para calcular edad

Bueno, muy buena forma de trabajar interdisciplinariamente con dos disciplinas tan distintas como la Infomática y la Filosofía, jajajaja.
Seguiré buscando mi camino a Roma.
Jijijiji.
Jesica
  #6 (permalink)  
Antiguo 04/08/2010, 05:53
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 3 meses
Puntos: 126
Respuesta: Campos para calcular edad

Hola
Cita:
Iniciado por Jesijames Ver Mensaje
Bueno, muy buena forma de trabajar interdisciplinariamente con dos disciplinas tan distintas como la Infomática y la Filosofía, jajajaja.
Seguiré buscando mi camino a Roma.
Jijijiji.
Jesica
No sé a que botón se refiere. Si eres mas concreto, .....

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #7 (permalink)  
Antiguo 04/08/2010, 08:11
 
Fecha de Ingreso: julio-2010
Mensajes: 38
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Campos para calcular edad

hola, yo de vuelta: sabes que?me canse que mi profesor me presione por que no se hacer lo que me pide, por que el código esta perfecto pero creo que lo que el quiere es que lo haga yo misma, asi que lo que te voy a pedir es que si sabes de alguna página que tenga un buen tutorial para aprender javascript desde cero (como es mi caso), me dijeron de uno que se llama "javascript para tontos" (mirá lo que tengo que asumir de mi misma! jajaj), pero no lo consigo en español, asi a lo mejor vos sabes de alguno.
Saludos y nuevamente gracias.
Jesica
  #8 (permalink)  
Antiguo 04/08/2010, 08:15
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 3 meses
Puntos: 126
Respuesta: Campos para calcular edad

Hola

A ver que te parece este para empezar

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #9 (permalink)  
Antiguo 05/08/2010, 06:30
 
Fecha de Ingreso: julio-2010
Mensajes: 38
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Campos para calcular edad

Hola no quiero molestar con pequeñeses pero, ¿Sabes como se llama el editor de javascript de la compañia Sun Microsistem?
Jesica
  #10 (permalink)  
Antiguo 05/08/2010, 06:53
 
Fecha de Ingreso: julio-2010
Mensajes: 38
Antigüedad: 13 años, 8 meses
Puntos: 0
De acuerdo Respuesta: Campos para calcular edad

Cita:
Iniciado por Adler Ver Mensaje
Hola

[URL="http://librosweb.es/javascript/"]A ver que te parece este para empezar[/URL]

Suerte
HAAAA! me olvidaba! Muy buen material, justo lo que necesitaba! Gracias!
Espero poder hacerte consultas acerca del mismo. Por que vos te ocupas mas de mi que mi profesor Jaajaja.
Saludos.
Jesica
  #11 (permalink)  
Antiguo 05/08/2010, 07:15
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 3 meses
Puntos: 126
Respuesta: Campos para calcular edad

Hola

Cita:
Iniciado por Jesijames Ver Mensaje
Hola no quiero molestar con pequeñeses pero, ¿Sabes como se llama el editor de javascript de la compañia Sun Microsistem?
Jesica
Pues eso no te va a ayudar en nada a aprender.Se llama Macromedia Dreamweaver, creo

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #12 (permalink)  
Antiguo 06/08/2010, 06:08
 
Fecha de Ingreso: julio-2010
Mensajes: 38
Antigüedad: 13 años, 8 meses
Puntos: 0
Busqueda Respuesta: Campos para calcular edad

Bueno, tomo muy en cuenta tus consejos.
No, al dreamweaver ya lo tengo y lo manejo, pero me dijeron que el otro es mejor.
Vos cual usas?
  #13 (permalink)  
Antiguo 06/08/2010, 07:16
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 3 meses
Puntos: 126
Respuesta: Campos para calcular edad

Hola

Cualquier editor de texto; notepad++, block de notas, .... y a escribir y reescribir códigos hasta lograr lo que quede algo medio decente

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #14 (permalink)  
Antiguo 09/08/2010, 08:25
 
Fecha de Ingreso: julio-2010
Mensajes: 38
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Campos para calcular edad

Guau!!...Medio decente? que esperanzas!
  #15 (permalink)  
Antiguo 10/08/2010, 13:37
 
Fecha de Ingreso: julio-2010
Mensajes: 38
Antigüedad: 13 años, 8 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
  #16 (permalink)  
Antiguo 10/08/2010, 15:28
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 3 meses
Puntos: 126
Respuesta: Campos para calcular edad

Hola

Al final tendrás que dejar de pagar a ese profesor y pagarme a mi
Código Javascript:
Ver original
  1. <!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
  2. <html xmlns='http://www.w3.org/1999/xhtml'>
  3. <head>
  4. <meta name="http-equiv" content="Content-type: text/html; charset=UTF-8"/>
  5. <script type="text/javascript">
  6. function calcular_edad() {
  7. var fecha = null;
  8. var fecha = prompt("Fecha de nacimiento","");
  9. if (fecha == null || fecha == "") {
  10. alert ("Escribe tu fecha de nacimiento");
  11. } else {
  12. var hoy = new Date()
  13. divFecha = fecha.split("/");
  14. var editFecha = new Date(divFecha[2],divFecha[1],divFecha[0])
  15. diferencia =  hoy.getTime() - editFecha.getTime();
  16. segundostotales = parseInt(diferencia /1000);
  17. anyos = parseInt(segundostotales/60/60/24/365);
  18. alert(anyos)
  19. }
  20. }
  21. </script>
  22. </head>
  23. <body>
  24. <input type="button" onclick="calcular_edad(); return false;"; value="Fecha" />
  25. </body>
  26. </html>
Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />

Etiquetas: campos, edad, calculadora
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 14:42.