Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
You must create an account or log in to edit.

Module:Keppel date/doc: Difference between revisions

From Amaranth Legacy, available at amaranth-legacy.community
Content deleted Content added
No edit summary
Tag: 2017 source edit
No edit summary
Tag: 2017 source edit
Line 1: Line 1:
__NOTOC__
Converts the current (or provided) date to a Keppel date.
Converts the current (or provided) date to a Keppel date.
Used by [[Template:Keppel date]].
Used by [[Template:Keppel date]].

Revision as of 21:46, March 4, 2025

Converts the current (or provided) date to a Keppel date. Used by Template:Keppel date.

Algorithm

Begin with the following inputs:

year
The current year in the Gregorian calendar.
yday
The current day of the year in the Gregorian calendar.

First, we define the following:

ydayMaxEarth
If it is an Earth leap year, 366; else, 365.
ydayMax
Start with 389.
If it is an Earth leap year, add one.
If it is a Keppel leap year (schedule 1), add one.
If it is a Keppel leap year (schedule 2), add one.
rolloverOffset
If it is an Earth leap year, 79; else, 78.

To calculate the result:

year
Start with the current year minus 892.
If ydayPre is less than zero, subtract one.
ydayPre
\frac{\text{ydayMax} * (\text{yday} - \text{rolloverOffset})}{\text{ydayMaxEarth}}
yday
\text{ydayPre} \pmod{\text{ydayMaxEarth}}
If yday is between zero (inclusive) and one (exclusive), then yday is ydayMax.
lythryd
\lceil \frac{\text{yday}}{32} \rceil
day
\lfloor \text{yday} - \text{lythryd} * 32 \pmod{32} \rfloor