Modul:Vorlage:ISO-Datum
aus Wikipedia, der freien Enzyklopädie
Vorlagenprogrammierung | Diskussionen | Lua | Unterseiten | |||
Modul | Deutsch | English
|
Modul: | Dokumentation |
Diese Seite enthält Code in der Programmiersprache Lua. Einbindungszahl Cirrus
Diese Vorlage dient der Konvertierung eines ausgeschriebenen Datums wie "13. Mai 2013" in das ISO-Format
Kopiervorlage
{{ISO-Datum|Datum=}}
Parameter
- Datum: Die Zeichenkette, welche das Datum darstellt.
Die Vorlage funktioniert mit jeder Zeichenkette, welche mit "1." bis "31." anfängt, mit " 100" bis "9999" endet und irgendwo dazwischen einen ausgeschriebenen Monatsnamen enthält. Ein Test auf "31. Februar" o.ä. erfolgt nicht.
Beispiele
{{ISO-Datum|Datum=3. Oktober 1990}}
ergibt:
- 1990-10-03
Lua
Verwendetes Modul: Vorlage:ISO-Datum
local ISO = {}
function exec(data)
local isOk = false;
local a = 0;
local b = 0;
local text = tostring(data);
local day = "";
local month = "";
local year ="";
local s = ""
local txty = "";
local txtd = "";
txty = string.sub(text,-4);
a = tonumber(txty) or 0;
year=string.format("%4.4d",a);
if string.find(text,"Januar") then month="-01";
elseif string.find(text,"Jänner") then month="-01";
elseif string.find(text,"Februar") then month="-02";
elseif string.find(text,"März") then month="-03";
elseif string.find(text,"April") then month="-04";
elseif string.find(text,"Mai") then month="-05";
elseif string.find(text,"Juni") then month="-06";
elseif string.find(text,"Juli") then month="-07";
elseif string.find(text,"August") then month="-08";
elseif string.find(text,"September") then month="-09";
elseif string.find(text,"Oktober") then month="-10";
elseif string.find(text,"November") then month="-11";
elseif string.find(text,"Dezember") then month="-12";
else month="-00";
end
txtd = string.sub(text,1,2);
for idx = 1,9 do
s = string.format("%s.",idx)
if s == txtd then
day = string.format("-%2.2d",idx);
break;
end
end
if day =="" then
txtd = string.sub(text,1,3);
for idx = 10,31 do
s = string.format("%s.",idx)
if s == txtd then
day = string.format("-%2.2d",idx);
break;
end
end
end
if day =="" then day = "-00"; end;
s = year .. month .. day;
return s;
end
function ISO.Run(frame)
return exec(frame.args[1])
end
return ISO