Modul:Zeit: Unterschied zwischen den Versionen

K
59 Versionen von wikivoyage:Modul:Zeit importiert
Keine Bearbeitungszusammenfassung
K (59 Versionen von wikivoyage:Modul:Zeit importiert)
 
(44 dazwischenliegende Versionen von einem anderen Benutzer werden nicht angezeigt)
Zeile 1: Zeile 1:
local check = require('Modul:Check')
local check = require('Modul:Check2')
local params = mw.loadData('Modul:Zeit/Params')
local lang = mw.language.new ( 'de' );


local zeit = {}
local zeit = {}
Zeile 5: Zeile 7:
function zeit.inhalt_monat ( frame )
function zeit.inhalt_monat ( frame )
lang = mw.language.new ( 'de' );
params = mw.loadData('Modul:Zeit/Params')
funcParams = params['inhalt_monat']
funcParams = params['inhalt_monat']
args = frame:getParent().args
args = frame:getParent().args
local januar = args['jan']
local januar = args['jan'] or args['januar'] or args['std'] or args['standard'] or funcParams['jan']
if januar == nil then januar = args['januar'] end
local februar = args['feb'] or args['februar'] or args['std'] or args['standard'] or funcParams['feb']
if januar == nil then januar = args['std'] end
local maerz = args['mar'] or args['maerz'] or args['std'] or args['standard'] or funcParams['mar']
if januar == nil then januar = args['standard'] end
local april = args['apr'] or args['april'] or args['std'] or args['standard'] or funcParams['apr']
if januar == nil then januar = funcParams['jan'] end
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 februar = args['feb']
local juli = args['jul'] or args['juli'] or args['std'] or args['standard'] or funcParams['jul']
if februar == nil then februar = args['februar'] end
local august = args['aug'] or args['august'] or args['std'] or args['standard'] or funcParams['aug']
if februar == nil then februar = args['std'] end
local september = args['sep'] or args['september'] or args['std'] or args['standard'] or funcParams['sep']
if februar == nil then februar = args['standard'] end
local oktober = args['okt'] or args['oktober'] or args['std'] or args['standard'] or funcParams['okt']
if februar == nil then februar = funcParams['feb'] end
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 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 ausgabe = funcParams['st']
Zeile 103: Zeile 44:
function zeit.inhalt_jahreszeit ( frame )
function zeit.inhalt_jahreszeit ( frame )
lang = mw.language.new ( 'de' );
params = mw.loadData('Modul:Zeit/Params')
funcParams = params['inhalt_jahreszeit']
funcParams = params['inhalt_jahreszeit']
args = frame:getParent().args
args = frame:getParent().args
local januar = args['fr']
local paramsTypen = { astronomisch = 'astronomisch', meteorologisch = 'meteorologisch' }
if januar == nil then januar = args['fruehling'] end
local errorStr = '';
if januar == nil then januar = args['std'] end
if januar == nil then januar = args['standard'] end
if januar == nil then januar = funcParams['fr'] end
local januar = args['fr']
local fruehling = args['fr'] or args['fruehling'] or args['std'] or args['standard'] or funcParams['fr']
if januar == nil then januar = args['fruehling'] end
local sommer = args['so'] or args['sommer'] or args['std'] or args['standard'] or funcParams['so']
if januar == nil then januar = args['std'] end
local herbst = args['he'] or args['herbst'] or args['std'] or args['standard'] or funcParams['he']
if januar == nil then januar = args['standard'] end
local winter = args['wi'] or args['winter'] or args['std'] or args['standard'] or funcParams['wi']
if januar == nil then januar = funcParams['fr'] end
local januar = args['fr']
local typ = args['typ'] or funcParams['typ']
if januar == nil then januar = args['fruehling'] end
if januar == nil then januar = args['std'] end
if januar == nil then januar = args['standard'] end
if januar == nil then januar = funcParams['fr'] end
local januar = args['fr']
local ausgabe = funcParams['std']
if januar == nil then januar = args['fruehling'] end
if januar == nil then januar = args['std'] end
if paramsTypen[typ] == nil then errorStr = check._error ('Falscher Wert für Parameter <em>typ</em>: <em>' .. typ .. '</em>', 'Zeit' ) end
if januar == nil then januar = args['standard'] end
if typ == 'meteorologisch' then
if januar == nil then januar = funcParams['fr'] end
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 ausgabe = funcParams['std']
local monat = lang:formatDate ( 'm' )
-- 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
 
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 check._testParams ( args, funcParams, 'Zeit' ) .. ausgabe
return lang:formatDate ( ausgabeFormat, tostring ( jahr + anzahl )..monat..tag )
end
end


return zeit
return zeit