Salut dans le script ya un soucis de date.par exemplar quand on rentre la date du 01/01/2000, on se rend compte que le calcul n'est pas correct : il indique 16 ans et pas 17ans.
Merci de votre aide
Modifié par moon28 (17 Oct 2017 - 22:55)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Calcul de l'âge</title>
<script language="JavaScript">
function CheckDate(d) {
var amin=1900;
var amax=2500;
var separateur="/";
var j=(d.substring(0,2));
var m=(d.substring(3,5));
var a=(d.substring(6));
var ok=1;
if ( ((isNaN(j))||(j<1)||(j>31)) && (ok==1) ) {
alert("Le jour n'est pas correct."); ok=0;
}
if ( ((isNaN(m))||(m<1)||(m>12)) && (ok==1) ) {
alert("Le mois n'est pas correct."); ok=0;
}
if ( ((isNaN(a))||(a<amin)||(a>amax)) && (ok==1) ) {
alert("L'année n'est pas correcte."); ok=0;
}
if ( ((d.substring(2,3)!=separateur)||(d.substring(5,6)!=separateur)) && (ok==1) ) {
alert("Les séparateurs doivent être des "+separateur); ok=0;
}
if (ok==1) {
var d2=new Date(a,m-1,j);
j2=d2.getDate();
m2=d2.getMonth()+1;
a2=d2.getYear();
if (a2<=100) {a2=1900+a2}
if ( (j!=j2)||(m!=m2)||(a!=a2) ) {
ok=0;
}
ok=d2;
}
return ok;
}
function tjs_age() {
var dt_naissance = document.getElementById("dt_naissance");
var dt = dt_naissance.value;
var d = CheckDate(dt);
var m = new Date();
var age="";
var age_a=0;var age_m=0;
if (d!=0) {
if (d.getTime()>m.getTime()) {
age="La date de naissance est supérieure à la date du jour !";
dt_naissance.focus();
}
age_a = m.getFullYear()-d.getFullYear();
m.setYear(d.getYear());
if ((d.getTime()>m.getTime())&&(d.getMonth()-m.getMonth()!=0)) {age_a--;}
if (d.getMonth() >= m.getMonth()) {
age_m = 12 - (d.getMonth()-m.getMonth())
} else {
age_m = (m.getMonth()-d.getMonth())
}
if (age_m==12) {age_m=0;}
if (age_a==1) { age=age_a+" an"}
if (age_a>1) { age=age_a+" ans"}
if ((age_a>0)&&(age_m>0)) {age+=" et "}
if (age_m>0) {age+=age_m+" mois"}
if (age=="") { age="moins de 1 mois"}
age = 'Age = '+age;
if (age_a>0 && d.getDate()==m.getDate() && d.getMonth()==m.getMonth()) { age= "Joyeux Anniversaire\n"+age;}
} else {
dt_naissance.focus();
}
alert(age);
}
window.addEventListener("load", function () {
document.getElementById("envoyer").addEventListener("click", tjs_age);
});
</script>
</head>
<body>
<center>
<big><b>Calcul de l'âge</b></big>
</center>
<br>
<form name="formage">
Entrez votre date de naissance (JJ/MM/AAAA) :
<input id="dt_naissance" name="dt_naissance" size="10" maxlength="10" type="text">
<input value="Calcul de l'âge" type="button" id="envoyer">
</form>
</body>
Merci de votre aide
Modifié par moon28 (17 Oct 2017 - 22:55)