Dokumentation für das Modul Zeit[Ansicht] [Bearbeiten] [Versionsgeschichte] [Aktualisieren]

Submodule

  • Modul:Zeit/Params – enthält ein mehrdimensionales Array mit allen erlaubten Parametern für jede Funktion/Vorlage und ihre Standardbelegung.

Funktionen

Die genaue Schreibweise der zu übergebenen Parameter, und ihre Standardbelegung kann im Submodul Modul:Zeit/Params eingesehen werden.

  • inhalt_zeitraum - Gibt den Text Inhalt aus, wenn das aktuelle Datum in einem definierten Zeitraum liegt, andernfalls wird der Inhalt von std ausgegeben

Verwendung in Vorlagen

Siehe auch

Benötigte weitere Module

Dieses Modul benötigt folgende weitere Module: Check2
Hinweise
local check = require('Modul:Check2') local params = mw.loadData('Modul:Zeit/Params') local lang = mw.language.new ( 'de' );  local zeit = {}  function zeit.inhalt_monat ( frame ) 	 	funcParams = params['inhalt_monat'] 	args = frame:getParent().args 	 	local januar = args['jan'] or args['januar'] or args['std'] or args['standard'] or funcParams['jan']	 	local februar = args['feb'] or args['februar'] or args['std'] or args['standard'] or funcParams['feb'] 	local maerz = args['mar'] or args['maerz'] or args['std'] or args['standard'] or funcParams['mar']	 	local april = args['apr'] or args['april'] or args['std'] or args['standard'] or funcParams['apr']	 	local mai = args['mai'] or args['std'] or args['standard'] or funcParams['mai']	 	local juni = args['jun'] or args['juni'] or args['std'] or args['standard'] or funcParams['jun']	 	local juli = args['jul'] or args['juli'] or args['std'] or args['standard'] or funcParams['jul'] 	local august = args['aug'] or args['august'] or args['std'] or args['standard'] or funcParams['aug'] 	local september = args['sep'] or args['september'] or args['std'] or args['standard'] or funcParams['sep']	 	local oktober = args['okt'] or args['oktober'] or args['std'] or args['standard'] or funcParams['okt']	 	local november = args['nov'] or args['november'] or args['std'] or args['standard'] or funcParams['nov'] 	local dezember = args['dez'] or args['dezember'] or args['std'] or args['standard'] or funcParams['dez'] 	 	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 ) 	 	funcParams = params['inhalt_jahreszeit'] 	args = frame:getParent().args 	 	local paramsTypen = { astronomisch = 'astronomisch', meteorologisch = 'meteorologisch' } 	local errorStr = ''; 	 	local fruehling = args['fr'] or args['fruehling'] or args['std'] or args['standard'] or funcParams['fr']	 	local sommer = args['so'] or args['sommer'] or args['std'] or args['standard'] or funcParams['so']	 	local herbst = args['he'] or args['herbst'] or args['std'] or args['standard'] or funcParams['he'] 	local winter = args['wi'] or args['winter'] or args['std'] or args['standard'] or funcParams['wi'] 	 	local typ = args['typ'] or funcParams['typ'] 	 	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 ) 	 	funcParams = params['inhalt_saison'] 	args = frame:getParent().args 	 	local sommer = args['so'] or args['sommer'] or args['std'] or args['standard'] or funcParams['so'] 	local winter = args['wi'] or args['winter'] or args['std'] or args['standard'] or funcParams['wi'] 	 	local ausgabe = funcParams['std'] 	 	-- local datum = os.date( '*t' ) 	-- if datum['isdst'] then ausgabe = sommer else ausgabe = winter end 	local saison = lang:formatDate ( 'I', nil , true ) 	if ( saison == '1' ) then ausgabe = sommer else ausgabe = winter end 	 	return check._testParams ( args, funcParams, 'Zeit' ) .. ausgabe end  function zeit.inhalt_zeitraum ( frame ) 	 	local jahr = lang:formatDate ( 'Y' ) 	funcParams = params['inhalt_zeitraum'] 	args = frame:getParent().args 	 	local errorStr = ''; 	 	local von_tag = args['von_tag'] or funcParams['von_tag']	 	local von_monat = args['von_monat'] or funcParams['von_monat']	 	local bis_monat = args['bis_monat'] or funcParams['bis_monat'] 	 	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'] or args['standard'] or funcParams['std']  	local ausgabe = standard  	local differenz = os.difftime ( os.time(), os.time ( { year = jahr, month = '01', day = '01' } ) ) 	local heute = math.floor ( differenz / 86400 +0.5 ) 	differenz = os.difftime ( os.time( { year = jahr, month = von_monat, day = von_tag } ), os.time ( { year = jahr, month = '01', day = '01' } ) ) 	local von = math.floor ( differenz / 86400 +0.5 ) 	differenz = os.difftime ( os.time( { year = jahr, month = bis_monat, day = bis_tag } ), os.time ( { year = jahr, month = '01', day = '01' } ) ) 	local bis = math.floor ( differenz / 86400 +0.5 ) 	if von > bis then 		if jahr / 4 == math.floor ( jahr / 4 ) then von = von - 357 else von = von - 356 end 	end 	 	local inside = false; 	 	if heute >= von and heute <= bis then inside = true end 	if jahr / 4 == math.floor ( jahr / 4 ) then  		von = von + 357 		bis = bis + 357 	else  		von = von + 356 		bis = bis + 356 	end 	if heute >= von and heute <= bis then inside = true end 	 	if inside then ausgabe = inhalt end 	 	return errorStr .. check._testParams ( args, funcParams, 'Zeit' ) .. ausgabe end  function zeit.addMonth ( frame ) 	 	local funcParams = params['addMonth'] 	local vArgs = frame.args 	local args = frame:getParent().args  	local anzahl = tonumber( vArgs['anzahlMonate'] or args['anzahlMonate'] or funcParams['anzahlMonate'] ) 	local ausgabeFormat = vArgs['format'] or args['format'] or funcParams['format'] 	local jahr = tonumber( vArgs['jahr'] or args['jahr'] or lang:formatDate ( 'Y' ) ) 	local monat = tonumber( vArgs['monat'] or args['monat'] or lang:formatDate ( 'm' ) ) 	local tag = vArgs['tag'] or args['tag'] or lang:formatDate ( 'd' ) 	 	local monatStr = tostring ( monat + anzahl - ( math.floor ( ( anzahl + monat - 1 ) / 12 ) * 12 ) ) 	if ( string.len(monatStr) == 1 ) then monatStr = '0'..monatStr end 	 	if monatStr == '02' and tag == '31' then tag = '28' 	elseif monatStr == '02' and tag == '30' then tag = '28' 	elseif monatStr == '02' and tag == '29' then tag = '28' 	elseif monatStr == '04' and tag == '31' then tag = '30' 	elseif monatStr == '06' and tag == '31' then tag = '30' 	elseif monatStr == '09' and tag == '31' then tag = '30' 	elseif monatStr == '11' and tag == '31' then tag = '30' 	end  	return lang:formatDate ( ausgabeFormat, tostring ( jahr + math.floor ( ( anzahl + monat - 1 ) / 12 ) )..monatStr..tag ) end  function zeit.addYear ( frame ) 	 	local funcParams = params['addYear'] 	local vArgs = frame.args 	local args = frame:getParent().args  	local anzahl = tonumber( vArgs['anzahlJahre'] or args['anzahlJahre'] or funcParams['anzahlJahre'] ) 	local ausgabeFormat = vArgs['format'] or args['format'] or funcParams['format'] 	local jahr = tonumber( vArgs['jahr'] or args['jahr'] or lang:formatDate ( 'Y' ) ) 	local monat = vArgs['monat'] or args['monat'] or lang:formatDate ( 'm' ) 	local tag = vArgs['tag'] or args['tag'] or lang:formatDate ( 'd' )  	return lang:formatDate ( ausgabeFormat, tostring ( jahr + anzahl )..monat..tag ) end  return zeit