s/qmail 4.2.29a
Next generation secure email transport
Loading...
Searching...
No Matches
datetime.c
Go to the documentation of this file.
1/* 19950925 */
2#include "datetime.h"
3
5{
6 int day;
7 int tod;
8 int year;
9 int yday;
10 int wday;
11 int mon;
12
13 tod = t % 86400;
14 day = t / 86400;
15 if (tod < 0) { tod += 86400; --day; }
16
17 dt->hour = tod / 3600;
18 tod %= 3600;
19 dt->min = tod / 60;
20 dt->sec = tod % 60;
21
22 wday = (day + 4) % 7; if (wday < 0) wday += 7;
23 dt->wday = wday;
24
25 day -= 11017;
26 /* day 0 is march 1, 2000 */
27 year = 5 + day / 146097;
28 day = day % 146097; if (day < 0) { day += 146097; --year; }
29 /* from now on, day is nonnegative */
30 year *= 4;
31 if (day == 146096) { year += 3; day = 36524; }
32 else { year += day / 36524; day %= 36524; }
33 year *= 25;
34 year += day / 1461;
35 day %= 1461;
36 year *= 4;
37 yday = (day < 306);
38 if (day == 1460) { year += 3; day = 365; }
39 else { year += day / 365; day %= 365; }
40 yday += day;
41
42 day *= 10;
43 mon = (day + 5) / 306;
44 day = day + 5 - 306 * mon;
45 day /= 10;
46 if (mon >= 10) { yday -= 306; ++year; mon -= 10; }
47 else { yday += 59; mon += 2; }
48
49 dt->yday = yday;
50 dt->year = year - 1900;
51 dt->mon = mon;
52 dt->mday = day + 1;
53}
long datetime_sec
Definition: datetime.h:15
void datetime_tai()
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 wday
Definition: datetime.h:8
int yday
Definition: datetime.h:10
int sec
Definition: datetime.h:7
int year
Definition: datetime.h:12