La date en C
Fermé
Azem
-
8 avril 2017 à 14:43
[Dal] Messages postés 6194 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 11 octobre 2024 - 11 avril 2017 à 10:55
[Dal] Messages postés 6194 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 11 octobre 2024 - 11 avril 2017 à 10:55
1 réponse
YCN-
Messages postés
116
Date d'inscription
mercredi 24 juin 2015
Statut
Membre
Dernière intervention
13 juillet 2017
12
10 avril 2017 à 16:57
10 avril 2017 à 16:57
Bonjour,
à mon avis pour commencer tu dois réfléchir à la structure dont tu as besoin pour stocker ta date. Ensuite une foi cela fait tu dois penser à la façon dont on compare des dates.
Pour stocker les dates tu vas avoir plusieurs possibilités. Tu peux utiliser un tableau d'entier de 3, et les remplir selon le format jj mm aaaa. Ou tu peux utiliser une structure mais c'est un poil plus compliqué mais ce sera beaucoup plus propre.
Ensuite il ne te reste plus qu'à réfléchir au manière de comparer les dates. Et à entrer tes dates à la main ou dans le terminal comme l'exemple ci dessus.
Sinon pour la structure :
Tu pourras ensuite faire de même faire presque de même que précédemment :
Utilise plutôt la structure je pense que c'est plus compréhensible quand on débute. Mais c'est toi qui vois.
Pour les comparaison si c'est trop compliqué pour que tu comprenne directement prend un papier et un crayon et essaie de le faire à la main pour commencer.
à mon avis pour commencer tu dois réfléchir à la structure dont tu as besoin pour stocker ta date. Ensuite une foi cela fait tu dois penser à la façon dont on compare des dates.
Pour stocker les dates tu vas avoir plusieurs possibilités. Tu peux utiliser un tableau d'entier de 3, et les remplir selon le format jj mm aaaa. Ou tu peux utiliser une structure mais c'est un poil plus compliqué mais ce sera beaucoup plus propre.
int date [3];
printf("jour?\n")
scanf("%d",&date[0]);
printf("mois?\n")
scanf("%d",&date[1]);
printf("annee?\n")
scanf("%d",&date[2]);
Ensuite il ne te reste plus qu'à réfléchir au manière de comparer les dates. Et à entrer tes dates à la main ou dans le terminal comme l'exemple ci dessus.
Sinon pour la structure :
typedef struct Date Date;
struct Date{
int jour;
int mois;
int annee;
};
Tu pourras ensuite faire de même faire presque de même que précédemment :
Date ma_date ;
printf("jour?\n")
scanf("%d",&ma_date.jour);
printf("mois?\n")
scanf("%d",&ma_date.mois);
printf("annee?\n")
scanf("%d",&ma_date.annee);
Utilise plutôt la structure je pense que c'est plus compréhensible quand on débute. Mais c'est toi qui vois.
Pour les comparaison si c'est trop compliqué pour que tu comprenne directement prend un papier et un crayon et essaie de le faire à la main pour commencer.
Modifié le 11 avril 2017 à 11:06
Pour la comparaison, ta proposition en vaut bien une autre, et il suffira de faire une fonction ad hoc.
Une autre façon de faire est d'utiliser la bibliothèque standard avec difftime(), mktime(), et des dates dans struc tm
difftime() pourra aider non seulement dans la comparaison, mais aussi dans le calcul de la différence en nombre de jours (en ramenant le résultat en secondes à des jours).
ces fonctions sont accessibles par time.h
http://www.cplusplus.com/reference/ctime/mktime/
http://www.cplusplus.com/reference/ctime/difftime/
http://www.cplusplus.com/reference/ctime/tm/
Ce qui est plus compliqué c'est d'ajouter un mois, car il faudra :
- prendre en compte le fait que les mois ont des nombres de jours différents
- prendre en compte le cas particulier des années bissextiles pour février
- se limiter à des dates du calendrier grégorien, sauf si on veut faire vraiment compliqué ;-)
Dal