Module:Today/GA: Difference between revisions

From TSP Encyclopedia
Jump to navigation Jump to search
(maybe)
(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