Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/07/2011, 16:37
SideEfect
 
Fecha de Ingreso: mayo-2011
Mensajes: 38
Antigüedad: 13 años, 10 meses
Puntos: 0
fecha de nacimiento automatica con error ......

buenas tardes he buscado arduamente sobre como lograr la edad exacta de una persona en sabiendo el dia el mes y año de nacimiento para esto encontre un ejemplo donde explican de manera coherente como obtenerla ....sin embargo no encuentro un error q me esta comiendo la cabeza ,al final el text donde deberia salir la edad me sale negativo y con 4 cifras........ aqui esta el ejemplo gracias de antemano

Código Javascript:
Ver original
  1. <script language="JavaScript">
  2.  
  3. function calcular_edad()
  4. {
  5.     var indiced = document.form1.dianac.selectedIndex;
  6.     var dia = document.form1.dianac.options[indiced].value;
  7.  
  8.     var indicem = document.form1.mesnacs.selectedIndex;
  9.     var mes = document.form1.mesnacs.options[indicem].value;
  10.  
  11.     var ano = document.form1.anonac.value;
  12.     ano = parseInt(ano);
  13.            
  14.     //Calculo la fecha de hoy
  15.     hoy = new Date();
  16.        
  17.     //El año de la fecha que recibo solo tiene 2 cifras hay que cambiarlo a 4
  18.     ano = 1900 + ano;
  19.  
  20.     //Resto los años de las dos fechas
  21.     //-1 porque no se si ha cumplido años ya este año
  22.     edad = hoy.getYear()- ano - 1;
  23.    
  24.     //Si resto los meses y me da menor que 0 entonces no ha cumplido años.
  25.     //Si da mayor si ha cumplido
  26.     //+ 1 porque los meses empiezan en 0
  27.     if ( hoy.getMonth() + 1 - mes < 0)
  28.        return edad
  29.        
  30.     if ( hoy.getMonth() + 1 - mes > 0)
  31.        return edad+1
  32.  
  33.     //Si resto los dias y me da menor que 0 entonces no ha cumplido años.
  34.     //Si da mayor o igual si ha cumplido
  35.     if ( hoy.getUTCDate() - dia >= 0)
  36.        return edad + 1
  37.  
  38.     return edad
  39. }
  40. </script>



Código HTML:
Ver original
  1.  
  2. <form name="form1" id="form1">
  3. <select name="dianac" id="dianac" size="1">  
  4. <option value="1">01</option>  
  5. <option value="2">02</option>  
  6. .  
  7. .  
  8. .  
  9. </select>
  10. <select name="mesnacs" id="mesnacs" size="1">  
  11. <option value="01">Enero</option>  
  12. <option value="02">Febrero</option>  
  13. .  
  14. .  
  15. .  
  16. </select>
  17.  
  18. <input name="anonac" id="anonac" type="text" size="5" maxlength="2"
  19. onKeyPress=
  20. "if (event.keyCode<45||event.keyCode>57)event.returnValue=false;">  
  21. <input name="edad" type="text" size="5" id="edad"
  22. onfocus="this.form.edad.value=calcular_edad()">  
  23. </form>
  24. </body>