请教关于difftime(time_t,time_t);的问题
大家好!
我想取得当前时间和编译时间的时间差,使用的代码如下:
time_t initial,now;
struct tm timeptr1;
BOOL T_flag = 0;
struct tm timeptr1;
timeptr1.tm_mday=1; //1-31
timeptr1.tm_mon=1; //0-11
timeptr1.tm_year=2015-1900; //since 1900
timeptr1.tm_sec=timeptr1.tm_min=timeptr1.tm_hour=timeptr1.tm_wday=timeptr1.tm_yday=timeptr1.tm_isdst=0;
initial=mktime(&timeptr1);
time(&now);
double duration =difftime(now,initial); //ms
if(duration < 0)
{
T_flag = 1;
}
else
{
T_flag = 0;
}
这段代码在XP 32位的时候能运行正常。但是换到win8 64位的机子上,我将系统时间改到编译时间之前,T_flag的标志位都不会被置1.
请教各位高手是哪里引起的问题?谢谢!