Модуль:Dates: различия между версиями
Содержимое удалено Содержимое добавлено
Putnik (обсуждение | вклад) нормальная ошибка вместо ошибки Lua |
|||
Строка 110:
local function Yyyymmdd(r)--Переводит русскую дату в YYYY,MM,DD
local d, m, y, M = mw.ustring.match(r, "^%s*(%d%d?)%s+([а-яА-Я]+)%s+(%d+)")
if not m then return nil end
m = mw.ustring.lower(m)
--тупо перебор
if not M then return nil end▼
for i = 1, 12 do
return tonumber(y),M,tonumber(d)▼
if m == monthg[i] then
M = i
break
end
end
return nil
end
▲ return tonumber(y), M, tonumber(d)
end
Строка 127 ⟶ 137 :
end;
DecodeDate = DecodeDate;
Diffy = Diffy; Year0 = Year0; GetDate = GetDate; Cmp = Cmp; Yyyymmdd = Yyyymmdd;
diffy = function(f)-- принимает параметры #invoke в виде двух строк-дат
local d1,m1,y1=DecodeDate(f.args[1]);
local d0,m0,y0=DecodeDate(f.args[2])
Строка 232 ⟶ 246 :
yyyymmdd = function(f)
local date, hourmin = f.args[1]
if mw.ustring.match(date, "^%s*%d+\-%d+\-%d+") then
return date end hourmin = mw.ustring.match(date, "%s+%d+:%d+$")
local y, m, d = Yyyymmdd(date)
if not y then
return '<span class="error">Ошибка: некорректный формат даты.</span>'
end
return string.format('%4i-%02i-%02i', y, m, d) .. (hourmin or '')
end
|