s/qmail 4.2.29a
Next generation secure email transport
Loading...
Searching...
No Matches
datetime_un.c
Go to the documentation of this file.
1#include "datetime.h"
2
3/* roughly 100x faster than mktime() */
4
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}
long datetime_sec
Definition: datetime.h:15
datetime_sec datetime_untai()
struct datetime dt
Definition: qmail-queue.c:33
int hour
Definition: datetime.h:5
int mon
Definition: datetime.h:11
int min
Definition: datetime.h:6
int mday
Definition: datetime.h:9
int sec
Definition: datetime.h:7
int year
Definition: datetime.h:12