Jump to content

Module:Aligned dates list

Permanently protected module
From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Jay D. Easy (talk | contribs) at 10:30, 21 April 2023 (3.8em→4em). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

local p = {}

function p.main(frame)
    local output = {}
    local monthNames = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}
    local daysInMonth = {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}

    for month = 1, 12 do
        local monthName = monthNames[month]
        local days = daysInMonth[month]
        
        for day = 1, days do
            for _, suffix in ipairs({"", "b", "c"}) do
                local key = string.format("%02d-%02d%s", month, day, suffix)
                local value = frame:getParent().args[key]
                
                if value then
                    table.insert(output, string.format('<div><div style="width:4em;display:inline-block;">%s %d</div> <div style="display:inline-block;">%s</div></div>', monthName, day, value))
                end
            end
        end
    end

    return table.concat(output)
end

return p