Изменения
…
{"(%d+)[-%.%s/\\](%d+)[-%.%s/\\](%d%d%d%d)", ["order"] = {1,2,3} }, -- dd mm yyyy
{"(%d+)[-%.%s/\\](%d+)[-%.%s/\\](%d%d%d%d)", ["order"] = {1,2,3} }, -- dd mm yyyy
{"(%d%d)[-%.%s/\\](%d%d%d%d)", ["order"] = {2,3} }, -- mm yyyy
{"(%d%d)[-%.%s/\\](%d%d%d%d)", ["order"] = {2,3} }, -- mm yyyy
{"(%d%d%d%d)[-%.%s/\\](%d%d)", ["order"] = {2,3} }, -- yyyy mm
{"(%d%d%d%d)[-%.%s/\\](%d%d)", ["order"] = {3,2} }, -- yyyy mm
{"(%d+)%s(%l+)%s(%d%d%d%d)", ["order"] = {1,2,3} }, -- d mmm y
{"(%d+)%s(%l+)%s(%d%d%d%d)", ["order"] = {1,2,3} }, -- d mmm y
{"(%l+)%s(%d%d%d%d)", ["order"] = {1,2,3} }, -- mmm y
{"(%l+)%s(%d%d%d%d)", ["order"] = {1,2,3} }, -- mmm y
-- 20) Блок общих проверочных функций, связанных с датами
-- 20) Блок общих проверочных функций, связанных с датами
local function unwarp(tbl)
if not tbl then return ""
elseif type(tbl) ~= "table" then return tbl
elseif (tbl.day or tbl.month or tbl.year) then
return (tbl.year or "¤").."•"..(tbl.month or "¤").."•"..(tbl.day or "¤")
else return (tbl[3] or "¤").."-"..(tbl[2] or "¤").."-"..(tbl[1] or "¤")
end
end
local function leap_year(y,jul)
local function leap_year(y,jul)
local date = parse_date(datein)
local date = parse_date(datein)
if not (type(date.year) == 'number') then
if not (type(date.year) == 'number') then
return error("Wrong year")
return error("Wrong year: " .. unwarp(date))
end
end
if not (1 <= date.month and date.month <= 12) then
if not (1 <= date.month and date.month <= 12) then
return error("Wrong month")
return error("Wrong month: " .. unwarp(date))
end
end
if not (1 <= date.day and date.day <= month_end_day(date.month,date.year)) then
if not (1 <= date.day and date.day <= month_end_day(date.month,date.year)) then
return error("Wrong day")
return error("Wrong day: " .. unwarp(date))
end
end
local timedate = os.time{year=date.year, month=date.month, day=date.day}
local timedate = os.time{year=date.year, month=date.month, day=date.day}