diff options
Diffstat (limited to 'src/datetime_un.c')
-rw-r--r-- | src/datetime_un.c | 40 |
1 files changed, 26 insertions, 14 deletions
diff --git a/src/datetime_un.c b/src/datetime_un.c index e84806d..f8d24f2 100644 --- a/src/datetime_un.c +++ b/src/datetime_un.c @@ -7,29 +7,41 @@ datetime_sec datetime_untai(struct datetime *dt) int year; int day; int mon; - + year = dt->year + 1900; - + mon = dt->mon; - if (mon >= 2) { mon -= 2; } - else { mon += 10; --year; } - + if (mon >= 2) { + mon -= 2; + } else { + mon += 10; + --year; + } + day = (dt->mday - 1) * 10 + 5 + 306 * mon; day /= 10; - - if (day == 365) { year -= 3; day = 1460; } - else { day += 365 * (year % 4); } + + if (day == 365) { + year -= 3; + day = 1460; + } else { + day += 365 * (year % 4); + } year /= 4; - + day += 1461 * (year % 25); year /= 25; - - if (day == 36524) { year -= 3; day = 146096; } - else { day += 36524 * (year % 4); } + + if (day == 36524) { + year -= 3; + day = 146096; + } else { + day += 36524 * (year % 4); + } year /= 4; - + day += 146097 * (year - 5); day += 11017; - + return ((day * 24 + dt->hour) * 60 + dt->min) * 60 + dt->sec; } |