debian/rules: Use `git' potty wrapper.
[qmail] / datetime_un.c
CommitLineData
2117e02e
MW
1#include "datetime.h"
2
3/* roughly 100x faster than mktime() */
4datetime_sec datetime_untai(dt)
5struct datetime *dt;
6{
7 int year;
8 int day;
9 int mon;
10
11 year = dt->year + 1900;
12
13 mon = dt->mon;
14 if (mon >= 2) { mon -= 2; }
15 else { mon += 10; --year; }
16
17 day = (dt->mday - 1) * 10 + 5 + 306 * mon;
18 day /= 10;
19
20 if (day == 365) { year -= 3; day = 1460; }
21 else { day += 365 * (year % 4); }
22 year /= 4;
23
24 day += 1461 * (year % 25);
25 year /= 25;
26
27 if (day == 36524) { year -= 3; day = 146096; }
28 else { day += 36524 * (year % 4); }
29 year /= 4;
30
31 day += 146097 * (year - 5);
32 day += 11017;
33
34 return ((day * 24 + dt->hour) * 60 + dt->min) * 60 + dt->sec;
35}