Module:BassaridianCalendar: Difference between revisions
From MicrasWiki
Jump to navigationJump to search
NewZimiaGov (talk | contribs) No edit summary |
NewZimiaGov (talk | contribs) No edit summary |
||
Line 2: | Line 2: | ||
function p.getCurrentDate() | function p.getCurrentDate() | ||
local startDate = os.time({year = 1999, month = 8, day = 6}) | |||
local startDate = os.time({year = 1999, month = 8, day = 6}) | local secondsInDay = 86400 | ||
local secondsInDay = | |||
local daysPerYear = 183 | local daysPerYear = 183 | ||
local currentDate = os.time() | local currentDate = os.time() | ||
local totalDaysElapsed = math.floor((currentDate - startDate) / secondsInDay) | local totalDaysElapsed = math.floor((currentDate - startDate) / secondsInDay) | ||
local yearFraction = totalDaysElapsed / daysPerYear | local yearFraction = totalDaysElapsed / daysPerYear | ||
local psscYear = math.floor(yearFraction) | local psscYear = math.floor(yearFraction) | ||
local dayOfYear = math.floor((yearFraction - psscYear) * daysPerYear) + 1 | local dayOfYear = math.floor((yearFraction - psscYear) * daysPerYear) + 1 | ||
local zodiacProverbs = { | |||
Atosien = "The first light reveals the sacred cycle of renewal.", | |||
local | Eosena = "The dawn whispers: every step is a rebirth.", | ||
Micrasha = "Wisdom is the balance of shadow and flame.", | |||
Pyreska = "Creation ignites in the fires of transformation.", | |||
Indomin = "Two paths intertwine: strength in unity, clarity in duality.", | |||
Chrysen = "Gold is the soul's test: will you hoard or share?", | |||
Thalassian = "The tides of Thalassiel teach patience and purpose.", | |||
Nephelia = "Dreams are stars, fleeting yet eternal in the night sky.", | |||
Glinaeus = "The frost preserves what must endure.", | |||
Noctien = "Night guides those who seek the unseen truths.", | |||
Opsithia = "The harvest feeds not just the body, but the spirit.", | |||
Stygian = "Through the Styx flows the essence of transformation.", | |||
Faunian = "The forests sing of life and the balance it brings.", | |||
Silenian = "Celebration is the nectar of divine abundance.", | |||
Catosien = "Order shapes greatness; the straight path ascends." | |||
} | } | ||
local month, dayInMonth, zodiac | |||
if dayOfYear <= 61 then | if dayOfYear <= 61 then | ||
month = "Atosiel" | month = "Atosiel" | ||
dayInMonth = dayOfYear | dayInMonth = dayOfYear | ||
if dayInMonth <= 12 then zodiac = "Atosien" | |||
elseif dayInMonth <= 24 then zodiac = "Eosena" | |||
elseif dayInMonth <= 36 then zodiac = "Micrasha" | |||
elseif dayInMonth <= 48 then zodiac = "Pyreska" | |||
else zodiac = "Indomin" end | |||
elseif dayOfYear <= 122 then | elseif dayOfYear <= 122 then | ||
month = "Thalassiel" | month = "Thalassiel" | ||
dayInMonth = dayOfYear - 61 | dayInMonth = dayOfYear - 61 | ||
if dayInMonth <= 12 then zodiac = "Chrysen" | |||
elseif dayInMonth <= 24 then zodiac = "Thalassian" | |||
elseif dayInMonth <= 36 then zodiac = "Nephelia" | |||
elseif dayInMonth <= 48 then zodiac = "Glinaeus" | |||
else zodiac = "Noctien" end | |||
else | else | ||
month = "Opsitheiel" | month = "Opsitheiel" | ||
dayInMonth = dayOfYear - 122 | dayInMonth = dayOfYear - 122 | ||
if dayInMonth <= 12 then zodiac = "Opsithia" | |||
elseif dayInMonth <= 24 then zodiac = "Stygian" | |||
elseif dayInMonth <= 36 then zodiac = "Faunian" | |||
elseif dayInMonth <= 48 then zodiac = "Silenian" | |||
else zodiac = "Catosien" end | |||
end | end | ||
local events = { | local events = { | ||
["Atosiel,6"] = "Bayram al-Nur (Festival of Light) | ["Atosiel,6"] = "Bayram al-Nur (Festival of Light) [Vaeringheim]", | ||
["Atosiel,18"] = "Chag Or Hadash (Festival of New Light) | ["Atosiel,18"] = "Chag Or Hadash (Festival of New Light) [Luminaria]", | ||
["Atosiel,30"] = "Symposion Eirinis (Symposium of Harmony) | ["Atosiel,30"] = "Symposion Eirinis (Symposium of Harmony) [Serena]", | ||
["Atosiel,43"] = "Alev Günü (Day of Flame) | ["Atosiel,43"] = "Alev Günü (Day of Flame) [Pyralis]", | ||
["Atosiel,55"] = "Tikkun Tzel (Repair of Shadows) | ["Atosiel,55"] = "Tikkun Tzel (Repair of Shadows) [Symphonara]", | ||
["Thalassiel,67"] = "Panegyris Chrysou (Golden Gathering) | ["Thalassiel,67"] = "Panegyris Chrysou (Golden Gathering) [Aurelia]", | ||
["Thalassiel,80"] = "Mehtap Dalgası (Moonlit Tide) | ["Thalassiel,80"] = "Mehtap Dalgası (Moonlit Tide) [Vaeringheim]", | ||
["Thalassiel,92"] = "Oneiro Foteino (Dream of Illumination) | ["Thalassiel,92"] = "Oneiro Foteino (Dream of Illumination) [Somniumpolis]", | ||
["Thalassiel,105"] = "Erev Galgal (Eve of Cycles) | ["Thalassiel,105"] = "Erev Galgal (Eve of Cycles) [Nexa]", | ||
["Thalassiel,115"] = "Leilat al-Kamar (Night of the Moon) | ["Thalassiel,115"] = "Leilat al-Kamar (Night of the Moon) [Lunalis Sancta]", | ||
["Opsitheiel,128"] = "Chag Tvuah (Festival of Harvest) | ["Opsitheiel,128"] = "Chag Tvuah (Festival of Harvest) [Sylvapolis]", | ||
["Opsitheiel,140"] = "Anagenesis Eirmos (Procession of Rebirth) | ["Opsitheiel,140"] = "Anagenesis Eirmos (Procession of Rebirth) [Acheron]", | ||
["Opsitheiel,150"] = "Panagia Therizis (Holy Day of the Reaper) | ["Opsitheiel,150"] = "Panagia Therizis (Holy Day of the Reaper) [Sylvapolis]", | ||
["Opsitheiel,165"] = "Karnavali Thysias (Carnival of Celebration) | ["Opsitheiel,165"] = "Karnavali Thysias (Carnival of Celebration) [Erythros]", | ||
["Opsitheiel,175"] = "Sefar Yashar (Straight Path Celebration) | ["Opsitheiel,175"] = "Sefar Yashar (Straight Path Celebration) [Catonis Atrium]" | ||
} | } | ||
local eventKey = month .. "," .. dayInMonth | local eventKey = month .. "," .. dayInMonth | ||
local event = events[eventKey] or "No significant events today." | local event = events[eventKey] or "No significant events today." | ||
local | local dailyProverb = zodiacProverbs[zodiac] | ||
return dayOfYear .. ", " .. month .. " (" .. zodiac .. "), " .. psscYear .. " PSSC – " .. event .. " – Proverb: " .. dailyProverb | |||
return dayOfYear .. ", " .. month .. " ( | |||
end | end | ||
return p | return p |
Revision as of 03:32, 11 December 2024
Documentation for this module may be created at Module:BassaridianCalendar/doc
local p = {} function p.getCurrentDate() local startDate = os.time({year = 1999, month = 8, day = 6}) local secondsInDay = 86400 local daysPerYear = 183 local currentDate = os.time() local totalDaysElapsed = math.floor((currentDate - startDate) / secondsInDay) local yearFraction = totalDaysElapsed / daysPerYear local psscYear = math.floor(yearFraction) local dayOfYear = math.floor((yearFraction - psscYear) * daysPerYear) + 1 local zodiacProverbs = { Atosien = "The first light reveals the sacred cycle of renewal.", Eosena = "The dawn whispers: every step is a rebirth.", Micrasha = "Wisdom is the balance of shadow and flame.", Pyreska = "Creation ignites in the fires of transformation.", Indomin = "Two paths intertwine: strength in unity, clarity in duality.", Chrysen = "Gold is the soul's test: will you hoard or share?", Thalassian = "The tides of Thalassiel teach patience and purpose.", Nephelia = "Dreams are stars, fleeting yet eternal in the night sky.", Glinaeus = "The frost preserves what must endure.", Noctien = "Night guides those who seek the unseen truths.", Opsithia = "The harvest feeds not just the body, but the spirit.", Stygian = "Through the Styx flows the essence of transformation.", Faunian = "The forests sing of life and the balance it brings.", Silenian = "Celebration is the nectar of divine abundance.", Catosien = "Order shapes greatness; the straight path ascends." } local month, dayInMonth, zodiac if dayOfYear <= 61 then month = "Atosiel" dayInMonth = dayOfYear if dayInMonth <= 12 then zodiac = "Atosien" elseif dayInMonth <= 24 then zodiac = "Eosena" elseif dayInMonth <= 36 then zodiac = "Micrasha" elseif dayInMonth <= 48 then zodiac = "Pyreska" else zodiac = "Indomin" end elseif dayOfYear <= 122 then month = "Thalassiel" dayInMonth = dayOfYear - 61 if dayInMonth <= 12 then zodiac = "Chrysen" elseif dayInMonth <= 24 then zodiac = "Thalassian" elseif dayInMonth <= 36 then zodiac = "Nephelia" elseif dayInMonth <= 48 then zodiac = "Glinaeus" else zodiac = "Noctien" end else month = "Opsitheiel" dayInMonth = dayOfYear - 122 if dayInMonth <= 12 then zodiac = "Opsithia" elseif dayInMonth <= 24 then zodiac = "Stygian" elseif dayInMonth <= 36 then zodiac = "Faunian" elseif dayInMonth <= 48 then zodiac = "Silenian" else zodiac = "Catosien" end end local events = { ["Atosiel,6"] = "Bayram al-Nur (Festival of Light) [Vaeringheim]", ["Atosiel,18"] = "Chag Or Hadash (Festival of New Light) [Luminaria]", ["Atosiel,30"] = "Symposion Eirinis (Symposium of Harmony) [Serena]", ["Atosiel,43"] = "Alev Günü (Day of Flame) [Pyralis]", ["Atosiel,55"] = "Tikkun Tzel (Repair of Shadows) [Symphonara]", ["Thalassiel,67"] = "Panegyris Chrysou (Golden Gathering) [Aurelia]", ["Thalassiel,80"] = "Mehtap Dalgası (Moonlit Tide) [Vaeringheim]", ["Thalassiel,92"] = "Oneiro Foteino (Dream of Illumination) [Somniumpolis]", ["Thalassiel,105"] = "Erev Galgal (Eve of Cycles) [Nexa]", ["Thalassiel,115"] = "Leilat al-Kamar (Night of the Moon) [Lunalis Sancta]", ["Opsitheiel,128"] = "Chag Tvuah (Festival of Harvest) [Sylvapolis]", ["Opsitheiel,140"] = "Anagenesis Eirmos (Procession of Rebirth) [Acheron]", ["Opsitheiel,150"] = "Panagia Therizis (Holy Day of the Reaper) [Sylvapolis]", ["Opsitheiel,165"] = "Karnavali Thysias (Carnival of Celebration) [Erythros]", ["Opsitheiel,175"] = "Sefar Yashar (Straight Path Celebration) [Catonis Atrium]" } local eventKey = month .. "," .. dayInMonth local event = events[eventKey] or "No significant events today." local dailyProverb = zodiacProverbs[zodiac] return dayOfYear .. ", " .. month .. " (" .. zodiac .. "), " .. psscYear .. " PSSC – " .. event .. " – Proverb: " .. dailyProverb end return p