Module:Aligned dates list

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}

local function generateSuffixes local suffixes = {""} for char = string.byte("b"), string.byte("z") do           table.insert(suffixes, string.char(char)) end return suffixes end

local suffixes = generateSuffixes

for month = 1, 12 do       local monthName = monthNames[month] local days = daysInMonth[month]

for day = 1, days do           for _, suffix in ipairs(suffixes) do                local key1 = string.format("%02d-%02d%s", month, day, suffix) local key2 = string.format("%s %02d%s", string.sub(monthName, 1, 3), day, suffix) local key3 = string.format("%s %02d%s", string.lower(string.sub(monthName, 1, 3)), day, suffix) local value = frame:getParent.args[key1] or frame:getParent.args[key2] or frame:getParent.args[key3]

if value then table.insert(output, string.format(' %s %d %s ', monthName, day, value)) end end end end

return table.concat(output) end

return p