Calcul d'age

Soyez le premier à donner votre avis sur cette source.

Snippet vu 21 015 fois - Téléchargée 28 fois

Contenu du snippet

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

Source / Exemple :


#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;
}

A voir également

Ajouter un commentaire

Commentaire

Mal_au_DOS
Messages postés
39
Date d'inscription
samedi 3 juin 2006
Statut
Membre
Dernière intervention
28 octobre 2008

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 @++

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.