4 static int mdays
[13] = { 0,31,31+28,31+28+31,31+28+31+30,
5 31+28+31+30+31,31+28+31+30+31+30,31+28+31+30+31+30+31,
6 31+28+31+30+31+30+31+31,31+28+31+30+31+30+31+31+30,
7 31+28+31+30+31+30+31+31+30+31,31+28+31+30+31+30+31+31+30+31+30,
10 #define SECSPERHOUR (60*60)
11 #define SECSPERDAY (SECSPERHOUR*24L)
13 /****************************************
14 * Return the number of seconds that have elapsed since the start
17 * timer pointer to where to store result (or NULL)
19 * *timer = result (unless timer == NULL)
24 static long get_time(ah
)
27 #if !__FIRST_ARG_IN_AX__
41 unsigned day
,month
,year
;
46 rv
>>= 8; t
= (rv
& 0xFF);
47 rv
>>= 8; t
+= (rv
& 0xFF)*60;
48 rv
>>= 8; t
+= (rv
& 0xFF)*3600;
52 rv
>>= 8; month
= (rv
& 0xFF) -1;
53 rv
>>= 8; year
= (rv
& 0xFFFF) - 1970;
55 if (month
<= 1 || year
& 3) /* if before Feb or not a leap year */
56 day
--; /* don't add day for this leap year */
57 day
+= mdays
[month
]; /* day in year */
58 day
+= (year
+ 3) >> 2; /* add a day for each leap year, but */
59 /* don't worry about 2100 */
60 t
+= ((year
* 365L) + day
) * SECSPERDAY
;