function finMes(oTxt){ var nMes = parseInt(oTxt.value.substr(3, 2), 10); var nAno = parseInt(oTxt.value.substr(6), 10); var nRes = 0; switch (nMes){ case 1: nRes = 31; break; case 2: nRes = 28; break; case 3: nRes = 31; break; case 4: nRes = 30; break; case 5: nRes = 31; break; case 6: nRes = 30; break; case 7: nRes = 31; break; case 8: nRes = 31; break; case 9: nRes = 30; break; case 10: nRes = 31; break; case 11: nRes = 30; break; case 12: nRes = 31; break; } return nRes + (((nMes == 2) && (nAno % 4) == 0)? 1: 0); } function valDia(oTxt){ var bOk = false; var nDia = parseInt(oTxt.value.substr(0, 2), 10); bOk = bOk || ((nDia >= 1) && (nDia <= finMes(oTxt))); return bOk; } function valMes(oTxt){ var bOk = false; var nMes = parseInt(oTxt.value.substr(3, 2), 10); bOk = bOk || ((nMes >= 1) && (nMes <= 12)); return bOk; } function valAno(oTxt){ var bOk = true; var nAno = oTxt.value.substr(6); bOk = bOk && ((nAno.length == 2) || (nAno.length == 4)); if (bOk){ for (var i = 0; i < nAno.length; i++){ bOk = bOk && esDigito(nAno.charAt(i)); } } return bOk; } function valFecha(oTxt){ var bOk = true; if (oTxt.value != ""){ bOk = bOk && (valAno(oTxt)); bOk = bOk && (valMes(oTxt)); bOk = bOk && (valDia(oTxt)); bOk = bOk && (valSep(oTxt)); return bOk; } } function fechaMayorOIgualQue(fec0, fec1){ var bRes = false; var sDia0 = fec0.value.substr(0, 2); var sMes0 = fec0.value.substr(3, 2); var sAno0 = fec0.value.substr(6, 4); var sDia1 = fec1.value.substr(0, 2); var sMes1 = fec1.value.substr(3, 2); var sAno1 = fec1.value.substr(6, 4); if (sAno0 > sAno1) bRes = true; else { if (sAno0 == sAno1){ if (sMes0 > sMes1) bRes = true; else { if (sMes0 == sMes1) if (sDia0 >= sDia1) bRes = true; } } } return bRes; } function valFechas(){ var bOk = false; if (valFecha(document.f1.fec0)){ if (valFecha(document.f1.fec1)){ if (fechaMayorOIgualQue(document.f1.fec1, document.f1.fec0)){ bOk = true; alert("Ok"); } else { alert("Rango invalido"); document.f1.fec1.focus(); } } else { alert("Fecha invalida"); document.f1.fec1.focus(); } } else { alert("Fecha invalida"); document.f1.fec0.focus(); } }