Module:Keppel date/doc: Difference between revisions
From Amaranth Legacy, available at amaranth-legacy.community
More actions
Content deleted Content added
Tesinormed (talk | contribs) No edit summary Tag: 2017 source edit |
Tesinormed (talk | contribs) No edit summary Tag: 2017 source edit |
||
| Line 11: | Line 11: | ||
First, we define the following: |
First, we define the following: |
||
;Earth leap year |
|||
:<math mode="display">\text{year} \bmod{400}</math> |
|||
:<math mode="display">\text{year} \bmod{4}\text{ and not }\text{year} \bmod{100}</math> |
|||
;<code>ydayMaxEarth</code> |
;<code>ydayMaxEarth</code> |
||
:If it is an Earth leap year, 366; else, 365. |
:If it is an Earth leap year, 366; else, 365. |
||
| Line 27: | Line 30: | ||
:<math mode="display">\frac{\text{ydayMax} * (\text{yday} - \text{rolloverOffset})}{\text{ydayMaxEarth}}</math> |
:<math mode="display">\frac{\text{ydayMax} * (\text{yday} - \text{rolloverOffset})}{\text{ydayMaxEarth}}</math> |
||
;<code>yday</code> |
;<code>yday</code> |
||
:<math mode="display">\text{ydayPre} \ |
:<math mode="display">\text{ydayPre} \bmod{\text{ydayMaxEarth}}</math> |
||
:If <code>yday</code> is between zero (inclusive) and one (exclusive), then <code>yday</code> is <code>ydayMax</code>. |
:If <code>yday</code> is between zero (inclusive) and one (exclusive), then <code>yday</code> is <code>ydayMax</code>. |
||
;<code>lythryd</code> |
;<code>lythryd</code> |
||
:<math mode="display">\lceil \frac{\text{yday}}{32} \rceil</math> |
:<math mode="display">\lceil \frac{\text{yday}}{32} \rceil</math> |
||
;<code>day</code> |
;<code>day</code> |
||
:<math mode="display">\lfloor \text{yday} - \text{lythryd} * 32 \ |
:<math mode="display">\lfloor \text{yday} - \text{lythryd} * 32 \bmod{32} \rfloor</math> |
||
<includeonly>[[Category:Modules: tesinormed]]</includeonly> |
<includeonly>[[Category:Modules: tesinormed]]</includeonly> |
||
Revision as of 21:56, 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:
- Earth leap year
- \text{year} \bmod{400}
- \text{year} \bmod{4}\text{ and not }\text{year} \bmod{100}
ydayMaxEarth- If it is an Earth leap year, 366; else, 365.
ydayMax- Start with 389.
- 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- \text{year} - 892
- If
ydayPreis less than zero, subtract one. ydayPre- \frac{\text{ydayMax} * (\text{yday} - \text{rolloverOffset})}{\text{ydayMaxEarth}}
yday- \text{ydayPre} \bmod{\text{ydayMaxEarth}}
- If
ydayis between zero (inclusive) and one (exclusive), thenydayisydayMax. lythryd- \lceil \frac{\text{yday}}{32} \rceil
day- \lfloor \text{yday} - \text{lythryd} * 32 \bmod{32} \rfloor