Modul:Zeit: Unterschied zwischen den Versionen

Aus skandinavien-wiki.net
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 230: Zeile 230:
if bis_tag == nil then  
if bis_tag == nil then  
bis_tag = funcParams['bis_tag']  
bis_tag = funcParams['bis_tag']  
if bis_monat == 02 then  
if bis_monat == '02' then  
bis_tag = 28
bis_tag = 28
if jahr / 4 == math.floor ( jahr / 4 ) then bis_tag = 29 end
if jahr / 4 == math.floor ( jahr / 4 ) then bis_tag = 29 end
end
end
if bis_monat == 04 then bis_tag = 30 end
if bis_monat == '04' then bis_tag = 30 end
if bis_monat == 06 then bis_tag = 30 end
if bis_monat == '06' then bis_tag = 30 end
if bis_monat == 09 then bis_tag = 30 end
if bis_monat == '09' then bis_tag = 30 end
if bis_monat == 11 then bis_tag = 30 end
if bis_monat == '11' then bis_tag = 30 end
end
end

Version vom 28. Januar 2014, 10:25 Uhr

Die Dokumentation für dieses Modul kann unter Modul:Zeit/doc erstellt werden

local check = require('Modul:Check')

local zeit = {}

function zeit.inhalt_monat ( frame )
	
	lang = mw.language.new ( 'de' );
	
	params = mw.loadData('Modul:Zeit/Params')
	funcParams = params['inhalt_monat']
	args = frame:getParent().args
	
	local januar = args['jan']
	if januar == nil then januar = args['januar'] end
	if januar == nil then januar = args['std'] end
	if januar == nil then januar = args['standard'] end
	if januar == nil then januar = funcParams['jan'] end
	
	local februar = args['feb']
	if februar == nil then februar = args['februar'] end
	if februar == nil then februar = args['std'] end
	if februar == nil then februar = args['standard'] end
	if februar == nil then februar = funcParams['feb'] end
	
	local maerz = args['mar']
	if maerz == nil then maerz = args['maerz'] end
	if maerz == nil then maerz = args['std'] end
	if maerz == nil then maerz = args['standard'] end
	if maerz == nil then maerz = funcParams['mar'] end
	
	local april = args['apr']
	if april == nil then april = args['april'] end
	if april == nil then april = args['std'] end
	if april == nil then april = args['standard'] end
	if april == nil then april = funcParams['apr'] end
	
	local mai = args['mai']
	if mai == nil then mai = args['std'] end
	if mai == nil then mai = args['standard'] end
	if mai == nil then mai = funcParams['mai'] end
	
	local juni = args['jun']
	if juni == nil then juni = args['juni'] end
	if juni == nil then juni = args['std'] end
	if juni == nil then juni = args['standard'] end
	if juni == nil then juni = funcParams['jun'] end
	
	local juli = args['jul']
	if juli == nil then juli = args['juli'] end
	if juli == nil then juli = args['std'] end
	if juli == nil then juli = args['standard'] end
	if juli == nil then juli = funcParams['jul'] end
	
	local august = args['aug']
	if august == nil then august = args['august'] end
	if august == nil then august = args['std'] end
	if august == nil then august = args['standard'] end
	if august == nil then august = funcParams['aug'] end
	
	local september = args['sep']
	if september == nil then september = args['september'] end
	if september == nil then september = args['std'] end
	if september == nil then september = args['standard'] end
	if september == nil then september = funcParams['sep'] end
	
	local oktober = args['okt']
	if oktober == nil then oktober = args['oktober'] end
	if oktober == nil then oktober = args['std'] end
	if oktober == nil then oktober = args['standard'] end
	if oktober == nil then oktober = funcParams['okt'] end
	
	local november = args['nov']
	if november == nil then november = args['november'] end
	if november == nil then november = args['std'] end
	if november == nil then november = args['standard'] end
	if november == nil then november = funcParams['nov'] end
	
	local dezember = args['dez']
	if dezember == nil then dezember = args['dezember'] end
	if dezember == nil then dezember = args['std'] end
	if dezember == nil then dezember = args['standard'] end
	if dezember == nil then dezember = funcParams['dez'] end
	
	local ausgabe = funcParams['st']
	local monat = lang:formatDate ( 'm' )
	
	if monat == '01' then ausgabe = januar end
	if monat == '02' then ausgabe = februar end
	if monat == '03' then ausgabe = maerz end
	if monat == '04' then ausgabe = april end
	if monat == '05' then ausgabe = mai end
	if monat == '06' then ausgabe = juni end
	if monat == '07' then ausgabe = juli end
	if monat == '08' then ausgabe = august end
	if monat == '09' then ausgabe = september end
	if monat == '10' then ausgabe = oktober end
	if monat == '11' then ausgabe = november end
	if monat == '12' then ausgabe = dezember end

	return check._testParams ( args, funcParams, 'Zeit' ) .. ausgabe
end

function zeit.inhalt_jahreszeit ( frame )
	
	lang = mw.language.new ( 'de' );
	
	params = mw.loadData('Modul:Zeit/Params')
	funcParams = params['inhalt_jahreszeit']
	args = frame:getParent().args
	
	local paramsTypen = { astronomisch = 'astronomisch', meteorologisch = 'meteorologisch' }
	local errorStr = '';
	
	local fruehling = args['fr']
	if fruehling == nil then fruehling = args['fruehling'] end
	if fruehling == nil then fruehling = args['std'] end
	if fruehling == nil then fruehling = args['standard'] end
	if fruehling == nil then fruehling = funcParams['fr'] end
	
	local sommer = args['so']
	if sommer == nil then sommer = args['sommer'] end
	if sommer == nil then sommer = args['std'] end
	if sommer == nil then sommer = args['standard'] end
	if sommer == nil then sommer = funcParams['so'] end
	
	local herbst = args['he']
	if herbst == nil then herbst = args['herbst'] end
	if herbst == nil then herbst = args['std'] end
	if herbst == nil then herbst = args['standard'] end
	if herbst == nil then herbst = funcParams['he'] end
	
	local winter = args['wi']
	if winter == nil then winter = args['winter'] end
	if winter == nil then winter = args['std'] end
	if winter == nil then winter = args['standard'] end
	if winter == nil then winter = funcParams['wi'] end
	
	local typ = args['typ']
	if typ == nil then typ = funcParams['typ'] end
	
	local ausgabe = funcParams['std']
	
	if paramsTypen[typ] == nil then errorStr = check._error ('Falscher Wert für Parameter <em>typ</em>: <em>' .. typ .. '</em>', 'Zeit' ) end
	if typ == 'meteorologisch' then
		local monat = lang:formatDate ( 'm' )
		if monat == '01' then ausgabe = winter end
		if monat == '02' then ausgabe = winter end
		if monat == '03' then ausgabe = fruehling end
		if monat == '04' then ausgabe = fruehling end
		if monat == '05' then ausgabe = fruehling end
		if monat == '06' then ausgabe = sommer end
		if monat == '07' then ausgabe = sommer end
		if monat == '08' then ausgabe = sommer end
		if monat == '09' then ausgabe = herbst end
		if monat == '10' then ausgabe = herbst end
		if monat == '11' then ausgabe = herbst end
		if monat == '12' then ausgabe = winter end		
	end
	if typ == 'astronomisch' then
		local jahr = lang:formatDate ( 'Y' )
		local differenz = os.difftime ( os.time(), os.time ( { year = jahr, month = '01', day = '01' } ) )
		tage = math.floor ( differenz / 86400 +0.5 )
		if tage < 78 then ausgabe = winter
		else
			if tage < 178 then ausgabe = fruehling
			else
				if tage < 265 then ausgabe = sommer
				else
					if tage < 355 then ausgabe = herbst
					else
						ausgabe = winter
					end
				end
			end
		end
		
	end
	return errorStr .. check._testParams ( args, funcParams, 'Zeit' ) .. ausgabe
end

function zeit.inhalt_saison ( frame )
	
	lang = mw.language.new ( 'de' );
	
	params = mw.loadData('Modul:Zeit/Params')
	funcParams = params['inhalt_saison']
	args = frame:getParent().args
	
	local sommer = args['so']
	if sommer == nil then sommer = args['sommer'] end
	if sommer == nil then sommer = args['std'] end
	if sommer == nil then sommer = args['standard'] end
	if sommer == nil then sommer = funcParams['so'] end

	local winter = args['wi']
	if winter == nil then winter = args['winter'] end
	if winter == nil then winter = args['std'] end
	if winter == nil then winter = args['standard'] end
	if winter == nil then winter = funcParams['wi'] end
	
	local ausgabe = funcParams['std']
	
	local datum = os.date( '*t' )
	if datum['isdst'] then ausgabe = sommer else ausgabe = winter end
	
	return check._testParams ( args, funcParams, 'Zeit' ) .. ausgabe
end

function zeit.inhalt_zeitraum ( frame )
	
	lang = mw.language.new ( 'de' );
	local jahr = lang:formatDate ( 'Y' )
	
	params = mw.loadData('Modul:Zeit/Params')
	funcParams = params['inhalt_zeitraum']
	args = frame:getParent().args
	
	local errorStr = '';
	
	local von_tag = args['von_tag']
	if von_tag == nil then von_tag = funcParams['von_tag'] end
	
	local von_monat = args['von_monat']
	if von_monat == nil then von_monat = funcParams['von_monat'] end
	
	local bis_monat = args['bis_monat']
	if bis_monat == nil then bis_monat = funcParams['bis_monat'] end
	
	local bis_tag = args['bis_tag']
	if bis_tag == nil then 
		bis_tag = funcParams['bis_tag'] 
		if bis_monat == '02' then 
			bis_tag = 28
			if jahr / 4 == math.floor ( jahr / 4 ) then bis_tag = 29 end
		end
		if bis_monat == '04' then bis_tag = 30 end
		if bis_monat == '06' then bis_tag = 30 end
		if bis_monat == '09' then bis_tag = 30 end
		if bis_monat == '11' then bis_tag = 30 end
	end
	
	local inhalt = args['inhalt']
	if inhalt == nil then
		inhalt = funcParams['inhalt']
		errorStr = check._error ('Kein Textinhalt für den Zeitraum angegeben.', 'Zeit' )
	end

	local standard = args['std']
	if standard == nil then standard = args['standard'] end
	if standard == nil then standard = funcParams['std'] end

	local ausgabe = standard

	local differenz = os.difftime ( os.time(), os.time ( { year = jahr, month = '01', day = '01' } ) )
	heute = math.floor ( differenz / 86400 +0.5 )
	differenz = os.difftime ( os.time(), os.time ( { year = jahr, month = von_monat, day = von_tag } ) )
	von = math.floor ( differenz / 86400 +0.5 )
	differenz = os.difftime ( os.time(), os.time ( { year = jahr, month = bis_monat, day = bis_tag } ) )
	bis = math.floor ( differenz / 86400 +0.5 )
	
	if heute >= von and heute <= bis then ausgabe = inhalt end
	
	ausgabe = bis_tag
	
	return errorStr .. check._testParams ( args, funcParams, 'Zeit' ) .. ausgabe
end

return zeit