Изменения

дополнение для отладки
Строка 45: Строка 45:  
   Z='+00:00', A='-01:00', M='-12:00', N='+01:00', Y='+12:00',
 
   Z='+00:00', A='-01:00', M='-12:00', N='+01:00', Y='+12:00',
 
}
 
}
 +
 +
local category_msg = ""
 +
local category = {
 +
["incomplete_parameters"]=
 +
"<!--[[Категория:Модуль:Calendar:Страницы с неполными или некорректными параметрами]]-->",
 +
["without_verification"]=
 +
"<!--[[Категория:Модуль:Calendar:Страницы без проверки параметров]]-->",
 +
["erroneous_parameters"]=
 +
"<!--[[Категория:Модуль:Calendar:Страницы с ошибочными параметрами]]-->"
 +
}
 +
 +
-- несколько параметров передаются вместе с кодом ошибки в таблице, один может быть передан простым значением
 +
local errors = {
 +
["start"]="<span class=error>Ошибка: ",
 +
["ending"]=".</span>",
 +
["no_pattern_match"]="строка «%s» не совпадает с заданными паттернами",
 +
["no_valid_date"]="дата «%s·%s·%s» не является корректной",
 +
["wrong_jd"]="юлианская дата %s вне диапазона",
 +
["too_many_arguments"]="ожидается менее %i аргументов",
 +
["too_little_arguments"]="ожидается более %i аргументов",
 +
["wrong_calculation"]="даты %s и %s не прошли проверку, %s дней разница",
 +
["unknown_calendar"]="параметр календаря %s неизвестен",
 +
["unknown_error"]="неизвестная ошибка",
 +
["tech_error"]="ошибка в функции %s",
 +
-- [""]="",
 +
}
    
local tzs_names = {"ACDT","ACST","ACT","ADT","AEDT","AEST","AFT","AKDT","AKST",
 
local tzs_names = {"ACDT","ACST","ACT","ADT","AEDT","AEST","AFT","AKDT","AKST",
Строка 709: Строка 735:  
     end
 
     end
 
     return table.concat({date.day,month_lang.ru_G[date.month],date.year}," ")
 
     return table.concat({date.day,month_lang.ru_G[date.month],date.year}," ")
 +
end
 +
 +
function p.bxDateTemp( txtDateIn ) -- к отладке
 +
-- заполнение служебных таблиц
 +
filling_months(lang, month_lang)
 +
 +
local status, txtDateOut = {errorCat = "", errorText = ""}, ""
 +
    -- парсинг входящей даты по шаблону
 +
    local date = parse_date(txtDateIn)
 +
   
 +
    if not (type(date.year) == 'number') then status.errorText = table.concat{
 +
    "<span class=error>Не удалось распознать год. Данные: ", unwarp(date),
 +
    "; ", txtDateIn ,"</span>"} end
 +
    if not (1 <= date.month and date.month <= 12) then status.errorText = table.concat{
 +
    "<span class=error>Не удалось распознать месяц. Данные: ", unwarp(date),
 +
    "; ", txtDateIn, "</span>"} end
 +
    if not date.day then
 +
    txtDateOut = month_lang.ru_N[date.month] .. " " .. date.year
 +
    elseif not (1 <= date.day and date.day <= month_end_day(date.month,date.year)) then
 +
        status.errorText = table.concat{"<span class=error>Не удалось распознать день. Данные: ",
 +
        unwarp(date), "; ", txtDateIn, "</span>"} end
 +
-- тут нужна проверка, не было ли ошибок
 +
txtDateOut = table.concat({date.day,month_lang.ru_G[date.month],date.year}," ")
 +
    return txtDateOut, date, status
 
end
 
end
  
Анонимный участник