وحدة:Aligned dates list

من أرابيكا، الموسوعة الحرة

هذه هي النسخة الحالية من هذه الصفحة، وقام بتعديلها عبود السكاف (نقاش | مساهمات) في 01:41، 24 أغسطس 2023 (Restored revision 63802527 by أيوب (talk) (TwinkleGlobal)). العنوان الحالي (URL) هو وصلة دائمة لهذه النسخة.

(فرق) → نسخة أقدم | نسخة حالية (فرق) | نسخة أحدث ← (فرق)
اذهب إلى التنقل اذهب إلى البحث
local p = {}

function p.main(frame)
    local output = {}
    local monthNames = {"يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"}
    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('<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