Modul:Dátum sviatku
Dokumentácia
Dokumentácia pre tento modul zatiaľ neexistuje. Môžete ju vytvoriť na Modul:Dátum sviatku/Dokumentácia
Ak máte otázku k tomuto modulu, alebo potrebujete jeho rozšírenie a neviete ho správne naformátovať, pýtajte sa v diskusii k modulu. Pokiaľ je potrebné modul urgentne opraviť, obráťte sa na technickú podporu.
- Použitie modulu v článkoch.
- Zoznam podstránok tohto modulu.
local export = {}
-- Výpočet dátumu Veľkej noci
function eas(y)
c = math.floor(y/100)
n = y - 19*math.floor(y/19)
k = math.floor((c - 17)/25)
i = c - math.floor(c/4) - math.floor((c - k)/3) + 19*n + 15
i = i - 30*math.floor(i/30)
j = y + math.floor(y/4) + i + 2 - c + math.floor(c/4)
j = j - 7*math.floor(j/7)
l = i - j
moea = 3 + math.floor((l + 40)/44)
doea = l + 28 - 31*math.floor(moea/4)
ea = os.time{year=y, month=moea, day=doea}
return ea
end
-- úprava dátumu do slovenského textového formátu (x. mesiac)
function date_format(day, month)
local months = {
["01"] = "január",
["02"] = "február",
["03"] = "marec",
["04"] = "apríl",
["05"] = "máj",
["06"] = "jún",
["07"] = "júl",
["08"] = "august",
["09"] = "september",
["10"] = "október",
["11"] = "november",
["12"] = "december",
}
local str = tonumber(day) .. '. ' .. months[month]
return str
end
-- pri sviatkoch, ktoré závisia od Veľkej noci, vykoná výpočet dátumu
function easter_relative(year, shift)
local easter = eas(year)
local days = tonumber(shift)
local feast_day = os.date('%d', easter + days*24*60*60)
local feast_month = os.date('%m', easter + days*24*60*60)
local feast_date = date_format(feast_day, feast_month)
return feast_date
end
-- sviatok sv. rodiny: nedeľa po Vianociach alebo, ak nie je, tak 30. decembra
function holy_family(year)
local christmas = os.time{year=year, month=12, day=25}
local christmas_weekday = os.date('%w', christmas)
local feast_date = ""
if os.date('%w', christmas) == '0' then
feast_date = date_format(30, "12")
else
feast_date = date_format(32-christmas_weekday, "12")
end
return feast_date
end
function export.show(frame)
local args = frame.args
local year = args[1]
local type = args[2]
local shift = args[3] or (type ~= "easter" and "") or error("Nebol zadaný parameter 3")
local fianl = ""
if type == "easter" then
final = easter_relative(year, shift)
elseif type == "svata_rodina" then
final = holy_family(year)
end
return final
end
return export