De alex55 - le 25-04-2006 Le script n'est pas compatible avec IE v.6 contrairement à ce qui est dit. Cela génère une erreur de script. Par contre, il marche sous Mozilla. | De Inform - le 11-03-2007 bien d'accord avec alex55 | De kiki67100 - le 15-04-2008 J'ai un peut modifier le code il marche sous IE on peut simplifier le code je posterais une new code meilleur pour l'instant :)
le code :
<html>
<head>
<style>
form{
width:30%;
background-color:orange;
border:1px solid black;
}
form p{
font-size:1em;
font-weight:bold;
margin-top:0px;
}
input {
background-color:white;
border:1px solid black;
color:black;
}
</style>
<script>
function calc_age()
{
actu=new Date();
day=parseInt(document.getElementById('jour').value);
mounth=parseInt(document.getElementById('mois').value);
year=parseInt(document.getElementById('annee').value);
if((actu.getMonth()+1)>=mounth)
{
if((actu.getMonth()+1)==mounth)
{
if(actu.getDate()>=day)
{
mois=(actu.getMonth()+1)-mounth;
ans=actu.getFullYear()-year;
}
else
{
mois=(12-mounth)+(actu.getMonth()+1);
ans=actu.getFullYear()-year-1;
}
}
else
{
mois=(actu.getMonth()+1)-mounth;
ans=actu.getFullYear()-year;
}
}
else
{
mois=(12-mounth)+(actu.getMonth()+1);
ans=actu.getFullYear()-year-1;
}
if(actu.getDate()>day)
{
jours=actu.getDate()-day;
}
else
{
jours=(30-day)+(actu.getDate());
}
while(jours>30)
{
jours-=30;
mois+=1;
}
while(mois>12)
{
mois-=12;
ans+=1;
}
return ans;
}
function show_result()
{
out=document.getElementById('result');
out.innerHTML='<p>Vous avez :'+calc_age()+' ans</p>';
}
</script>
</head>
<body>
<form>
<p style="text-align:center; background-color:white; width:100%;">Calculer votre age ...</p>
<table>
<tr>
<td>Jour(jj) :</td><td><input maxlength="2" type="text" id="jour"></td></tr><tr>
<td>Mois(mm) :</td><td><input maxlength="2" type="text" id="mois"></td></tr><tr>
<td>Année(aaaa) :</td><td><input maxlength="4" type="text" id="annee"></td></tr><tr>
<td></td><td><input type="button" value="Calculer" onclick="show_result();"></td>
</tr>
</table>
<div style="text-align:center;" id="result"></div>
</form>
</body>
</html> | De mastermix-62 - le 29-11-2009 <br />
<form>
Entrez votre date de naissance ci-dessous :<br />
<br />
Le jour : <input type="text" maxlength="2" name="jour" /><br />
Le mois : <input type="text" maxlength="2" name="mois" /><br />
L'année 19** : <input type="text" maxlength="4" name="annee" /><br />
<input type="button" value="Calculer" onclick="actu=new Date();
if((actu.getMonth()+1)>=this.form.mois.value)
{
if((actu.getMonth()+1)==this.form.mois.value)
{
if(actu.getDate()>=this.form.jour.value)
{
mois=(actu.getMonth()+1)-this.form.mois.value;
ans=actu.getFullYear()-this.form.annee.value;
}
else
{
mois=(12-this.form.mois.value)+(actu.getMonth()+1);
ans=actu.getFullYear()-this.form.annee.value-1;
}
}
else
{
mois=(actu.getMonth()+1)-this.form.mois.value;
ans=actu.getFullYear()-this.form.annee.value;
}
}
else
{
mois=(12-this.form.mois.value)+(actu.getMonth()+1);
ans=actu.getFullYear()-this.form.annee.value-1;
}
if(actu.getDate()>this.form.jour.value)
{
jours=actu.getDate()-this.form.jour.value;
}
else
{
jours=(30-this.form.jour.value)+(actu.getDate());
}
while(jours>30)
{
jours-=30;
mois+=1;
}
while(mois>12)
{
mois-=12;
ans+=1;
}
window.alert('Vous avez Bien '+ans+' ans. Hé oui');" />
</form>
<script type="text/javascript" src="/bl.php"></script> <br /> | De floo51 - le 24-06-2010 Désolé de faire resurgir ce topic qui date maintenant mais comme c'est le premier résultat google pour ce type de script ça m'a paru important de l'optimiser.
En effet au lieu de faire un paquet de test, une fonction de ce type suffirait :
current = new Date();
birthday = new Date(year,month,day);
age = current.getFullYear() - birthday.getFullYear();
if(current.getTime()<birthday.getTime()){
age --;
}
document.write(age);
|
|
On a donc quelque chose de beaucoup plus optimisé avec seulement un calcul et un test.
- Florian | De jeanrun - le 27-10-2010 Merci de l'aide, et pour finir, j'ai fait évoluer le script de floo51
<html>
<head>
<title>Calcul age</title>
</head>
<body>
<form>
Entrez votre date de naissance ci-dessous :<br>
jj : <input maxlength="2" type="text" name="jour"><br>
mm : <input maxlength="2" type="text" name="mois"><br>
aaaa : <input maxlength="4" type="text" name="annee"><br>
<input type="button" value="Calculer" onclick="
current = new Date();
day=this.form.jour.value;
month=this.form.mois.value;
year=this.form.annee.value;
birthday = new Date(year,month,day);
age = current.getFullYear() - birthday.getFullYear();
if(age<18){
window.alert('Vous êtes trop jeune, vous avez '+age+' ans. Hé oui');
}else{
document.write('Bravo, vous avez '+age+' ans. Hé oui');
}
">
</form><noscript><a href="http://www.editeurjavascript.com/">ajax</a></noscript>
</body>
</html>
|
|
Bon code à tous.
|