kbd: use a better get_key method
[thunix.git] / kernel / mktime.c
blob36d5dee69d2383aead33d0052c636e2acdd07161
1 #include <time.h>
4 #define MINUTE 60
5 #define HOUR (60*MINUTE)
6 #define DAY (24*HOUR)
7 #define YEAR (365*DAY)
9 /* interestingly, we assume leap-years */
10 static int month[12] = {
12 DAY*(31),
13 DAY*(31+28),
14 DAY*(31+28+31),
15 DAY*(31+28+31+30),
16 DAY*(31+28+31+30+31),
17 DAY*(31+28+31+30+31+30),
18 DAY*(31+28+31+30+31+30+31),
19 DAY*(31+28+31+30+31+30+31+31),
20 DAY*(31+28+31+30+31+30+31+31+30),
21 DAY*(31+28+31+30+31+30+31+31+30+31),
22 DAY*(31+28+31+30+31+30+31+31+30+31+30)
25 long kernel_mktime(struct tm * tm)
27 long res;
28 int year;
29 int leap;
31 year = tm->tm_year - 1;
32 leap = ((tm->tm_year % 4)?0:((tm->tm_year % 100)?0:1));
34 res = YEAR*year + DAY*(year/4);
35 res += month[tm->tm_mon];
37 if (tm->tm_mon>1 && leap)
38 res += DAY;
39 res += DAY*(tm->tm_mday-1);
40 res += HOUR*tm->tm_hour;
41 res += MINUTE*tm->tm_min;
42 res += tm->tm_sec;
43 return res;