begin process at 2012 02 11 16:14:23
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Date / Heure

 > CALCULER L'AGE À PARTIR D'UNE DATE DE NAISSANCE (IDÉAL POUR UN SITE COMMUNAUTAIRE ;-)).

CALCULER L'AGE À PARTIR D'UNE DATE DE NAISSANCE (IDÉAL POUR UN SITE COMMUNAUTAIRE ;-)).


 Information sur la source

Note :
Aucune note
Catégorie :Date / Heure Niveau :Débutant Date de création :01/07/2003 Date de mise à jour :01/07/2003 18:20:19 Vu :7 714

Auteur : virtuelkiller

Ecrire un message privé
Site perso
Commentaire sur cette source (17)
Ajouter un commentaire et/ou une note

 Description

Ce code sert à calculer l'age (d'un membre ?) à partir d'une date de naissance.
J'ai commenté le code relativement long mais complet. J'ai déliré un peu vous le verrez : déjà en utilisant des if je me suis compliqué la vie :-) et si vous insérez la date du jour : surprise ! ;-)

Source

  • <?
  • //Script By VirtuelKiller sur Code-sources, Neo dans la réalité
  • //Webmaster de www.arena-games.net
  • $date_recent=date("d-m-Y");
  • //la date du jour
  • list ($jour_recent , $mois_recent , $an_recent) = split("[-./]",$date_recent);
  • //la variable $date_naissance est la date de naissance
  • //utile pour calculer l'age ;-)
  • //format de la date de naissance : jj/mm/aaaa ou jj-mm-aaaa
  • if(!empty($date_naissance))
  • {
  • list ($jour , $mois , $an) = split("[-./]",$date_naissance);
  • }
  • //Vérification de la date de naissance
  • if($an_recent<$an ){
  • echo"<script language=\"Javascript\">alert(\"Y'a un ketit problème : vous n'êtes pas encore né ! ;-)\");history.back();</script>";
  • exit;
  • }
  • if($mois_recent<$mois AND $an_recent==$an){
  • echo"<script language=\"Javascript\">alert(\"Y'a un ketit problème : vous n'êtes pas encore né ! ;-)\");history.back();</script>";
  • exit;
  • }
  • if($jour_recent<$jour AND $mois_recent==$mois AND $an_recent==$an ){
  • echo"<script language=\"Javascript\">alert(\"Y'a un ketit problème : vous n'êtes pas encore né ! ;-)\");history.back();</script>";
  • exit;
  • }
  • //Calcul de l'age
  • If($mois_recent>$mois){
  • $age=$an_recent-$an;
  • }
  • If($mois_recent<$mois){
  • $age=$an_recent-$an-1;
  • }
  • If($mois_recent==$mois AND $jour_recent<$jour){
  • $age=$an_recent-$an-1;
  • }
  • If($mois_recent==$mois AND $jour_recent>$jour){
  • $age=$an_recent-$an;
  • }
  • If($mois_recent==$mois AND $jour==$jour_recent){
  • $age=$an_recent-$an;
  • }
  • //la variable qui donne l'age est le variable $age
  • if($age<2){
  • if($mois_recent==$mois AND $jour_recent==$jour){
  • if($mois_recent==$mois AND $jour_recent==$jour AND $an_recent==$an){
  • echo"Voici votre age : <BR> $age an et BIENVENUE SUR TERRE !<BR>www.arena-games.net";
  • }Else{
  • echo"Voici votre age : <BR> $age an et BON ANNIVERSAIRE !<BR>www.arena-games.net";
  • }
  • }Else{
  • echo"Voici votre age : <BR> $age an <BR>www.arena-games.net";
  • }
  • }Else{
  • if($mois_recent==$mois AND $jour_recent==$jour){
  • echo"Voici votre age : <BR> $age ans et BON ANNIVERSAIRE !<BR>www.arena-games.net";
  • }Else{
  • echo"Voici votre age : <BR> $age ans <BR>www.arena-games.net";
  • }
  • }
  • //Excusez moi pour la longueur du code ! J'aurais pu me servir de case plutot que de if mais bon... c la vie !
  • //Si vous trouvez des bugs signalez le moi
  • //Je vous laisse faire le formulaire qui permettra d'insérer la date de naissance
  • //++
  • //VirtuelKiller sur Code-sources, Neo dans la réalité
  • //www.arena-games.net
  • ?>
<?
//Script By VirtuelKiller sur Code-sources, Neo dans la réalité
//Webmaster de www.arena-games.net


$date_recent=date("d-m-Y");
//la date du jour

list ($jour_recent , $mois_recent , $an_recent) = split("[-./]",$date_recent);

//la variable $date_naissance est la date de naissance
//utile pour calculer l'age ;-)
//format de la date de naissance : jj/mm/aaaa ou jj-mm-aaaa



if(!empty($date_naissance))
{
list ($jour , $mois , $an) = split("[-./]",$date_naissance);
}

//Vérification de la date de naissance
if($an_recent<$an ){
echo"<script language=\"Javascript\">alert(\"Y'a un ketit problème : vous n'êtes pas encore né ! ;-)\");history.back();</script>";
exit;
}
if($mois_recent<$mois AND $an_recent==$an){
echo"<script language=\"Javascript\">alert(\"Y'a un ketit problème : vous n'êtes pas encore né ! ;-)\");history.back();</script>";
exit;
}

if($jour_recent<$jour AND $mois_recent==$mois AND $an_recent==$an ){
echo"<script language=\"Javascript\">alert(\"Y'a un ketit problème : vous n'êtes pas encore né ! ;-)\");history.back();</script>";
exit;
}

//Calcul de l'age
If($mois_recent>$mois){
$age=$an_recent-$an;
}

If($mois_recent<$mois){
$age=$an_recent-$an-1;
}

If($mois_recent==$mois AND $jour_recent<$jour){
$age=$an_recent-$an-1;
}

If($mois_recent==$mois AND $jour_recent>$jour){
$age=$an_recent-$an;
}

If($mois_recent==$mois AND $jour==$jour_recent){
$age=$an_recent-$an;
}

//la variable qui donne l'age est le variable $age
if($age<2){
if($mois_recent==$mois AND $jour_recent==$jour){
if($mois_recent==$mois AND $jour_recent==$jour AND $an_recent==$an){
echo"Voici votre age : <BR> $age an et BIENVENUE SUR TERRE !<BR>www.arena-games.net";
}Else{
echo"Voici votre age : <BR> $age an et BON ANNIVERSAIRE !<BR>www.arena-games.net";
}
}Else{
echo"Voici votre age : <BR> $age an <BR>www.arena-games.net";
}
}Else{
if($mois_recent==$mois AND $jour_recent==$jour){
echo"Voici votre age : <BR> $age ans et BON ANNIVERSAIRE !<BR>www.arena-games.net";
}Else{
echo"Voici votre age : <BR> $age ans <BR>www.arena-games.net";
}
}

//Excusez moi pour la longueur du code ! J'aurais pu me servir de case plutot que de if mais bon... c la vie !
//Si vous trouvez des bugs signalez le moi
//Je vous laisse faire le formulaire qui permettra d'insérer la date de naissance
//++
//VirtuelKiller sur Code-sources, Neo dans la réalité
//www.arena-games.net
?>

 Conclusion

Si vous avez des questions, des remarques, etc... Les commentaires sont fait pour cela !
++
V.K. ou Neo
www.arena-games.net


 Sources du même auteur

VÉRIFIER SI L'ADRESSE E-MAIL EST CORRECT
MAIL EN PHP

 Sources de la même categorie

Source avec une capture AGENDA GRAPHIQUE SIMPLE (DÉBUTANT) À INTÉGRER par NicomakM
CALCUL DU NOMBRE DE JOURS CONTENUS DANS L'INTERSECTION DE DE... par curphey
CALENDRIER EN 70 LIGNES par tchconst
Source avec Zip CALENDRIER par gabay
CALENDRIER SIMPLE par manuche

Commentaires et avis

Commentaire de matrey le 01/07/2003 19:30:58

très très très très très très très très long
je passe sur mon 2e PC et je te donne ma version, bcp plus ourte

Commentaire de matrey le 01/07/2003 20:02:52

// Fonction qui renvoie l'age à partir de la date de naissance
// Par matrey &lt;matreypub@hotmail.com&gt;
function age($date){
$date_current=mktime(0,0,0,date("n"),date("d"),date("Y"));
if (!$date){
return 0;
}else{
ereg("^([0-9]{2,4})-([0-9]{1,2})-([0-9]{1,2})$",$date,$m_date);
if ($m_date[1] &lt; 1970) {
$plus = 1970 - $m_date[1];
$annee = 1970;
}else{
$plus = 0;
$annee = $m_date[1];
}
$date_born=mktime(0,0,0,$m_date[2],$m_date[3],$annee);
$diff = floor((($date_current - $date_born) / (3600 * 24))/365)+$plus;
if ($diff &lt; 0){
return 0;
}elseif ($diff == 0){
$diff = floor((($date_current - $date_born) / (3600 * 24))/30);
return $diff." mois";
}elseif ($diff == 1){
return $diff." an";
}else{
return $diff." ans";
}
}
}

Commentaire de matrey le 01/07/2003 20:04:30

désolé les tabulations passent pas, c'est juste moins lisible..

Commentaire de virtuelkiller le 02/07/2003 11:14:15

Hey ouai !
C'est pas mal aussi comme ça !
++
www.arena-games.net
V.K.

Commentaire de Kirua le 03/07/2003 23:47:08

c'est en fait simplement (désolé ;-)) un calcul de différence (entre deux date)

donc à mon, avis -&gt; time() - mktime(... les arguments pr la date de naissance ...)

ça donnera le time de différence

puis date("Y", $le_time_obtenu) - 1970; et ça devrait aller non ?

je fias u nteste et je reviens

Commentaire de Kirua le 03/07/2003 23:51:25

c'est ok ça marche. dans mon cas (17 / 02 / 1987) ça donne bien 16 ans. (en considérant que je suis né à 0h00)

&lt;?
$naissance = mktime(0, 0, 0, 2, 17, 1987);
$diff = time() - $naissance;
$age = date('Y', $diff) - 1970;
echo $age;
?&gt;


quelqu'un a plus court? :-)

pr info, faut retirer 1970 puisque ça donne en fait la date calculée à partir des secondes écoulées depuis le 1er janvier 1970.

Commentaire de matrey le 04/07/2003 10:24:32

donc il faut pas être trop vieux...
je maintiens mon code et d'ailleur celui de virtuelkiller aussi

Commentaire de Kirua le 04/07/2003 22:20:48

t'as raison c'est limité à 33 ans pour l'instant, mais dans 70 ans tu verras ça suffira ;-)

Commentaire de seyev le 03/03/2004 16:46:14

Le code que donne matrey ne fonctionne pas avec les 1er janviers au dessous de 1971.. Pour palier a ce problème, il faut modicier ceci:
if ($m_date[1] &lt; 1970) {
$plus = 1970 - $m_date[1];
$annee = 1970;
}else{
$plus = 0;
$annee = $m_date[1];
}

en ceci:
if ($m_date[1] &lt; 1971) {
$plus = 1971 - $m_date[1];
$annee = 1971;
}else{
$plus = 0;
$annee = $m_date[1];
}

Voila..

Commentaire de JielJacq le 17/05/2004 08:26:15

Bonjour,

J'ai vu votre script... il m'a intéressé... mais moi je n'y connais rien en php...
Voici ce que je voudrais faire :
Afficher sur une page du site de mon village, les anniversaires au départ d'une base access ou excell.
Il n'y a pas bcp de requête par jour, environ 15.

On pourrait donc voir sur le site :
Aujourd'hui, le 15/10/2004, c'est l'anniversaire de xavier machin, il a 32 ans
Cette semaine, c'est aussi l'anniversaire de Nathalie MAchin (23 ans le 17/10)
Vous avez peut être loupé l'anniversaire de Marc Truc, 13 ans le 10/10.

Commentaire de Kirua le 17/05/2004 16:55:01

Pr ça va falloir que tu trouves des tutos sur les bases access avec PHP, je connais pas ça :-/ bcp de gens utilisent MySQL qui est gratuit et bien représenté sur les forums. Essaye de ce côté là.

Commentaire de virtuelkiller le 17/05/2004 17:24:49

Je vous conseille de vous mettre au PHP avec l'excellent site www.az-php.com
Il vosu apprendra le nécessaire pour réaliser ce que vous cherchez à faire.

Commentaire de JielJacq le 17/05/2004 22:48:39

bon ben je vais m'y mettre au php et à .. MySQL.... si vous avez quelques bonnes adresses, je suis preneur... à un niveau débutant bien sûr !

Commentaire de jeromeke le 26/05/2004 06:51:05

Super ton code Kirua! Merci bcp!

Commentaire de Kirua le 26/05/2004 15:31:32

le problème jeromeke, c'est que, comme le faisaient remarquer les autres, ce code ne fonctionne que pour les dates postérieures au premier janvier 1970, c'est gênant vu la moyenne d'âge européenne ^^

Commentaire de alexledoberman le 04/05/2005 14:13:13

salut je voudrais savoir coment on fait suite a la source que tu donne.
Dit moi comment on fait
merci

Commentaire de fafa1510 le 08/11/2005 17:08:30

// on décortique la date d'aujourd'hui (jour,mois et année):
$an_now=date("Y");
$mois_now=date("m");
$jour_now=date("d");

$date_nais = "1985/10/15" //année,mois,jour

//on décortique la date de naissance (jour,mois et année):
$an=substr($date_nais,0,4);
$mois=substr($date_nais],5,2);
$jour=substr($date_nais,8,2);

//on soustrait l'année de naissance de l'année actuelle :
$age=$an_now-$an;

//si le jour de naissance n'est pas encore passé, on retire une année :
if (($mois>$mois_now) or (($mois==$mois_now) and ($jour>$jour_now))) { $age=$age-1; }

echo $age;

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,764 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales