Modul:Első hét első napja

A Wikipédiából, a szabad enciklopédiából

Első hét első napja[mi ez?] • [dokumentáció: mutat, szerkeszt] • [tesztek: létrehozás]

local p = {}

function p.elsonap(frame)
    local args = {}
    if frame == mw.getCurrentFrame() then
        args = frame:getParent().args
    end
    
    local year = tonumber(args[1]) or tonumber(frame)
    if year == nil then
        local date = os.date('*t', os.time() + 3600)
        year = date.year
        local wday = date.wday > 1 and date.wday or 8
        if date.month == 12 and date.day > 28 and date.day - wday > 26 then
            year = year + 1
        end
    end
    local firstDay = os.time{year = year, month = 1, day = 1}
    local d = os.date('*t', firstDay + ((11 - tonumber(os.date('%w', firstDay))) % 7 - 3) * 3600 * 24)
    return string.format('%d-%02d-%02d', d.year, d.month, d.day)
end

return p