Hello,
I would like to calculate the time difference from a string. How can I best solve this?
Is not working, why?
return value in seconds or ms.
time_t timer;
struct tm y2k; // = { 0,0,0,0,0,0,0,0,0 };
double seconds;
string strHour = "19";
string strMinute = "05";
string strSecond = "44";
string strYear = "2024";
string strMonth = "01";
string strDay = "8";
y2k.tm_hour = atoi(strHour.c_str());
y2k.tm_min = atoi(strMinute.c_str());
y2k.tm_sec = atoi(strSecond.c_str());
y2k.tm_year = atoi(strYear.c_str());
y2k.tm_mon = atoi(strMonth.c_str());
y2k.tm_mday = atoi(strDay.c_str());
time(&timer); /* get current time; same as: timer = time(NULL) */
seconds = difftime(timer, mktime(&y2k));
struct tm y1k; // = { 0,0,0,0,0,0,0,0,0 };
y1k.tm_hour = atoi(strHour.c_str());
y1k.tm_min = atoi(strMinute.c_str());
y1k.tm_sec = atoi(strSecond.c_str()) - 2;
y1k.tm_year = atoi(strYear.c_str());
y1k.tm_mon = atoi(strMonth.c_str());
y1k.tm_mday = atoi(strDay.c_str());
time_t tt1, tt2;
tt1 = mktime(&y1k);
tt2 = mktime(&y2k);
CTime time1(tt1), time2(tt2);
CTimeSpan ts = time2 - time1;
//int se = tt2 - tt1;
//double seconds5 = difftime(tt2, tt1);
seconds = difftime(tt2, tt1);
//printf("%.f seconds since January 1, 2000 in the current timezone", seconds);