Datum: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Alarya (Diskussion | Beiträge) Die Seite wurde neu angelegt: „local p = {} --p stands for package function p.LetzterEdit( frame ) tsatag = frame:getParent().args['Tsatag'] end function p.getParent(frame) frame = frame:getParent() return ';getParent\n:' .. frame:getTitle() .. '\n' end“ |
Alarya (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
| (35 dazwischenliegende Versionen derselben Benutzerin werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
local p = {} | local p = {} | ||
function | local fncMonatsnameAv = function (monatsnummer) | ||
le = {} | |||
le[1] = 'PRA' | |||
le[2] = 'RON' | |||
le[3] = 'EFF' | |||
le[4] = 'TRA' | |||
le[5] = 'BOR' | |||
le[6] = 'HES' | |||
le[7] = 'FIR' | |||
le[8] = 'TSA' | |||
le[9] = 'PHE' | |||
le[10] = 'PER' | |||
le[11] = 'ING' | |||
le[12] = 'RAH' | |||
le[13] = 'NL' | |||
return le[monatsnummer] | |||
end | end | ||
function | local fncMonatsnameAvLang = function (monatsnummer) | ||
le = {} | |||
le[1] = 'Praios' | |||
le[2] = 'Rondra' | |||
le[3] = 'Efferd' | |||
le[4] = 'Travia' | |||
le[5] = 'Boron' | |||
le[6] = 'Hesinde' | |||
le[7] = 'Firun' | |||
le[8] = 'Tsa' | |||
le[9] = 'Phex' | |||
le[10] = 'Peraine' | |||
le[11] = 'Ingerimm' | |||
le[12] = 'Rahja' | |||
le[13] = 'Namenloser' | |||
return le[monatsnummer] | |||
end | end | ||
local fncTageImMonatIrd = function (monatsnummer, schaltjahr) | |||
le = {} | |||
le[1] = 31 | |||
if schaltjahr then | |||
le[2] = 29 | |||
else | |||
le[2] = 28 | |||
end | |||
le[3] = 31 | |||
le[4] = 30 | |||
le[5] = 31 | |||
le[6] = 30 | |||
le[7] = 31 | |||
le[8] = 31 | |||
le[9] = 30 | |||
le[10] = 31 | |||
le[11] = 30 | |||
le[12] = 31 | |||
return tonumber(le[monatsnummer]) | |||
end | |||
function p.IrdischZuBF(frame) | |||
jahr = frame:getParent().args[1] | |||
monat = frame:getParent().args[2] | |||
tag = frame:getParent().args[3] | |||
if jahr == nil then | |||
jahr = frame.args[1] | |||
end | |||
if jahr == nil then | |||
return 'Parameter Jahr (1. unbenannter Parameter) fehlt im Aufruf der Vorlage DatumIrdischZuBF auf dieser Seite. Bitte nachtragen! [[Kategorie:Wartung Falscher Vorlagen-Aufruf]]' | |||
elseif string.len(jahr) == 0 then | |||
return 'Parameter Jahr (1. unbenannter Parameter) ohne Angabe einer irdischen Jahreszahl im Aufruf der Vorlage DatumIrdischZuBF auf dieser Seite. Bitte nachtragen! [[Kategorie:Wartung Falscher Vorlagen-Aufruf]]' | |||
end | |||
if monat == nil then | |||
monat = frame.args[2] | |||
end | |||
if monat == nil then | |||
return 'Parameter Monat (2. unbenannter Parameter) fehlt im Aufruf der Vorlage DatumIrdischZuBF auf dieser Seite. Bitte nachtragen! [[Kategorie:Wartung Falscher Vorlagen-Aufruf]]' | |||
elseif string.len(monat) == 0 then | |||
return 'Parameter Monat (2. unbenannter Parameter) ohne Angabe einer Monats-Zahl im Aufruf der Vorlage DatumIrdischZuBF auf dieser Seite. Bitte nachtragen! [[Kategorie:Wartung Falscher Vorlagen-Aufruf]]' | |||
end | |||
if tag == nil then | |||
tag = frame.args[3] | |||
end | |||
if tag == nil then | |||
return 'Parameter Tag (3. unbenannter Parameter) fehlt im Aufruf der Vorlage DatumIrdischZuBF auf dieser Seite. Bitte nachtragen! [[Kategorie:Wartung Falscher Vorlagen-Aufruf]]' | |||
elseif string.len(tag) == 0 then | |||
return 'Parameter Tag (3. unbenannter Parameter) ohne Angabe einer Tages-Zahl im Aufruf der Vorlage DatumIrdischZuBF auf dieser Seite. Bitte nachtragen! [[Kategorie:Wartung Falscher Vorlagen-Aufruf]]' | |||
end | |||
test_jahr = tonumber(jahr) | |||
if test_jahr ~= nil then | |||
jahr_av = test_jahr - 977 | |||
else | |||
return 'Parameter Jahr (1. unbenannter Parameter) muss eine gültige irdische Jahreszahl sein im Aufruf der Vorlage DatumIrdischZuBF auf dieser Seite. Bitte korrigieren! [[Kategorie:Wartung Falscher Vorlagen-Aufruf]]' | |||
end | |||
test_monat = tonumber(monat) | |||
if test_monat ~= nil then | |||
if test_monat < 1 then | |||
return 'Parameter Monat (2. unbenannter Parameter) muss eine gültige irdische Monatszahl sein im Aufruf der Vorlage DatumIrdischZuBF auf dieser Seite. Bitte korrigieren! [[Kategorie:Wartung Falscher Vorlagen-Aufruf]]' | |||
elseif test_monat > 12 then | |||
return 'Parameter Monat (2. unbenannter Parameter) muss eine gültige irdische Monatszahl sein im Aufruf der Vorlage DatumIrdischZuBF auf dieser Seite. Bitte korrigieren! [[Kategorie:Wartung Falscher Vorlagen-Aufruf]]' | |||
end | |||
end | |||
lang = mw.getContentLanguage() | |||
int_schaltjahr = tonumber(lang:formatDate('L', test_jahr .. '-01-01', true)) | |||
if int_schaltjahr == 1 then | |||
schaltjahr = true | |||
else | |||
schaltjahr = false | |||
end | |||
test_tag = tonumber(tag) | |||
if test_tag ~= nil then | |||
if test_tag < 1 then | |||
return 'Parameter Tag (3. unbenannter Parameter) muss eine gültige irdische Tageszahl sein im Aufruf der Vorlage DatumIrdischZuBF auf dieser Seite. Bitte korrigieren! [[Kategorie:Wartung Falscher Vorlagen-Aufruf]]' | |||
elseif test_tag > fncTageImMonatIrd(test_monat, schaltjahr) then | |||
return 'Parameter Tag (3. unbenannter Parameter) muss eine gültige irdische Tageszahl sein im Aufruf der Vorlage DatumIrdischZuBF auf dieser Seite. Bitte korrigieren! [[Kategorie:Wartung Falscher Vorlagen-Aufruf]]' | |||
end | |||
end | |||
datum_string_ird = jahr .. '-' .. monat .. '-' .. tag | |||
tag_im_jahr = tonumber(lang:formatDate('z', datum_string_ird, true)) + 1 -- +1 weil 1. Januar = 0 | |||
if schaltjahr then | |||
if tag_im_jahr >= 60 then | |||
tag_im_jahr = tag_im_jahr - 1 -- ignoriere den Schalttag | |||
end | |||
end | |||
monat_av = math.ceil(tag_im_jahr / 30) | |||
tag_av = tag_im_jahr - (math.floor(tag_im_jahr / 30) * 30) | |||
monatsname_av = fncMonatsnameAv(monat_av) | |||
if jahr_av > 0 then | |||
return tag_av .. '. ' .. monatsname_av .. ' ' .. jahr_av .. ' BF' | |||
else | |||
return tag_av .. '. ' .. monatsname_av .. ' ' .. jahr_av .. ' v. BF' | |||
end | |||
end | |||
function p.Datum(frame) | |||
jahr = frame:getParent().args[1] | |||
monat = frame:getParent().args[2] | |||
tag = frame:getParent().args[3] | |||
displayparameter = frame:getParent().args[4] | |||
if (jahr == nil or string.len(jahr) == 0) then | |||
return 'Jahreszahl muss angegeben werden, sonst kann keine Berechnung stattfinden![[Kategorie:Falscher Vorlagen-Aufruf]]' | |||
else | |||
test_jahr = tonumber(jahr) | |||
if test_jahr ~= nil then | |||
jahreszahl = 2000000000 + test_jahr | |||
else | |||
return 'Falsche Angabe: Bei der Jahreszahl-Angabe dürfen nur Ziffern angegeben werden![[Kategorie:Falscher Vorlagen-Aufruf]]' | |||
end | |||
end | |||
if (tag == nil or string.len(tag) == 0) then | |||
tageszahl = 0 | |||
taggenau = false | |||
else | |||
test_tag = tonumber(tag) | |||
if test_tag ~= nil then | |||
if (test_tag > 0 and test_tag <= 30) then | |||
tageszahl = test_tag | |||
taggenau = true | |||
else | |||
-- Fehlerbehandlung noch einbauen | |||
end | |||
else | |||
-- möglich: A, M, E | |||
end | |||
end | |||
if (monat == nil or string.len(monat) == 0) then | |||
monatszahl = 0 | |||
else | |||
test_monat = tonumber(monat) | |||
if test_monat ~= nil then | |||
if (test_monat > 0 and test_monat <= 13) then | |||
monatszahl = test_monat | |||
monat_kurz = fncMonatsnameAv(monatszahl) | |||
monat_lang = fncMonatsnameAvLang(monatszahl) | |||
else | |||
return 'Falsche Angabe: Beim Monat dürfen nur Zahlen zwischen 1 und 13 angegeben werden (oder erlaubte Buchstaben).[[Kategorie:Falscher Vorlagen-Aufruf]]' | |||
end | |||
else | |||
taggenau = false | |||
if monat == 'A' then | |||
monatszahl = 1 | |||
monat_lang = 'Anfang' | |||
monat_kurz = 'Anfang' | |||
elseif monat == 'M' then | |||
monatszahl = 7 | |||
monat_lang = 'Mitte' | |||
monat_kurz = 'Mitte' | |||
elseif monat == 'E' then | |||
monatszahl = 12 | |||
monat_lang = 'Ende' | |||
monat_kurz = 'Ende' | |||
elseif monat == 'S' then | |||
monatszahl = 1 | |||
monat_lang = 'Sommer' | |||
monat_kurz = 'Sommer' | |||
elseif monat == 'H' then | |||
monatszahl = 4 | |||
monat_lang = 'Herbst' | |||
monat_kurz = 'Herbst' | |||
elseif monat == 'W' then | |||
monatszahl = 7 | |||
monat_lang = 'Winter' | |||
monat_kurz = 'Winter' | |||
elseif monat == 'F' then | |||
monatszahl = 10 | |||
monat_lang = 'Frühling' | |||
monat_kurz = 'Frühling' | |||
else | |||
return 'Falsche Angabe: bei der Monatsangabe sind nur Zahlen von 1 bis 13 oder die Buchstaben A, M, E (für Anfang, Mitte, Ende) oder S, H, W, F für die Jahreszeiten erlaubt![[Kategorie:Falscher Vorlagen-Aufruf]]' | |||
end | |||
end | |||
end | |||
sortierzahl = jahreszahl .. string.format("%02d", monatszahl) .. string.format("%02d", tageszahl) | |||
return sortierzahl | |||
end | |||
function p.LetzteRev(frame) | |||
lang = mw.getContentLanguage() | |||
str_revts = tostring(lang:formatDate('U', frame:preprocess('{{REVISIONTIMESTAMP: '.. tostring(mw.title.getCurrentTitle()) ..'}}'), true)) | |||
str_ts = tostring(lang:formatDate('U', os.date(), true)) | |||
sek_seit_rev = tonumber(str_ts) - tonumber(str_revts) | |||
tage_seit_rev = sek_seit_rev / (60*60*24) | |||
monate_seit_rev = tage_seit_rev / 30 | |||
jahre_seit_rev = tage_seit_rev / 365 | |||
if (tage_seit_rev < 1) then | |||
return 'vor weniger als einem Tag' | |||
elseif (monate_seit_rev < 1) then | |||
tage = math.floor(tage_seit_rev) | |||
if tage == 1 then | |||
return 'vor einem Tag' | |||
else | |||
return 'vor ' .. tage .. ' Tagen' | |||
end | |||
elseif (jahre_seit_rev < 1) then | |||
monate = math.floor(monate_seit_rev) | |||
if monate == 1 then | |||
return 'vor einem Monat' | |||
else | |||
return 'vor ' .. monate .. ' Monaten' | |||
end | |||
else | |||
jahre = math.floor(jahre_seit_rev) | |||
if jahre == 1 then | |||
return 'vor einem Jahr' | |||
else | |||
return 'vor ' .. jahre .. ' Jahren' | |||
end | |||
end | |||
end | |||
return p | |||
Aktuelle Version vom 14. Mai 2025, 20:07 Uhr
Die Dokumentation für dieses Modul kann unter Modul:Datum/Doku erstellt werden
local p = {}
local fncMonatsnameAv = function (monatsnummer)
le = {}
le[1] = 'PRA'
le[2] = 'RON'
le[3] = 'EFF'
le[4] = 'TRA'
le[5] = 'BOR'
le[6] = 'HES'
le[7] = 'FIR'
le[8] = 'TSA'
le[9] = 'PHE'
le[10] = 'PER'
le[11] = 'ING'
le[12] = 'RAH'
le[13] = 'NL'
return le[monatsnummer]
end
local fncMonatsnameAvLang = function (monatsnummer)
le = {}
le[1] = 'Praios'
le[2] = 'Rondra'
le[3] = 'Efferd'
le[4] = 'Travia'
le[5] = 'Boron'
le[6] = 'Hesinde'
le[7] = 'Firun'
le[8] = 'Tsa'
le[9] = 'Phex'
le[10] = 'Peraine'
le[11] = 'Ingerimm'
le[12] = 'Rahja'
le[13] = 'Namenloser'
return le[monatsnummer]
end
local fncTageImMonatIrd = function (monatsnummer, schaltjahr)
le = {}
le[1] = 31
if schaltjahr then
le[2] = 29
else
le[2] = 28
end
le[3] = 31
le[4] = 30
le[5] = 31
le[6] = 30
le[7] = 31
le[8] = 31
le[9] = 30
le[10] = 31
le[11] = 30
le[12] = 31
return tonumber(le[monatsnummer])
end
function p.IrdischZuBF(frame)
jahr = frame:getParent().args[1]
monat = frame:getParent().args[2]
tag = frame:getParent().args[3]
if jahr == nil then
jahr = frame.args[1]
end
if jahr == nil then
return 'Parameter Jahr (1. unbenannter Parameter) fehlt im Aufruf der Vorlage DatumIrdischZuBF auf dieser Seite. Bitte nachtragen! [[Kategorie:Wartung Falscher Vorlagen-Aufruf]]'
elseif string.len(jahr) == 0 then
return 'Parameter Jahr (1. unbenannter Parameter) ohne Angabe einer irdischen Jahreszahl im Aufruf der Vorlage DatumIrdischZuBF auf dieser Seite. Bitte nachtragen! [[Kategorie:Wartung Falscher Vorlagen-Aufruf]]'
end
if monat == nil then
monat = frame.args[2]
end
if monat == nil then
return 'Parameter Monat (2. unbenannter Parameter) fehlt im Aufruf der Vorlage DatumIrdischZuBF auf dieser Seite. Bitte nachtragen! [[Kategorie:Wartung Falscher Vorlagen-Aufruf]]'
elseif string.len(monat) == 0 then
return 'Parameter Monat (2. unbenannter Parameter) ohne Angabe einer Monats-Zahl im Aufruf der Vorlage DatumIrdischZuBF auf dieser Seite. Bitte nachtragen! [[Kategorie:Wartung Falscher Vorlagen-Aufruf]]'
end
if tag == nil then
tag = frame.args[3]
end
if tag == nil then
return 'Parameter Tag (3. unbenannter Parameter) fehlt im Aufruf der Vorlage DatumIrdischZuBF auf dieser Seite. Bitte nachtragen! [[Kategorie:Wartung Falscher Vorlagen-Aufruf]]'
elseif string.len(tag) == 0 then
return 'Parameter Tag (3. unbenannter Parameter) ohne Angabe einer Tages-Zahl im Aufruf der Vorlage DatumIrdischZuBF auf dieser Seite. Bitte nachtragen! [[Kategorie:Wartung Falscher Vorlagen-Aufruf]]'
end
test_jahr = tonumber(jahr)
if test_jahr ~= nil then
jahr_av = test_jahr - 977
else
return 'Parameter Jahr (1. unbenannter Parameter) muss eine gültige irdische Jahreszahl sein im Aufruf der Vorlage DatumIrdischZuBF auf dieser Seite. Bitte korrigieren! [[Kategorie:Wartung Falscher Vorlagen-Aufruf]]'
end
test_monat = tonumber(monat)
if test_monat ~= nil then
if test_monat < 1 then
return 'Parameter Monat (2. unbenannter Parameter) muss eine gültige irdische Monatszahl sein im Aufruf der Vorlage DatumIrdischZuBF auf dieser Seite. Bitte korrigieren! [[Kategorie:Wartung Falscher Vorlagen-Aufruf]]'
elseif test_monat > 12 then
return 'Parameter Monat (2. unbenannter Parameter) muss eine gültige irdische Monatszahl sein im Aufruf der Vorlage DatumIrdischZuBF auf dieser Seite. Bitte korrigieren! [[Kategorie:Wartung Falscher Vorlagen-Aufruf]]'
end
end
lang = mw.getContentLanguage()
int_schaltjahr = tonumber(lang:formatDate('L', test_jahr .. '-01-01', true))
if int_schaltjahr == 1 then
schaltjahr = true
else
schaltjahr = false
end
test_tag = tonumber(tag)
if test_tag ~= nil then
if test_tag < 1 then
return 'Parameter Tag (3. unbenannter Parameter) muss eine gültige irdische Tageszahl sein im Aufruf der Vorlage DatumIrdischZuBF auf dieser Seite. Bitte korrigieren! [[Kategorie:Wartung Falscher Vorlagen-Aufruf]]'
elseif test_tag > fncTageImMonatIrd(test_monat, schaltjahr) then
return 'Parameter Tag (3. unbenannter Parameter) muss eine gültige irdische Tageszahl sein im Aufruf der Vorlage DatumIrdischZuBF auf dieser Seite. Bitte korrigieren! [[Kategorie:Wartung Falscher Vorlagen-Aufruf]]'
end
end
datum_string_ird = jahr .. '-' .. monat .. '-' .. tag
tag_im_jahr = tonumber(lang:formatDate('z', datum_string_ird, true)) + 1 -- +1 weil 1. Januar = 0
if schaltjahr then
if tag_im_jahr >= 60 then
tag_im_jahr = tag_im_jahr - 1 -- ignoriere den Schalttag
end
end
monat_av = math.ceil(tag_im_jahr / 30)
tag_av = tag_im_jahr - (math.floor(tag_im_jahr / 30) * 30)
monatsname_av = fncMonatsnameAv(monat_av)
if jahr_av > 0 then
return tag_av .. '. ' .. monatsname_av .. ' ' .. jahr_av .. ' BF'
else
return tag_av .. '. ' .. monatsname_av .. ' ' .. jahr_av .. ' v. BF'
end
end
function p.Datum(frame)
jahr = frame:getParent().args[1]
monat = frame:getParent().args[2]
tag = frame:getParent().args[3]
displayparameter = frame:getParent().args[4]
if (jahr == nil or string.len(jahr) == 0) then
return 'Jahreszahl muss angegeben werden, sonst kann keine Berechnung stattfinden![[Kategorie:Falscher Vorlagen-Aufruf]]'
else
test_jahr = tonumber(jahr)
if test_jahr ~= nil then
jahreszahl = 2000000000 + test_jahr
else
return 'Falsche Angabe: Bei der Jahreszahl-Angabe dürfen nur Ziffern angegeben werden![[Kategorie:Falscher Vorlagen-Aufruf]]'
end
end
if (tag == nil or string.len(tag) == 0) then
tageszahl = 0
taggenau = false
else
test_tag = tonumber(tag)
if test_tag ~= nil then
if (test_tag > 0 and test_tag <= 30) then
tageszahl = test_tag
taggenau = true
else
-- Fehlerbehandlung noch einbauen
end
else
-- möglich: A, M, E
end
end
if (monat == nil or string.len(monat) == 0) then
monatszahl = 0
else
test_monat = tonumber(monat)
if test_monat ~= nil then
if (test_monat > 0 and test_monat <= 13) then
monatszahl = test_monat
monat_kurz = fncMonatsnameAv(monatszahl)
monat_lang = fncMonatsnameAvLang(monatszahl)
else
return 'Falsche Angabe: Beim Monat dürfen nur Zahlen zwischen 1 und 13 angegeben werden (oder erlaubte Buchstaben).[[Kategorie:Falscher Vorlagen-Aufruf]]'
end
else
taggenau = false
if monat == 'A' then
monatszahl = 1
monat_lang = 'Anfang'
monat_kurz = 'Anfang'
elseif monat == 'M' then
monatszahl = 7
monat_lang = 'Mitte'
monat_kurz = 'Mitte'
elseif monat == 'E' then
monatszahl = 12
monat_lang = 'Ende'
monat_kurz = 'Ende'
elseif monat == 'S' then
monatszahl = 1
monat_lang = 'Sommer'
monat_kurz = 'Sommer'
elseif monat == 'H' then
monatszahl = 4
monat_lang = 'Herbst'
monat_kurz = 'Herbst'
elseif monat == 'W' then
monatszahl = 7
monat_lang = 'Winter'
monat_kurz = 'Winter'
elseif monat == 'F' then
monatszahl = 10
monat_lang = 'Frühling'
monat_kurz = 'Frühling'
else
return 'Falsche Angabe: bei der Monatsangabe sind nur Zahlen von 1 bis 13 oder die Buchstaben A, M, E (für Anfang, Mitte, Ende) oder S, H, W, F für die Jahreszeiten erlaubt![[Kategorie:Falscher Vorlagen-Aufruf]]'
end
end
end
sortierzahl = jahreszahl .. string.format("%02d", monatszahl) .. string.format("%02d", tageszahl)
return sortierzahl
end
function p.LetzteRev(frame)
lang = mw.getContentLanguage()
str_revts = tostring(lang:formatDate('U', frame:preprocess('{{REVISIONTIMESTAMP: '.. tostring(mw.title.getCurrentTitle()) ..'}}'), true))
str_ts = tostring(lang:formatDate('U', os.date(), true))
sek_seit_rev = tonumber(str_ts) - tonumber(str_revts)
tage_seit_rev = sek_seit_rev / (60*60*24)
monate_seit_rev = tage_seit_rev / 30
jahre_seit_rev = tage_seit_rev / 365
if (tage_seit_rev < 1) then
return 'vor weniger als einem Tag'
elseif (monate_seit_rev < 1) then
tage = math.floor(tage_seit_rev)
if tage == 1 then
return 'vor einem Tag'
else
return 'vor ' .. tage .. ' Tagen'
end
elseif (jahre_seit_rev < 1) then
monate = math.floor(monate_seit_rev)
if monate == 1 then
return 'vor einem Monat'
else
return 'vor ' .. monate .. ' Monaten'
end
else
jahre = math.floor(jahre_seit_rev)
if jahre == 1 then
return 'vor einem Jahr'
else
return 'vor ' .. jahre .. ' Jahren'
end
end
end
return p