Afficher l'âge selon les années bissextiles

Résolu
Clicky Messages postés 18 Date d'inscription   Statut Membre Dernière intervention   -  
Clicky Messages postés 18 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Bonjour,

J'ai créé un petit code pour afficher l'âge d'une personne avec sa date de naissance (même si elle est née avant 1970).
Il affiche aussi le changement d'âge le jour anniversaire.
Je lui ai mis un système pour ceux qui sont nés un 29 février (pour le problème de l'année bissextile ou non). Le code tel qu'il est, marchant pour les dates de naissance n'étant pas concernées par ce problème, j'aimerais savoir si les if des parties "année bissextile" vous paraissent plausibles, Je ne peux pas les tester puisque le dernier jour de février n'est pas encore passé et que l'année actuelle est bissextile.

Voici mon code :


<?php
/*En supposant qu'un formulaire ait été rempli auparavant pour récupérer la date de naissance d'une personne, par champs séparés : jour, mois et année de naissance.*/
 
if (isset($_POST['membre_jour_naiss']) && isset($_POST['membre_mois_naiss']) && isset($_POST['membre_annee_naiss']))
{
      //On définit le jour, mois et année actuels avec la fonction date() pour chacun d'eux.
      $jour = date('d');
      $mois = date('m');
      $annee = date('Y');
      $annee_bis = date('L');//Pour savoir si l'année actuelle est bissextile ou non. 1 si oui, 0 si non.
      $jour_bis = 29;
      $mois_bis = 02;
 
      //On définit le jour, mois et année de naissance de la personne, obtenus à l'aide du formulaire.
      $membre_jour_naiss = intval(htmlentities($_POST['membre_jour_naiss']));
      $membre_mois_naiss = intval(htmlentities($_POST['membre_mois_naiss']));
      $membre_annee_naiss = intval(htmlentities($_POST['membre_annee_naiss']));
 
      //On affiche un message d'infos non précisées si au moins un des champs ou tous sont vides.
      if (empty($_POST['membre_jour_naiss']) || empty($_POST['membre_mois_naiss']) || empty($_POST['membre_annee_naiss']))
      {
              echo 'Âge : Infos non précisées.';
      }
      //On affiche l'âge du membre à  l'aide de la condition if.
      elseif (($membre_annee_naiss < $annee) && ($jour >= $membre_jour_naiss) && ($mois >= $membre_mois_naiss))
      {
              //Si l'année est bissextile, pour ceux qui sont nés un 29 février.
              if (($annee_bis == 1) && ($jour_bis == $membre_jour_naiss) && ($mois_bis == $membre_mois_naiss))
              {
                      $age1 = $annee - $membre_annee_naiss;
                      echo 'Âge : '.$age1.' ans.';
              }
              //Si l'année n'est pas bissextile, pour ceux qui sont nés un 29 février.
              elseif (($annee_bis == 0) && ($jour_bis == $membre_jour_naiss) && ($jour == (--$jour)) && ($mois_bis == $membre_mois_naiss))
              {
                      $age1 = $annee - $membre_annee_naiss;
                      echo 'Âge : '.$age1.' ans.';
              }
              //On a le cas ici, où l'anniversaire est passé.
              $age1 = $annee - $membre_annee_naiss;
              echo 'Âge : '.$age1.' ans.';
      }
      else
      {
              //Si l'année est bissextile, pour ceux qui sont nés un 29 février.
              if (($annee_bis == 1) && ($jour_bis == $membre_jour_naiss) && ($mois_bis == $membre_mois_naiss))
              {
                      //Ici, l'anniversaire n'est pas encore passé, l'incrémentation avant la variable $membre_annee_naiss est nécessaire.
                      $age2 = $annee - (++$membre_annee_naiss);
                      echo 'Âge : '.$age2.' ans.';
              }
              //Si l'année n'est pas bissextile, pour ceux qui sont nés un 29 février.
              elseif (($annee_bis == 0) && ($jour_bis == $membre_jour_naiss) && ($jour == (--$jour)) && ($mois_bis == $membre_mois_naiss))
              {
                      $age2 = $annee - (++$membre_annee_naiss);
                      echo 'Âge : '.$age2.' ans.';
              }
              $age2 = $annee - (++$membre_annee_naiss);
              echo 'Âge : '.$age2.' ans.';
      }
}
?>



Merci d'avance ;)

2 réponses

Clicky Messages postés 18 Date d'inscription   Statut Membre Dernière intervention   2
 
Bonjour,

Bon en fait j'ai pu tester mon code et tel qu'il est au dessus, il ne marche pas mais je l'ai modifié et il marche.

Problème résolu.
0
Clicky Messages postés 18 Date d'inscription   Statut Membre Dernière intervention   2
 
Problème résolu
0