PDA

Ver la versión completa : Ayuda con rutina



Danilo51
29-02-2008, 18:33
Buenas gente, hoy me encuentro enfrascado en una función que según recibe ciertos parámetros me dice si una fecha es buena o no.. Estoy programando en JavaScript. El código es el siguiente:



if (Mes==4 || Mes==6 || Mes==9 || Mes==11 || Mes==2) {
if ( ((Mes==2) && (Dia >28) && ((ano%4 == 0) && (!(ano%100 != 0) || (ano%400 == 0))) ) || Dia>30 ) {
alert(msj)
return false
}
}


En la primera condición, verifico que mes me están pasando, estoy evaluando los que tienen 30 días. A continuación evalúo que si es febrero, tiene más de 28 días y no es bisiesto. Si se cumple debería enviar un un mensaje de error.
Y es ahí cuando vienen los problemas por que cuando hago esto:


if (Mes==4 || Mes==6 || Mes==9 || Mes==11 || Mes==2) {
if (Mes==2 && Dia > 28 || Dia>30) {
alert(msj)
return false
}
}


Todo va bien, pero claro si estamos en año bisiesto no me deja meter la siguiente fecha 29/02/2008.
Alguien me podría decir que es lo que no estoy haciendo bien.
Un saludo

KaoS
01-03-2008, 17:22
Buenas Danilo,

Te recomiendo que uses algún validador que ya exista, este es uno de los típicos scripts que están ya programados y testeados en diversos sitios.

Puedes mirar un ejemplo de función que te puede ayudar:
http://www.csua.berkeley.edu/~jgwang/jsfunc02.htm

Si aún así prefieres usar código propio te recomiendo que uses más paréntesis para delimitar las conciones. Posíblemente esa pueda ser la causa del fallo.

Suerte!

Danilo51
03-03-2008, 13:32
Buenas de nuevo, ya lo tengo solucionado, he optado por evaluar si es bisiesto y dependiendo del resultado me he montado un chivato que utilizo en la evaluación final. Gracias por tu respuesta KaoS.

Un saludo.