Foros del Web » Programando para Internet » Javascript » Frameworks JS »

problema con funcion

Estas en el tema de problema con funcion en el foro de Frameworks JS en Foros del Web. tengo un pequeño problema con este array: al pasarle la fecha el mes 08 y 09, cuando los transformo a entero me los pasa al ...
  #1 (permalink)  
Antiguo 28/05/2012, 08:41
 
Fecha de Ingreso: mayo-2012
Mensajes: 28
Antigüedad: 11 años, 11 meses
Puntos: 0
problema con funcion

tengo un pequeño problema con este array:

al pasarle la fecha el mes 08 y 09, cuando los transformo a entero me los pasa al array como un cero por lo tanto calcular la edad con la fecha de nacimiento no me da exacta
aqui les dejo el codigo

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("-");
alert ("su fecha es : "+array_fecha);
//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 dia;

dia = parseInt(array_fecha[0]);
if (isNaN(dia)){

return false;


}
var mes;

mes = parseInt(array_fecha[1]);

alert("su mes es : "+mes)
if (isNaN(mes)){

return false;

}

var ano;
ano = parseInt(array_fecha[2]);
alert("su año es: "+ano);
if (isNaN(ano)){
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.getFullYear()- 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;


}
-----------------------------------------------------------------------------------


y con este html le estoy pasando los valores

<html>
<head>
<title>Problema</title>
<script language="javascript" type="text/javascript" src="mio.js"></script>
<script language="javascript" type="text/javascript" src="jquery-1.7.2.js"></script>
</head>
<body>
<script language="javascript">
document.write('Tu edad es: '+calcular_edad('27-08-1990'));
</script>
</body>
</html>
  #2 (permalink)  
Antiguo 28/05/2012, 09:30
Avatar de diamari  
Fecha de Ingreso: marzo-2012
Mensajes: 95
Antigüedad: 12 años, 1 mes
Puntos: 30
Respuesta: problema con funcion

Cambia parseInt de radix a decimal:

mes = parseInt(array_fecha[1],10);
  #3 (permalink)  
Antiguo 28/05/2012, 09:42
 
Fecha de Ingreso: mayo-2012
Mensajes: 28
Antigüedad: 11 años, 11 meses
Puntos: 0
Respuesta: problema con funcion

vale gracias pero no entendi porque ocurria eso
me lo podrias explicar si no es mucha molestia


pd: me resulto gracias
  #4 (permalink)  
Antiguo 28/05/2012, 16:20
Avatar de diamari  
Fecha de Ingreso: marzo-2012
Mensajes: 95
Antigüedad: 12 años, 1 mes
Puntos: 30
Respuesta: problema con funcion

Por defecto parseint pues analiza el numero como uno a base de 8 o sea un numero de 0-7 y como ni 8 o 9 existe coloca 0. Al colocar el 10 le indicas que es un numero decimal osea a base de 10 o 0-9.

Etiquetas: funcion, html, jquery, js
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 20:35.