Module:ArcaneCalendar

From CinderCivs Wiki
Revision as of 10:52, 1 February 2025 by Nex23 (talk | contribs) (Created page with "local p = {} function p.convertDate(frame) local args = frame.args local year = tonumber(args.year) local month = tonumber(args.month) local day = tonumber(args.day) -- Define start dates of each era (adjust as needed) local era_start = { [1] = { year = 2023, month = 8, day = 16 }, [2] = { year = 2024, month = 7, day = 21 } } local era = 2 -- Default to the latest era for e, start in pairs(era_start) do if (...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Documentation for this module may be created at Module:ArcaneCalendar/doc

local p = {}

function p.convertDate(frame)
    local args = frame.args
    local year = tonumber(args.year)
    local month = tonumber(args.month)
    local day = tonumber(args.day)

    -- Define start dates of each era (adjust as needed)
    local era_start = {
        [1] = { year = 2023, month = 8, day = 16 },
        [2] = { year = 2024, month = 7, day = 21 }
    }

    local era = 2  -- Default to the latest era
    for e, start in pairs(era_start) do
        if (year > start.year) or (year == start.year and month > start.month) or (year == start.year and month == start.month and day >= start.day) then
            era = e
        end
    end

    local start = era_start[era]
    local startDate = os.time({ year = start.year, month = start.month, day = start.day })
    local inputDate = os.time({ year = year, month = month, day = day })

    local diffDays = math.floor((inputDate - startDate) / 86400) -- Convert seconds to days
    local dawn = math.floor(diffDays / 7) + 1
    local moon = (diffDays % 7) + 1

    return dawn .. "th Dawn of the " .. era .. "nd Era, " .. moon .. "th Moon"
end

return p