【发布时间】:2014-10-07 22:10:16
【问题描述】:
比较两天时,我没有得到正确的日期。在这里,dd=14,mm=8,yy=2014 得到 699 天而不是 730 天
time_t t1, t2;
struct tm my_target_date;
my_target_date.tm_sec = 0;
my_target_date.tm_min = 0;
my_target_date.tm_hour = 0;
my_target_date.tm_mday = 14;
my_target_date.tm_mon = 8;
my_target_date.tm_year = 112; /* Date today */
t1 = mktime (&my_target_date);
t2 = time (NULL);
sprintf (sbuff2,"Number of days since target date : %ld\n", (t2 - t1) / 86400);
【问题讨论】:
-
除了休息一个月,打电话
mktime(&my_target_date);之前,设置my_target_date.tm_isdst。如果不确定夏令时设置,请使用my_target_date.tm_isdst = -1;。其他2个字段tm_wday和tm_yday不需要设置。