La date en C

Fermé
Azem - 8 avril 2017 à 14:43
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 - 11 avril 2017 à 10:55
Bonjour,
Je voudrais savoir comment incrementé une date avec un mois sachant que ma date est de de la forme (jj/mm/aaaa) et aussi commparer cette date avec une date donnee pour trouver si elles sont égaux et si la date donnee est supérieur on doit compter le nombre de jours
Merci beaucoup

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


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.
0
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
Modifié le 11 avril 2017 à 11:06
La comparaison n'est pas le plus compliqué, à mon sens.

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
0