[Résolu] mktime modifie son paramètre ?
Bonjour à tous,
Dans ce sujet je fais suite à celui-ci :
http://www.developpez.net/forums/d35...mktime-gmtime/
Le créateur de ce dernier a contourné son problème de gmtime, mais ne dit rien à propos de mktime. Or c'est précisément mktime qui me pose problème.
Voilà le souci :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
tm tmvarDateHourFileEnd = {0};
tm* tmDateHourFileEnd = &tmvarDateHourFileEnd;
...
do{
getline(flux,ligne);
getDateFromString(ligne,tmDateHourFileEnd);
}while(tmDateHourFileBegin->tm_year == tmvarDateHourNull.tm_year);
//tmDateHourFileEnd->tm_hour == N (correct)
margeEnd = difftime((unTimestamp),mktime(tmDateHourFileEnd));
//tmDateHourFileEnd->tm_hour == N+1
//??! |
Ma fonction getDateFromString :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
//extrait la date (tm*) d'une 'ligne' d'un fichier de log
//si date non trouvée, tm->tm_year = 0
void getDateFromString(string ligne, tm * tmDateHourFile)
{
if(ligne.find_first_of('/') != string.npos){ //CONDITION POURRIE
string date = ligne.substr(ligne.find_first_of('/')-2,17);
sscanf(date.c_str(),"%2d/%2d/%2d %2d:%2d:%2d",&tmDateHourFile->tm_mday,&tmDateHourFile->tm_mon,&tmDateHourFile->tm_year,&tmDateHourFile->tm_hour,&tmDateHourFile->tm_min,&tmDateHourFile->tm_sec);
tmDateHourFile->tm_mon -= 1;
tmDateHourFile->tm_year += 100;
}
else{
tmDateHourFile->tm_year = 0; //indicateur de non identification de date
}
} |
Le fichier "flux" contient des dates de la forme jj/mm/yy hh:mm:ss bien sûr.
Besoin d'aide, d'avance merci, c'est plutôt urgent.