Bonjour à tous,
Je cherche à exprimer une date au format dd/mm/yyyy à partir de son numéro du jour dans l'année en langage C.
J'ai pensé à récupérer la date d'aujourd'hui, ainsi j'ai son numéro du jour dans l'année grâce à la structure tm remplie par la fonction gmtime.
Puis faire la différence entre le numéro du jour dans l'année ainsi obtenu et le numéro du jour dans l'année dont je cherche la date au format dd/mm/yyyy correspondante.
Enfin, retirer cette différence à la date d'aujourd'hui pour obtenir la date recherchée. Néanmoins cette dernière étape me pose problème car je sais pas comment retirer x jours à une date pour obtenir une date et si c'est facile en C.
Si quelqu'un a une solution plus simple à proposer ou peut me débloquer sur ce dernier point dans la solution que j'ai commencé à entreprendre, je lui en serai extrêmement reconnaissant car ça fait un bout de temps que je me torture l'esprit sans aboutir à la résolution du problème!
Voici mon bout de code:
Merci d'avance!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 #include <stdio.h> #include <time.h> int main(void) { char *date_jour; struct tm *ptm; time_t sysdat; int no_jour = 125; int diff_nb_jour; /* date du jour au format date universel */ sysdat = time(NULL); ptm = gmtime(&sysdat); /* affichage date du jour au format mm/dd/yy */ strftime(date_jour,9,"%D",ptm); printf("date_jour=%s\n",date_jour); /* difference entre numero date du jour dans l'annee et numero date dans l'annee dont on recherche sa correspondance au format mm/dd/yy */ if(no_jour < ptm->tm_yday) diff_nb_jour = ptm->tm_yday - no_jour; else if(no_jour > ptm->tm_yday) printf("ca ne devrait pas arriver\n"); /* Affichage date recherchee au format "mm/dd/yy" */ /******et là je sais pas comment faire************/ ptm = gmtime(&sysdat); strftime(date_result,9,"%D",ptm); printf("date_result=%s\n",date_jour); /****************************************/ return 0; }
Partager