Изменения
обновление
local p = {}
local p = {}
-- Необходимые модули
-- Необходимые модули и переменные
local getArgs = require('Module:Arguments').getArgs
local getArgs = require('Module:Arguments').getArgs
local yesno = require('Module:Yesno')
local yesno = require('Module:Yesno')
local bool_to_number={ [true]=1, [false]=0 }
local bool_to_number={ [true]=1, [false]=0 }
local monthlang = {"января","февраля","марта","апреля","мая","июня","июля","августа","сентября","октября","ноября","декабря"}
local monthlang = {"января","февраля","марта","апреля","мая","июня","июля","августа","сентября","октября","ноября","декабря"}
local monthd = {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}
local params = { {"г", "g"}, {"ю", "j"}, {"нэ", "НЭ", "ac", "AC"}, {"днэ", "ДНЭ", "bc", "BC"}}
local params = { {"г", "g"}, {"ю", "j"}, {"нэ", "НЭ", "ac", "AC"}, {"днэ", "ДНЭ", "bc", "BC"}}
local comment = { '<span style="border-bottom: 1px dotted; cursor: help" title="по юлианскому календарю">','</span>'}
local comment = { '<span style="border-bottom: 1px dotted; cursor: help" title="по юлианскому календарю">','</span>'}
-- 20) Блок общих проверочных функций, связанных с датами
-- 20) Блок общих проверочных функций, связанных с датами
local function isdate ( chain )
local function leap_year(y)
if (not y) or (type(y) ~= "number")
then return false
elseif (y % 4) ~= 0
then return false
elseif (y % 100 == 0 and y % 400 ~= 0)
then return false
else return true
end
end
function isdate ( chain ) -- можно использовать для проверки таблиц с полями day, month, year
if not chain then return false
if not chain then return false
elseif (not type(chain) == "table")
elseif (not type(chain) == "table")
or (not inbord(chain.month,1,12))
or (not inbord(chain.month,1,12))
or (not inbord(chain.day,1,31))
or (not inbord(chain.day,1,31))
or chain.day > monthd[chain.month]
-- or chain.year == 0
-- or chain.year == 0
then return false
then return false
elseif chain.month == 2 and chain.day == 29 and not leap_year(chain.year)
then return false
else return true end
else return true end
-- check for other calendars needed?
-- check for other calendars needed
end
end