Mercurial > hg > nginx
comparison src/core/ngx_times.c @ 1874:085e536d856d
treat time_t as unsigned time
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Thu, 31 Jan 2008 15:14:31 +0000 |
parents | 02a22cd5282a |
children | 5bb2c374cab2 |
comparison
equal
deleted
inserted
replaced
1873:5d076348c121 | 1874:085e536d856d |
---|---|
201 | 201 |
202 | 202 |
203 void | 203 void |
204 ngx_gmtime(time_t t, ngx_tm_t *tp) | 204 ngx_gmtime(time_t t, ngx_tm_t *tp) |
205 { | 205 { |
206 ngx_int_t sec, min, hour, mday, mon, year, wday, yday, days; | 206 ngx_uint_t n, sec, min, hour, mday, mon, year, wday, yday, days; |
207 | 207 |
208 days = (ngx_int_t) (t / 86400); | 208 /* the calculation is valid for positive time_t only */ |
209 n = (ngx_uint_t) t; | |
210 | |
211 days = n / 86400; | |
209 | 212 |
210 /* Jaunary 1, 1970 was Thursday */ | 213 /* Jaunary 1, 1970 was Thursday */ |
211 wday = (4 + days) % 7; | 214 wday = (4 + days) % 7; |
212 | 215 |
213 t %= 86400; | 216 n %= 86400; |
214 hour = (ngx_int_t) (t / 3600); | 217 hour = n / 3600; |
215 t %= 3600; | 218 n %= 3600; |
216 min = (ngx_int_t) (t / 60); | 219 min = n / 60; |
217 sec = (ngx_int_t) (t % 60); | 220 sec = n % 60; |
218 | 221 |
219 /* the algorithm based on Gauss's formula */ | 222 /* the algorithm based on Gauss's formula */ |
220 | 223 |
221 days = days - (31 + 28) + 719527; | 224 days = days - (31 + 28) + 719527; |
222 | 225 |