谁告诉我这时间是啥问题?
问题:如下代码:两个时间结构中,一个是9月,另一个是10月,其他一模一样。
理论上val2-val1应该=30天x24x3600=2592000秒,可结果不是这样.......确少了一个小时(3600秒)。
这是为什么??
如果将两结构中的月份改成10月和11月,其结果就是正确的。???
#include <stdio.h>
#include <dos.h>
#include "time.h"
struct date dt,dtt;
struct time tm,tmm;
int main(void)
{
unsigned long val1,val2,val;
dt.da_year=2009;
dt.da_mon=9;
dt.da_day=25;
tm.ti_hour=12;
tm.ti_min=30;
tm.ti_sec=30;
printf("today is %d- %d- %d %d: %d: %d\n", dt.da_day, dt.da_mon, dt.da_year, tm.ti_hour,tm.ti_min, tm.ti_sec);
/* convert date and time to unix format (number of seconds since Jan 1, 1970 */
val1=dostounix(&dt,&tm);
printf ("val1=%ld\n",val1);
getch();
dtt.da_year=2009;
dtt.da_mon=10;
dtt.da_day=25;
tmm.ti_hour=12;
tmm.ti_min=30;
tmm.ti_sec=30;
printf("today is %d- %d- %d %d: %d: %d\n", dtt.da_day, dtt.da_mon, dtt.da_year, tmm.ti_hour,tmm.ti_min, tmm.ti_sec);
/* convert date and time to unix format (number of seconds since Jan 1, 1970 */
val2=dostounix(&dtt,&tmm);
printf ("val2=%ld\n",val2);
getch();
val=val2-val1;
printf ("val=%ld\n",val);
getch();
return;
}