diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/core/ngx_times.c | 18 | ||||
-rw-r--r-- | src/http/ngx_http_parse_time.c | 13 | ||||
-rw-r--r-- | src/os/win32/ngx_time.c | 2 |
3 files changed, 28 insertions, 5 deletions
diff --git a/src/core/ngx_times.c b/src/core/ngx_times.c index af801d746..fcc7152ab 100644 --- a/src/core/ngx_times.c +++ b/src/core/ngx_times.c @@ -35,6 +35,24 @@ void ngx_time_update() ngx_cached_http_time.data = cached_http_time; ngx_cached_http_log_time.data = cached_http_log_time; +#if 0 + + days = sec / 86400; + days = days - 31 - 28 + 719527; + + year = days * 400 / (365 * 400 + 100 - 4 + 1); + yday = days - (365 * year + year / 4 - year / 100 + year / 400); + + month = (yday + 30) * 12 / 367; + mday = yday - (month * 367 / 12 - 31); + + if (++month > 11) { + month -= 12; + year++; + } + +#endif + tp = gmtime(&ngx_cached_time); ngx_cached_http_time.len = strftime(ngx_cached_http_time.data, diff --git a/src/http/ngx_http_parse_time.c b/src/http/ngx_http_parse_time.c index 26deb2841..6b98bad43 100644 --- a/src/http/ngx_http_parse_time.c +++ b/src/http/ngx_http_parse_time.c @@ -232,19 +232,24 @@ time_t ngx_http_parse_time(char *value, size_t len) return NGX_ERROR; } - /* shift new year to March 1, needed for Gauss's formula */ + /* + * shift new year to March 1 and start months from 1 (not 0), + * it's needed for Gauss's formula + */ if (--month <= 0) { month += 12; year -= 1; } - /* Gauss's formula for Grigorian days from 1 March 1 BC */ + /* Gauss's formula for Grigorian days from 1 March 1 BC */ return (365 * year + year / 4 - year / 100 + year / 400 - + 367 * month / 12 + day - 31 + + 367 * month / 12 - 31 + + day + /* - * 719527 days are between March 1, 1 BC and March 1, 1970, + * 719527 days were between March 1, 1 BC and March 1, 1970, * 31 and 28 days in January and February 1970 */ diff --git a/src/os/win32/ngx_time.c b/src/os/win32/ngx_time.c index 0aa2c5e74..435f43015 100644 --- a/src/os/win32/ngx_time.c +++ b/src/os/win32/ngx_time.c @@ -15,7 +15,7 @@ void ngx_gettimeofday(struct timeval *tp) * of 100-nanosecond intervals that have elapsed since * 12:00 A.M. January 1, 1601 (UTC). * - * Between January 1, 1970 (Epoch) and January 1, 1601 there are + * Between January 1, 1970 (Epoch) and January 1, 1601 there were * 134744 days, * 11644473600 seconds or * 11644473600,000,000,0 100-nanosecond intervals. |