changeset 1964:a3e84e78e785

comment Gauss' formula
author Igor Sysoev <igor@sysoev.ru>
date Thu, 10 Apr 2008 09:37:12 +0000
parents 957085b56da3
children 14463ae77723
files src/http/ngx_http_parse_time.c
diffstat 1 files changed, 14 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/src/http/ngx_http_parse_time.c
+++ b/src/http/ngx_http_parse_time.c
@@ -240,7 +240,7 @@ ngx_http_parse_time(u_char *value, size_
 
     /*
      * shift new year to March 1 and start months from 1 (not 0),
-     * it is needed for Gauss's formula
+     * it is needed for Gauss' formula
      */
 
     if (--month <= 0) {
@@ -248,11 +248,20 @@ ngx_http_parse_time(u_char *value, size_
         year -= 1;
     }
 
-    /* Gauss's formula for Grigorian days from March 1, 1 BC */
+    /* Gauss' formula for Grigorian days since March 1, 1 BC */
+
+    return (
+            /* days in years including leap years since March 1, 1 BC */
+
+            365 * year + year / 4 - year / 100 + year / 400
 
-    return (365 * year + year / 4 - year / 100 + year / 400
-            + 367 * month / 12 - 31
-            + day
+            /* days before the month */
+
+            + 367 * month / 12 - 30
+
+            /* days before the day */
+
+            + day - 1
 
             /*
              * 719527 days were between March 1, 1 BC and March 1, 1970,