Modul:Datum: Unterschied zwischen den Versionen

Aus Almada Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(13 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
local p = {}
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 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)
return '[[Modul:Datum|Modul ist in Arbeit!]]'
end


function p.LetzteRev(frame)
function p.LetzteRev(frame)
lang = mw.getContentLanguage()
lang = mw.getContentLanguage()
str_revts = tostring(frame:preprocess('{{REVISIONTIMESTAMP: '.. tostring(mw.title.getCurrentTitle()) ..'}}'))
str_revts = tostring(lang:formatDate('U', frame:preprocess('{{REVISIONTIMESTAMP: '.. tostring(mw.title.getCurrentTitle()) ..'}}'), true))
str_ts = tostring(lang:formatDate('YmdHis', os.date(), true))
str_ts = tostring(lang:formatDate('U', os.date(), true))
sek_seit_rev = tonumber(str_ts) - tonumber(str_revts)
sek_seit_rev = tonumber(str_ts) - tonumber(str_revts)
tage_seit_rev = sek_seit_rev / (60*60*24)
tage_seit_rev = sek_seit_rev / (60*60*24)
Zeile 10: Zeile 127:
jahre_seit_rev = tage_seit_rev / 365
jahre_seit_rev = tage_seit_rev / 365
if (tage_seit_rev < 1) then
if (tage_seit_rev < 1) then
return tage_seit_rev .. 'vor weniger als einem Tag'
return 'vor weniger als einem Tag'
elseif (monate_seit_rev < 1) then
elseif (monate_seit_rev < 1) then
tage = math.floor(tage_seit_rev)
tage = math.floor(tage_seit_rev)
if tage == 1 then
if tage == 1 then
return monate_seit_rev .. 'vor einem Tag'
return 'vor einem Tag'
else
else
return str_revts .. '-' .. str_ts .. 'vor ' .. tage .. ' Tagen'
return 'vor ' .. tage .. ' Tagen'
end
end
elseif (jahre_seit_rev < 1) then
elseif (jahre_seit_rev < 1) then

Aktuelle Version vom 13. Februar 2025, 06:49 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 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)
	return '[[Modul:Datum|Modul ist in Arbeit!]]'
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