Mercurial > prosody-modules
comparison mod_muc_log_http/muc_log_http/mod_muc_log_http.lua @ 119:e6592d8305cb
mod_muc_log_http: support next, previous day calculations from one month/year to the next or visa versa
author | Thilo Cestonaro <thilo@cestona.ro> |
---|---|
date | Fri, 15 Jan 2010 09:58:21 +0100 |
parents | 7eadcf0a0190 |
children | 7a2d33e8ad1f |
comparison
equal
deleted
inserted
replaced
118:7eadcf0a0190 | 119:e6592d8305cb |
---|---|
463 (month >= 8 and month%2 == 0 and day + 1 > 31) or | 463 (month >= 8 and month%2 == 0 and day + 1 > 31) or |
464 (month >= 8 and month%2 == 1 and day + 1 > 30) | 464 (month >= 8 and month%2 == 1 and day + 1 > 30) |
465 then | 465 then |
466 if month + 1 > 12 then | 466 if month + 1 > 12 then |
467 year = year + 1; | 467 year = year + 1; |
468 month = 1; | |
469 day = 1; | |
468 else | 470 else |
469 month = month + 1; | 471 month = month + 1; |
472 day = 1; | |
470 end | 473 end |
471 else | 474 else |
472 day = day + 1; | 475 day = day + 1; |
473 end | 476 end |
474 return strformat("%.02d%.02d%.02d", year, month, day); | 477 return strformat("%.02d%.02d%.02d", year, month, day); |
494 end | 497 end |
495 end | 498 end |
496 | 499 |
497 local function decrementDay(bare_day) | 500 local function decrementDay(bare_day) |
498 local year, month, day = bare_day:match("^(%d%d)(%d%d)(%d%d)"); | 501 local year, month, day = bare_day:match("^(%d%d)(%d%d)(%d%d)"); |
502 local leapyear = false; | |
499 module:log("debug", tostring(day).."/"..tostring(month).."/"..tostring(year)) | 503 module:log("debug", tostring(day).."/"..tostring(month).."/"..tostring(year)) |
504 | |
500 day = tonumber(day); | 505 day = tonumber(day); |
501 month = tonumber(month); | 506 month = tonumber(month); |
502 year = tonumber(year); | 507 year = tonumber(year); |
503 | 508 |
509 if year%4 == 0 and year%100 == 0 then | |
510 if year%400 == 0 then | |
511 leapyear = true; | |
512 else | |
513 leapyear = false; -- turn of the century but not a leapyear | |
514 end | |
515 elseif year%4 == 0 then | |
516 leapyear = true; | |
517 end | |
518 | |
504 if day - 1 == 0 then | 519 if day - 1 == 0 then |
505 if month - 1 == 0 then | 520 if month - 1 == 0 then |
506 year = year - 1; | 521 year = year - 1; |
522 month = 12; | |
523 day = 31; | |
507 else | 524 else |
508 month = month - 1; | 525 month = month - 1; |
526 if (month == 2 and leapyear) then day = 29 | |
527 elseif (month == 2 and not leapyear) then day = 28 | |
528 elseif (month < 8 and month%2 == 1) or (month >= 8 and month%2 == 0) then day = 31 | |
529 else day = 30 | |
530 end | |
509 end | 531 end |
510 else | 532 else |
511 day = day - 1; | 533 day = day - 1; |
512 end | 534 end |
513 return strformat("%.02d%.02d%.02d", year, month, day); | 535 return strformat("%.02d%.02d%.02d", year, month, day); |