- 论坛徽章:
- 0
|
static void time_init(void)
{
struct tm time;
do {
time.tm_sec = CMOS_READ(0);
time.tm_min = CMOS_READ(2);
time.tm_hour = CMOS_READ(4);
time.tm_mday = CMOS_READ(7);
time.tm_mon = CMOS_READ(;
time.tm_year = CMOS_READ(9);
} while (time.tm_sec != CMOS_READ(0));
BCD_TO_BIN(time.tm_sec);
BCD_TO_BIN(time.tm_min);
BCD_TO_BIN(time.tm_hour);
BCD_TO_BIN(time.tm_mday);
BCD_TO_BIN(time.tm_mon);
BCD_TO_BIN(time.tm_year);
time.tm_mon--;//why????
startup_time = kernel_mktime(&time);//kernel/mktime.c
}
这里调用 kernel_mktime时为什么time.tm_mon要--了?
还有就是kernel_mktime()函数里面对待闰年的
res = YEAR*year + DAY*((year+1)/4);
res += month[tm->tm_mon];
if (tm->tm_mon>1 && ((year+2)%4))
res -= DAY;
这两个地方想不通,大家帮我解释下,谢谢拉 |
|