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 return errorStr .. check._testParams ( args, funcParams, 'Zeit' ) .. ausgabe end return zeit