Modul:Zeit: Unterschied zwischen den Versionen

Aus skandinavien-wiki.net
Keine Bearbeitungszusammenfassung
(vereinfacht)
Zeile 4: Zeile 4:


function zeit.inhalt_monat ( frame )
function zeit.inhalt_monat ( frame )
 
lang = mw.language.new ( 'de' );
  lang = mw.language.new ( 'de' );
 
params = mw.loadData('Modul:Zeit/Params')
  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
  local ausgabe = funcParams['st']
if maerz == nil then maerz = args['std'] end
  local monat = lang:formatDate ( 'm' )
if maerz == nil then maerz = args['standard'] end
 
if maerz == nil then maerz = funcParams['mar'] end
  if monat == '01' then ausgabe = januar end
  if monat == '02' then ausgabe = februar end
local april = args['apr']
  if monat == '03' then ausgabe = maerz end
if april == nil then april = args['april'] end
  if monat == '04' then ausgabe = april end
if april == nil then april = args['std'] end
  if monat == '05' then ausgabe = mai end
if april == nil then april = args['standard'] end
  if monat == '06' then ausgabe = juni end
if april == nil then april = funcParams['apr'] end
  if monat == '07' then ausgabe = juli end
  if monat == '08' then ausgabe = august end
local mai = args['mai']
  if monat == '09' then ausgabe = september end
if mai == nil then mai = args['std'] end
  if monat == '10' then ausgabe = oktober end
if mai == nil then mai = args['standard'] end
  if monat == '11' then ausgabe = november end
if mai == nil then mai = funcParams['mai'] end
  if monat == '12' then ausgabe = dezember 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
  return check._testParams ( args, funcParams, 'Zeit' ) .. ausgabe
end
end


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


function zeit.inhalt_saison ( frame )
function zeit.inhalt_saison ( frame )
 
lang = mw.language.new ( 'de' );
  lang = mw.language.new ( 'de' );
 
params = mw.loadData('Modul:Zeit/Params')
  params = mw.loadData('Modul:Zeit/Params')
funcParams = params['inhalt_saison']
  funcParams = params['inhalt_saison']
args = frame:getParent().args
  args = frame:getParent().args
 
local sommer = args['so']
  local sommer = args['so'] or args['sommer'] or args['std'] or args['standard'] or funcParams['so']
if sommer == nil then sommer = args['sommer'] end
  local winter = args['wi'] or args['winter'] or args['std'] or args['standard'] or funcParams['wi']
if sommer == nil then sommer = args['std'] end
 
if sommer == nil then sommer = args['standard'] end
  local ausgabe = funcParams['std']
if sommer == nil then sommer = funcParams['so'] end
 
 
  local datum = os.date( '*t' )
local winter = args['wi']
  if datum['isdst'] then ausgabe = sommer else ausgabe = winter end
if winter == nil then winter = args['winter'] end
 
if winter == nil then winter = args['std'] end
  return check._testParams ( args, funcParams, 'Zeit' ) .. ausgabe
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
end


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


local ausgabe = standard
  local ausgabe = standard


local differenz = os.difftime ( os.time(), os.time ( { year = jahr, month = '01', day = '01' } ) )
  local differenz = os.difftime ( os.time(), os.time ( { year = jahr, month = '01', day = '01' } ) )
local heute = math.floor ( differenz / 86400 +0.5 )
  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' } ) )
  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 )
  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' } ) )
  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 )
  local bis = math.floor ( differenz / 86400 +0.5 )
if von > bis then
  if von > bis then
if jahr / 4 == math.floor ( jahr / 4 ) then von = von - 357 else von = von - 356 end
      if jahr / 4 == math.floor ( jahr / 4 ) then von = von - 357 else von = von - 356 end
end
  end
 
if heute >= von and heute <= bis then ausgabe = inhalt end
  if heute >= von and heute <= bis then ausgabe = inhalt end
 
return errorStr .. check._testParams ( args, funcParams, 'Zeit' ) .. ausgabe
  return errorStr .. check._testParams ( args, funcParams, 'Zeit' ) .. ausgabe
end
end


return zeit
return zeit

Version vom 26. März 2016, 09:49 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'] 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 )
   
   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'] 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 )
   
   lang = mw.language.new ( 'de' );
   
   params = mw.loadData('Modul:Zeit/Params')
   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
   
   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'] 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
   
   if heute >= von and heute <= bis then ausgabe = inhalt end
   
   return errorStr .. check._testParams ( args, funcParams, 'Zeit' ) .. ausgabe
end

return zeit