function VerifDate(ds) { return VerifDate(ds, false); } /** * Fonction vérifiant si la date sous forme de String passé en paramêtre est correcte * Et verif que l'année est supérieur à celle courante si verifYear=true */ function VerifDate(ds, verifYear) { // Vérification des dates if (ds != null && ds != "") { var i0,i1; var j, m, a; //Récupère le jour i0 = ds.indexOf("/", 0); if (i0<0) return -1; j = ds.substring(0, i0); if (isNaN(j) || j <1 || j>31) return -1; if ((m==4 || m==6 || m==9 || m==11) && j>30) return -1; //Récupère le mois i1 = ds.indexOf("/", i0+1); if (i1<0) return -1; m = ds.substring(i0+1, i1); if (isNaN(m) || m <1 || m>12) return -1; //Récupère l'année a = ds.substring(i1+1, ds.length); if (isNaN(j)) return -1; if (a<60) a += 2000; else if (a<100) a += 1900; else if (a<1980 || a>2100) return -1; if(verifYear && a < new Date().getYear()) return -1; //Créé la date var biss = Bissextile(a); if (m==2 && ( !biss && j>28 || biss && j>29 )) return -1; dt = new Date(a, m-1, j); if (isNaN(dt)) return -1; return 1; } else return 0; } /** * Fonction retournant vrai si l'année passé en paramètre est bissextile */ function Bissextile(intYear) { if (intYear%100 == 0) { if (intYear%400 == 0) return true; } else { if (intYear%4 == 0) return true; } return false; }