34 static int month[12] = { 0,
38 DAY * (31 + 29 + 31 + 30),
39 DAY * (31 + 29 + 31 + 30 + 31),
40 DAY * (31 + 29 + 31 + 30 + 31 + 30),
41 DAY * (31 + 29 + 31 + 30 + 31 + 30 + 31),
42 DAY * (31 + 29 + 31 + 30 + 31 + 30 + 31 + 31),
43 DAY * (31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30),
44 DAY * (31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31),
45 DAY * (31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30) };
47 static int timeCmosRead(
int addr) {
56 for (i = 0; i < 1000000; i++) {
57 if (!(timeCmosRead(10) & 0x80)) {
63 time.
sec = timeCmosRead(0);
64 time.
min = timeCmosRead(2);
65 time.
hour = timeCmosRead(4);
66 time.
day = timeCmosRead(7);
67 time.
mon = timeCmosRead(8);
68 time.
year = timeCmosRead(9);
69 }
while (time.
sec != timeCmosRead(0));
96 res += month[time->
mon];
99 if (time->
mon > 1 && ((
year + 2) % 4))
102 res +=
DAY * (time->
day - 1);