Bonjour tout le monde,
Bon, m'etant lance dans C++, j'ai actuellement encore du mal a gerer les histoire de pointeurs. Par exemple dans mon main j'ai :
Code :
- struct tm * tm_today_date1 = EXCEL_SERIAL_DATE_TO_DMY((int)today_date1);
- struct tm * tm_today_date2 = EXCEL_SERIAL_DATE_TO_DMY((int)today_date2);
|
Avec comme fonction que j'ai code :
Code :
- struct tm * EXCEL_SERIAL_DATE_TO_DMY(int nSerialDate)
- {
- /* Variables */
- int nDay, nMonth, nYear;
- struct tm * timeinfo;
- time_t datetime;
- /* Convert serial date to days/months/years */
- int l = nSerialDate + 68569 + 2415019;
- int n = int(( 4 * l ) / 146097);
- l = l - int(( 146097 * n + 3 ) / 4);
- int i = int(( 4000 * ( l + 1 ) ) / 1461001);
- l = l - int(( 1461 * i ) / 4) + 31;
- int j = int(( 80 * l ) / 2447);
- nDay = l - int(( 2447 * j ) / 80);
- l = int(j / 11);
- nMonth = j + 2 - ( 12 * l );
- nYear = 100 * ( n - 49 ) + i + l;
- /* Get current timeinfo and modify it according to the function's serial date */
- time ( &datetime );
- timeinfo = localtime ( &datetime );
- timeinfo->tm_year = nYear - 1900;
- timeinfo->tm_mon = nMonth - 1;
- timeinfo->tm_mday = nDay;
- /* Call mktime: tm_wday, tm_yday, ... will be set */
- mktime ( timeinfo );
- return timeinfo;
- }
|
Comme tu t'en doutes, tm_today_date1 est aussi modifie quand il passe au second calcul soit au final, date1 identique a date2. Qu'est ce que je dois faire pour changer ce fait ? Je sens qu'il y a peu a faire mais je bloque sur 'quoi'.
Merci d'avance.
Message édité par Profil supprimé le 25-03-2011 à 01:17:40