Изменения

Строка 62: Строка 62:  
{"(%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
Строка 178: Строка 178:     
-- 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)
Строка 668: Строка 676:  
     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}
Анонимный участник