Module:ArcaneCalendar
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