Exemple de calcul d'age (années, mois et jours)

Contenu du snippet

Voila un code trouvé sur un autre site que j'ai traduit pour CS. Vous pouvez calculer l'age d'une personne en Annees Mois Jours

Et en prime le script indique si vous pouvez ou non entrer dans l'armée ;-)

Source / Exemple :


<?php

//récupére la date du jour
$today = getdate();
$month = $today['month']; //le mois
$mday = $today['mday']; //le jour
$year = $today['year']; //l'année
$lyear = $year - 105;
?>

<html>
<head>
</head>
<body>
<h2>Calculer l'age</h2>
<h4>Ce script calcule votre age et vous dit si vous pouvez entrer dans l'armée</h4>
    <form method=post action=age.php name=age>
    <table>
    <tr>
    <td>Année de naissance</td>
    <td><input type=text name=byear></td>
    </tr>
    <tr>
    <td>Mois de naissance</td>
    <td><select name=bmonth><option value=>Choisir</option>
	    		<option value=1>Janviers&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp</option>
	    		<option value=2>Fevrier</option>
	    		<option value=3>Mars</option>
	    		<option value=4>Avril</option>
	    		<option value=5>Mai</option>
	    		<option value=6>Juin</option>
	    		<option value=7>Juillet</option>
	    		<option value=8>Aout</option>
	    		<option value=9>Septembre</option>
	    		<option value=10>Octobre</option>
	    		<option value=11>Novembre</option>
	    		<option value=12>Decembre</option>
	    		</select></td>
    </tr>
    <tr>
    <td>Jour de naissance</td>
    <td><input type=text name=bday></td>
    </tr>
    <tr>
    <td colspan=2><input type=submit name=send value=Submit></td>
    </tr>
    </table>
</form>

<?

//assign value to variables
if($send){
	if(($byear <= $year)&&($byear >= $lyear)){ //birth year validation
	if($bday != ""){
		$day_age  = $mday - $bday;
	}
	$mon_age = date("n") - $bmonth + 12;
	$year_age = $year - $byear;
	//echo "day age: $day_age<br>";

	//calculate year and month
	if($mon_age > 12){
		$mon_age = 1;
	}elseif($mon_age == 12){
		$mon_age = "";
	}else{
		$year_age = $year_age - 1;
	}

	//calculate month and day
	if($day_age < 0){
		$mon_age = $mon_age - 1;
		if(($bmonth == 1)||($bmonth == 5)||($bmonth == 7)||($bmonth == 8)||($bmonth == 10)||($bmonth == 12)){
			$day_age = $day_age + 31;
		}elseif(($bmonth == 3)||($bmonth == 4)||($bmonth == 6)||($bmonth == 9)||($bmonth == 11)){
			$day_age = $day_age + 30;
		}else{
			$day_age = $day_age + 28;
		}
	}

	//debugger
	//echo "from system: $year $month $mday<br>";
	//echo "from input: $byear $bmonth $bday<br>";
	//echo "from result: $year_age $mon_age $day_age<br>";
	//result
	if(($mon_age <> "")&&($day_age <> "")){
		echo "Vous avez " . $year_age . " ans " . $mon_age . " mois and " . $day_age . " jours ";
	}elseif($mon_age <> ""){
		echo "You avez " . $year_age . " ans " . $mon_age . " mois";
	}else{
		echo "You avez " . $year_age . " ans";
	}

	//some extra caption
	if($year_age < 5){
		echo "<br>Ca veut dire que vous etes trop jeune. Désolé";
	}elseif($year_age > 90){
		echo "<br>Ca veux dire que vous êtes trop vieux. Désolé";
	}else{
		echo "<br>Allez-y Soldat!";
	}
}else{
	echo "Entrée invalide : $byear";
}
}
?>

Conclusion :


Alors pour tous et bien bonne utilisation, ce code n'est pas de moi, je vous le livre parceque j'ai cherché cette fonction de calcul (Année, Mois, Jours)

Et pour GRenard je sais que cette source est inutile et pollue CodeS-SourceS mais j'ai eu envie de la poster au cas ou cela pourrait aider quelqu'un. Je sais contrairement a toi que je ne suis pas le meilleur programmeur du monde alors j'apporte une maigre contribution a CodeS-SourceS.

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.