begin process at 2012 02 12 07:01:51
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Date / Heure

 > CALCUL D'AGE

CALCUL D'AGE


 Information sur la source

Note :
5 / 10 - par 1 personne
5,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Date / Heure Niveau :Débutant Date de création :03/11/2003 Vu :12 049

Auteur : gochardl

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

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



 Sources du même auteur

TRI D'UNE CHAINE DE CARACTERES
NOMBRE DE FIBONACCI
CALCUL DE NOMBRE PREMIER
EQUATION DU DEUXIEME DEGRE
LISTE CHAINEE DE NOMBRE TRIE

 Sources de la même categorie

DATETIMECONVERTER par guill76
Source avec Zip CLASSE DE DATE LOCALISÉE (20 LANGUES) par exar
Source avec Zip CLASSE MOMENT V2.0 par le_duche
CALCUL DATE DE PAQUES (DATE MOBILE) par steph12358
Source avec une capture VACCATION (AVEC FONCTION) CONSOLERIE, REMIX GCC par sebman

Commentaires et avis

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...

Comparez les prix

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,530 sec (4)

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