以天数计算两个日期之间的差异?

Shi*_*M S 2 c time date

比较两天,我没有得到正确的日子.在这里,我得到699天而不是730天dd=14,mm=8,yy=2014

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);
Run Code Online (Sandbox Code Playgroud)

Yu *_*Hao 6

struct tm,

int tm_mday; // day of the month — [1, 31]
int tm_mon; // months since January — [0, 11]
Run Code Online (Sandbox Code Playgroud)

tm_mday从...开始1,但从... tm_mon开始0.因此my_target_date.tm_mon = 8;,实际上是9月,你离开了一个月.