Module:Today/GA: Difference between revisions
Jump to navigation
Jump to search
Im a waffle1 (talk | contribs) (maybe) |
Im a waffle1 (talk | contribs) (please WORK) |
||
Line 9: | Line 9: | ||
} | } | ||
local daysPerMonth = 59 | local daysPerMonth = 59 | ||
-- Define days in each Gregorian month | |||
local daysInMonth = { | |||
31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 | |||
} | |||
-- Function to convert Gregorian date to custom calendar date | -- Function to convert Gregorian date to custom calendar date | ||
Line 15: | Line 20: | ||
local gregorianMonth = tonumber(frame.args[2]) | local gregorianMonth = tonumber(frame.args[2]) | ||
local gregorianDay = tonumber(frame.args[3]) | local gregorianDay = tonumber(frame.args[3]) | ||
-- Validate input | |||
if not gregorianYear or not gregorianMonth or not gregorianDay then | |||
return "Invalid input" | |||
end | |||
-- Conversion logic | |||
-- Calculate total days passed in Gregorian calendar | -- Calculate total days passed in Gregorian calendar | ||
Line 31: | Line 43: | ||
local customMonth = math.floor((totalDays - 1) % daysPerMonth) + 1 | local customMonth = math.floor((totalDays - 1) % daysPerMonth) + 1 | ||
return customYear, customMonth | return string.format("Custom Calendar: Year %d, %s %d", customYear, monthNames[customMonth], customMonth) | ||
end | end | ||
return CustomCalendar | return CustomCalendar |
Revision as of 20:24, 11 August 2023
Documentation for this module may be created at Module:Today/GA/doc
------ IMPERIAL GALACTYAN CALENDAR ------
local CustomCalendar = {}
-- Define month names and days per month
local monthNames = {
"Month 1", "Month 2", "Month 3", "Month 4", "Month 5",
"Month 6", "Month 7", "Month 8", "Month 9", "Month 10"
}
local daysPerMonth = 59
-- Define days in each Gregorian month
local daysInMonth = {
31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31
}
-- Function to convert Gregorian date to custom calendar date
function CustomCalendar.convertToCustomCalendar(frame)
local gregorianYear = tonumber(frame.args[1])
local gregorianMonth = tonumber(frame.args[2])
local gregorianDay = tonumber(frame.args[3])
-- Validate input
if not gregorianYear or not gregorianMonth or not gregorianDay then
return "Invalid input"
end
-- Conversion logic
-- Calculate total days passed in Gregorian calendar
local totalDays = (gregorianYear - 1) * 365 + math.floor((gregorianYear - 1) / 4) -- Basic leap year handling
-- Add days of the months that have passed
for i = 1, gregorianMonth - 1 do
totalDays = totalDays + daysInMonth[i]
end
-- Add remaining days of the current month
totalDays = totalDays + gregorianDay
-- Calculate custom calendar year and month
local customYear = math.floor(totalDays / (10 * daysPerMonth)) + 1
local customMonth = math.floor((totalDays - 1) % daysPerMonth) + 1
return string.format("Custom Calendar: Year %d, %s %d", customYear, monthNames[customMonth], customMonth)
end
return CustomCalendar