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