Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

CALCUL D'AGE


Information sur la source

Description

Petit programme qui calcul votre age en entrant votre date de naissance
 

Source

  • #include<stdio.h>
  • #include<math.h>
  • #include <time.h>
  • typedef struct date
  • {
  • int jour;
  • int mois;
  • int annee;
  • }date;
  • int anniversaire(date aujourdhui ,date naissance);
  • date difference(date a,date n);
  • main()
  • {
  • struct tm *infos;
  • date aujourdhui,naissance,dif;
  • time_t temps_act;
  • time(&temps_act); // Déterminer le temps actuel en secondes
  • infos = localtime(&temps_act);
  • aujourdhui.jour=infos->tm_mday;
  • aujourdhui.mois=1+(infos->tm_mon);
  • aujourdhui.annee=1900+(infos->tm_year);
  • printf("Entrez votre date de naissance JJ MM AAAA \n");
  • scanf ("%d %d %d", &(naissance.jour), &(naissance.mois), &(naissance.annee));
  • printf("Vous avez %d ans \n",anniversaire(aujourdhui,naissance));
  • dif = difference(aujourdhui,naissance);
  • printf("La difference est de %d jours %d mois %d annees\n",dif.jour,dif.mois,anniversaire(aujourdhui,naissance));
  • getch();
  • }
  • int anniversaire(date a,date n)
  • {
  • int tmp;
  • tmp = (a.annee)-(n.annee);
  • if(((n.mois)*31 + (n.jour)) > ((a.mois)*31 + (a.jour)))
  • tmp=tmp-1;
  • return tmp;
  • }
  • date difference(date a,date n)
  • {
  • date diff;
  • diff.mois = fabs(a.mois - n.mois);
  • diff.jour = fabs(a.jour - n.jour);
  • return diff;
  • }
#include<stdio.h>
#include<math.h>
#include <time.h>

typedef struct date
    {
    int jour;
    int mois;
    int annee;
    }date;
    
int anniversaire(date aujourdhui ,date naissance);
date difference(date a,date n);
    
main()
{
struct tm *infos;
date aujourdhui,naissance,dif;
time_t temps_act;
time(&temps_act);   // Déterminer le temps actuel en secondes
infos = localtime(&temps_act);

aujourdhui.jour=infos->tm_mday;
aujourdhui.mois=1+(infos->tm_mon);
aujourdhui.annee=1900+(infos->tm_year);

printf("Entrez votre date de naissance JJ MM AAAA \n");
scanf ("%d %d %d", &(naissance.jour), &(naissance.mois), &(naissance.annee));
printf("Vous avez %d ans \n",anniversaire(aujourdhui,naissance));
dif = difference(aujourdhui,naissance);
printf("La difference est de %d jours %d mois %d annees\n",dif.jour,dif.mois,anniversaire(aujourdhui,naissance));

getch();
}

int anniversaire(date a,date n)
{
int tmp;
tmp = (a.annee)-(n.annee);
    if(((n.mois)*31 + (n.jour)) > ((a.mois)*31 + (a.jour)))
    tmp=tmp-1;
return tmp;      
}

date difference(date a,date n)
{
date diff;
diff.mois = fabs(a.mois - n.mois);
diff.jour = fabs(a.jour - n.jour);
return diff;
}

Commentaires et avis

signaler à un administrateur
Commentaire de Mal_au_DOS le 03/06/2006 22:49:39

Pas mal t'as réussi à t'en sortir en contournant les difficultés de la gestion du calendrier mais le problème c'est que tu peux calculer l'âge de quelqu'un mais tu ne pourras pas trop réutiliser ce genre de truc pour faire d'autres opérations plus comlexes avec les dates.
Petit problème:tu ne tient pas trop compte du nombre de jours des mois qui peuvent varier ainsi que des années bissextiles ca qui fait que ton programme donnera un faux age dans certains cas.
C'est aussi à cause de ce manque de précision que tu ne pourra pas faire grand chose d'autre avec ça.
Sinon c'est pas mal moi j'ai fait une classe date en C++ avec des champs mois jours et années comme dans ta structure et pour l'instant je peux calculer le jour de la semaine d'une date, je peux additonner des jours et obtenir la date correspondante et afficher cette date de façon littéral.
En revanhce je cherchais depuis longtemps comment on faisait pour avoir la date d'aujourd'hui et là quand je suis tombé sur ton prog qui utilise une struct tm j'étais très content alors merci bcps @++

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,359 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.