Bonjour, j'ai un beug qui revient deux fois dans mon code, donc ca me débloquerais bien si qqun pouvait me dire ou est ce que je me suis planté.
Je vous donne en exmple qu'un seul de mes beug je me débrouillerais pour l'autre.
Donc en fait j'ain une fonction :
Code :
- int extractPeriode(char *periode,struct tm *dateDebut,struct tm *dateFin) {
- if ( strchr(periode,'-') != 0 ) {//si on veut travailler sur une priode
-
- time_t tDateDebut;
- time_t tDateFin;
- double diff;
- dateDebut->tm_mday = chartoint(periode[0])*10 + chartoint(periode[1]);
- dateDebut->tm_mon = chartoint(periode[3])*10 + chartoint(periode[4])-1;
- dateDebut->tm_year = ( ( chartoint(periode[6]) *1000 ) + (chartoint(periode[7])*100) + (chartoint(periode[8])*10) + chartoint(periode[9])) -1900;
-
- dateFin->tm_mday = chartoint(periode[11])*10 + chartoint(periode[12]);
- dateFin->tm_mon = chartoint(periode[14])*10 + chartoint(periode[15])-1;
- dateFin->tm_year = ( ( chartoint(periode[17]) *1000 ) + (chartoint(periode[18])*100) + (chartoint(periode[19])*10) + chartoint(periode[20])) -1900;
-
- mktime(dateDebut);
-
- mktime(dateFin);
-
-
-
-
- } else {//si on veut travailler sur une semaine.
-
- time_t tDate;
- strptime2(periode,dateDebut);
-
- tDate = mktime(dateDebut);
- tDate = tDate + 60*60*24*6;
-
- dateFin = localtime(&tDate);
-
- tDate = mktime(dateFin);
-
- printf("date fin (dans extract.) : %s",ctime(&tDate));
-
- }
-
- return 0;
-
- }
|
Qui me calcule la date debut et date fin d'une période (chaine de caractère de type : "12/2004" ou "12/03/2004-25/11/2004".
En fait à l'intérieur meme de ma fonction tout semble bien se passé ( avec plusieurs prtinf j'arrive a avoir les dates. )
Et le pb c que dans mon main, qd j'appelle cette fonction de cette manière :
Code :
- struct tm *dateDebut;
- struct tm *dateFin;
- time_t tDateDebut;//a supprimer apres debeugage.
- time_t tDateFin;//a supprimer apres debeugage.
- dateDebut = malloc(sizeof(struct tm));
- dateFin = malloc(sizeof(struct tm));
- extractPeriode(argv[3],dateDebut,dateFin);
- tDateDebut = mktime(dateDebut);
- tDateFin = mktime(dateFin);
-
- printf("date debut : %s",ctime(&tDateDebut));
- printf("date fin : %s",ctime(&tDateFin));
|
et benh, seul la dateDebut est bien enregistrer, la date fin me donne un date invalide ( donc 1970).
Voici la sorti que ca me preoduit :
Citation :
date fin (dans extract.) : Sun Jun 16 01:00:00 2002
date debut : Mon Jun 10 01:00:00 2002
date fin : Thu Jan 1 00:59:59 1970
|
Je vous remercie de me donner une piste car la je vois vraiment pas !!!