\(\def\|{&}\DeclareMathOperator{\D}{\bigtriangleup\!} \DeclareMathOperator{\d}{\text{d}\!}\)
\( \DeclareMathOperator{\Div}{div} \DeclareMathOperator{\bdom}{dom} \DeclareMathOperator{\gcd}{gcd} \DeclareMathOperator{\lcm}{lcm} \DeclareMathOperator{\trunc}{trunc} \def\beqvide#1{\text{vide \eqref{#1}}} \def\dabs#1{\left| #1 \right|} \def\dceil#1{\left\lceil #1 \right\rceil} \def\dceilp#1#2{\left\lceil #1 \right\rceil_{#2}} \def\dceilratio#1#2{\dceil{\dfrac{#1}{#2}}} \def\ddom#1{\left\lceil #1 \right\rfloor} \def\ddomp#1#2{\left\lceil #1 \right\rfloor_{#2}} \def\dfloor#1{\left\lfloor #1 \right\rfloor} \def\dfloorp#1#2{\left\lfloor #1 \right\rfloor_{#2}} \def\dfloorratio#1#2{\dfloor{\dfrac{#1}{#2}}} \def\dmod#1{\left\lfloor #1 \right\rceil} \def\dmodp#1#2{\left\lfloor #1 \right\rceil_{#2}} \def\dom1ratio#1#2{\left\lceil \dfrac{#1}{#2} \right\rfloor} \def\dparen#1{\left( #1 \right)} \def\eqavide#1{\|\text{(vide \eqref{#1})}} \def\eqvide#1{\qquad\text{(vide \eqref{#1})}} \def\iverson#1{\left[#1\right]} \def\mod1ratio#1#2{\left\lfloor \dfrac{#1}{#2} \right\rceil} \def\range#1#2{\boxed{#1}_{(1/#2)}} \def\vide#1{\qquad\text{(vide #1)}} \)
In sterrenkundige formules waar de datum in voorkomt is het onhandig om die datum te meten in jaren, maanden, en dagen, vooral ook omdat niet alle jaren evenveel dagen bevatten en ook niet alle maanden evenveel dagen bevatten. Het is veel handiger om de datum te meten als het aantal dagen sinds een vast beginpunt. Het Juliaanse Dagnummer (JDN) of de Juliaanse Dag (JD) en zijn soortgenoten worden hiervoor in de sterrenkunde veel gebruikt. Deze bladzijde legt uit hoe je een datum uit verschillende kalenders naar de Juliaanse Dag kunt vertalen, of andersom.
Het eerste deel van deze bladzijde geeft rekenrecepten voor een paar moderne en historische kalenders. Het tweede deel (vanaf hoofdstuk 13) legt uit hoe ik die recepten afleidde.
Er zijn veel verschillende algoritmen in omloop voor het omrekenen tussen kalenderdata en dagnummers. Het enige dat telt is dat ze voor alle dagnummers en kalenderdata de goede uitkomsten moeten geven. Als er slechts een beperkt aantal invoerwaarden en mogelijke uitkomsten zijn (bijvoorbeeld voor het omrekenen van het dagnummer-in-het-jaar naar een maandnummer en een dagnummer-in-de-maand) dan kun je meestal veel verschillende algoritmen bedenken die allemaal voor die bepaalde invoerwaarden precies de juiste uitkomsten geven (maar misschien heel verschillende uitkomsten voor alle andere invoerwaarden), zelfs al is er helemaal geen logisch verband tussen dat algoritme en de kalender. In zo'n geval is er vaak ook weinig of geen logisch verband tussen het algoritme van dagnummer naar datum en het algoritme van datum naar dagnummer, maar kunnen de algoritmen wel wat korter zijn.
Bij elk algoritme moet je weten voor welke invoerwaarden het ontworpen was. Sommige kalenderalgoritmen werken alleen goed met positieve getallen en geven foute resultaten voor negatieve jaren of dagnummers. De algoritmen die ik hieronder geef zijn ontworpen om voor alle jaren (ook negatieve), alle maanden in elk jaar, alle dagen in elke maand, en alle Juliaanse dagnummers (ook negatieve) goed te werken.
Sommige van de formules drukken een keuze uit: Als aan een bepaalde voorwaarde voldaan is dan moet een bepaalde handeling gedaan worden (bijvoorbeeld ergens een correctie op toepassen), en als aan die voorwaarde niet voldaan is dan moet een andere of helemaal geen handeling gedaan worden. Zulke alternatieve paden zijn prima te gebruiken in handmatige berekeningen, in applicaties die één datum per keer behandelen, en in applicaties die geschreven zijn in een programmeertaal die gecompileerd moet worden voordat het programma uitgevoerd kan worden (bijvoorbeeld geschreven in C of Fortran) maar zijn niet zo handig voor gebruik in applicaties die meerdere datums tegelijk kunnen behandelen (in een rij) en die geschreven zijn in een programmeertaal die direct uitgevoerd wordt (zoals Basic of Perl of IDL), waarvoor het uitvoeren van een als-danopdracht per datum veel trager is dan het uitvoeren van steeds dezelfde vaste berekening per datum voor een rij van datums.
Als de kalenderberekeningen die hieronder staan zulke keuzes bevatten, dan geef ik waar mogelijk een formule die als-danopdrachten omzeilt en daarmee geschikt is voor toepassing op rijen van datums in directe-uitvoerprogrammeertalen. De begeleidende tekst maakt dan duidelijk wat de keuze was waar de formule omheenwerkt.
Voor sterrenkundige berekeningen die van de tijd afhangen is het handig om een doorlopende tijdschaal te hebben die maar één eenheid gebruikt, en niet drie zoals de meeste kalenders (dagen, maanden, jaren), en die bovendien een vaste tijdzone gebruiken zodat er geen verwarring kan zijn over welk moment nu precies bedoeld wordt.
De IAU heeft hiervoor de Juliaanse Datum (JD) geadopteerd, niet te verwarren met "een datum in de Juliaanse kalender". Er zijn verschillende andere tijdschalen die lijken op JD. De volgende tabel noemt er een aantal.
Naam | Soort | Begint | Vanaf JD | |
---|---|---|---|---|
JD | Juliaanse Datum | Gebroken | 12:00 UTC | |
JDN | Juliaanse Dagnummer | Heel | 12:00 UTC | = ⌊JD⌋ |
CJD | Chronologische Juliaanse Datum | Gebroken | 00:00 LT | = JD + 0.5 + TZ |
CJDN | Chronologische Juliaanse Dagnummer | Heel | 00:00 LT | = ⌊JD + 0.5 + TZ⌋ |
"Heel" betekent dat die tijdschaal alleen hele getallen gebruikt en alleen hele dagen telt. "Gebroken" betekent dat die tijdschaal ook gebroken getallen gebruikt (met cijfers achter de komma) en tijdstippen aangeeft. De "Begint"-kolom laat zien hoe laat elke volgende kalenderdag begint. 12:00 UTC betekent dat een nieuwe kalenderdag begint op 12:00 universele tijd, dus niet om 12:00 uur lokale tijd ― behalve als je toevallig in een tijdzone bent die UTC aanhoudt. Groot-Brittannië houdt in de winter UTC aan. 00:00 LT betekent dat een nieuwe kalenderdag begint om middernacht lokale tijd. De "Vanaf JD"-kolom toont hoe de andere getallen te berekenen zijn uit JD. Daarin staat "TZ" voor een aanpassing voor de lokale tijdzone; die aanpassing is 0 voor UTC.
In de praktijk worden "fractionele" JDs en CJDs meestal met tenminste één cijfer achter de komma geschreven (zelfs als dat een 0 is), en "hele" JDNs en CJDNs zonder komma met cijfers erachter.
Het nulpunt van JD (dus JD 0.0) komt overeen met 12:00 UTC op 1 januari −4712 in de Juliaanse kalender. Het nulpunt van CJD komt overeen met 00:00 lokale tijd op 1 januari −4712. JDN 0 komt overeen met de periode van 12:00 UTC op 1 januari −4712 tot 12:00 UTC op 2 januari −4712. CJDN 0 komt overeen met 1 januari −4712 (de hele dag, in lokale tijd).
JD | 2 455 772.0 | precies 14:00 uur op 29 juli 2011 |
JDN | 2 455 772 | van 14:00 uur op 29 juli 2011 tot 14:00 uur op 30 juli 2011 |
CJD | 2 455 772.0 | precies 00:00 uur op 29 juli 2011 |
CJDN | 2 455 772 | de hele kalenderdag 29 juli 2011 |
Om afrondfouten te voorkomen zijn kalenderberekeningen het beste te doen met alleen hele getallen. Hieronder gebruiken we daarvoor CJDN.
In de formules die hieronder staan worden veel getallen afgerond naar een heel getal. Het is hierbij belangrijk dat die getallen in de juiste richting worden afgerond. Hele getallen zijn al afgerond, dus die veranderen niet.
De afrondigen die wij hier gebruiken zijn afronding naar beneden naar het dichtsbijzijnde hele getal (voor \(x \) aangegeven als \( ⌊x⌋ \)) of naar boven naar het dichtstbijzijnde hele getal (\( ⌈x⌉ \)). De standaard-afrondfuncties op rekenmachines ronden meestal af naar het dichtstbijzijnde hele getal (dat noteren wij hier als \( [x] \)), en de standaardconversies van een gebroken getal naar een heel getal in computertalen ronden meestal af in de richting van nul (dat noteren wij als \( \trunc(x) \)). Die soorten afronding moeten we hier niet hebben! De onderstaande tabel toont deze drie verschillende soorten afronding voor een aantal getallen.
\({x}\) | \({⌊x⌋}\) | \({[x]}\) | \({⌈x⌉}\) | \({\trunc(x)}\) |
---|---|---|---|---|
−5 | −5 | −5 | −5 | −5 |
−4.9 | −5 | −5 | −4 | −4 |
−4.2 | −5 | −4 | −4 | −4 |
−4 | −4 | −4 | −4 | −4 |
−0.2 | −1 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 |
0.2 | 0 | 0 | 1 | 0 |
4 | 4 | 4 | 4 | 4 |
4.2 | 4 | 4 | 5 | 4 |
4.9 | 4 | 5 | 5 | 4 |
5 | 5 | 5 | 5 | 5 |
Als je het hele getal \( y \) deelt door het hele getal \( x \gt 0 \) dan krijg je een quotiënt \( q \) en een rest \( r \). Soms hebben we interesse voor het quotiënt, en soms voor de rest. Wij kiezen ervoor dat de rest nooit negatief is. Dan is \( 0 ≤ r \lt x \) en
\begin{align} q \| = \dfloorratio{y}{x} \\ r \| = y \bmod x = y − x\dfloorratio{y}{x} = \dmodp{y}{x} \\ y \| = qx + r \end{align}
De notaties \( y \bmod x \) en \( \dmodp{y}{x} \) betekenen: de niet-negatieve rest die overblijft bij deling van \( y \) door \( x \).
We vinden
\begin{equation} \frac{y}{x} = \dfloorratio{y}{x} + \left( \frac{y}{x} \bmod 1 \right) = \dfloorratio{y}{x} + \frac{y \bmod x}{x} = \dfloorratio{y}{x} + \dmod{\dfrac{y}{x}} \end{equation}
en als \( x = 1 \) dan
\begin{equation} y = \dfloor{y} + (y \bmod 1) = \dfloor{y} + \dmod{y} \end{equation}
waarbij
\begin{equation} \dmod{y} ≝ \dmodp{y}{1} \end{equation}
De notatie \( x ≡ y \pmod{n} \) betekent dat \( x \) en \( y \) een veelvoud van \( n \) verschillen. Men zegt dan dat \( x \) en \( y \) congruent zijn modulo \( n \), en noemt \( n \) de modulus. De vergelijking \( x ≡ y \pmod{n} \) heet een congruentie.
Modulair rekenen is rekenen waarbij alle berekeningen modulo een vaste \( n \) zijn. Dat betekent dat je van alle termen en factoren willekeurige veelvouden (inclusief 0) van de modulus mag aftrekken zonder de congruentie te veranderen. Als \( x ≡ y \pmod{n} \) en \( p \) is een heel getal, dan is ook \( x + pn ≡ y \pmod{n} \), en \( px ≡ py \pmod{n} \), en ook \( px ≡ py \pmod{pn} \).
Let op het verschil in notatie: \( z = x \bmod y = \dmodp{x}{y} \) betekent dat \( z \) gelijk is aan de rest bij deling van \( x \) door \( y \), en \( z ≡ x \pmod{y} \) betekent dat \( z \) gelijk is aan \( x \) afgezien van een willekeurig veelvoud van \( y \). Als \( z = x \bmod y \) dan is ook \( z ≡ x \pmod{y} \), maar andersom hoeft dat niet zo te zijn.
In onderstaande formules gebruik ik de volgende symbolen:
\begin{align} x \| = q y + r \\ q \| = \dfloorratio{x}{y} \\ r \| = \dmodp{x}{y} = x \bmod y \end{align}
Onderstaande kalenderformules (tot aan maar zonder hoofdstuk 13) zijn bruikbaar in computerprogramma's gebaseerd op hele getallen van 32 (of meer) bits breed (zoals het datatype int32_t uit de programmeertalen C en C++), tenminste voor alle dagen van jaar −12 000 tot en met jaar 12 000. Voor dagen die verder in het verleden of in de toekomst liggen zijn misschien aanpassingen nodig. Zie daarvoor hoofdstuk 13.
Zie hoofdstuk 14.3.1 voor de afleiding van dit algoritme.
De Gregoriaanse kalender is in de meeste landen (ook in de EU) de officiële kalender voor administratieve doeleinden. De Gregoriaanse kalender is gebaseerd op de Juliaanse kalender (zie hoofdstuk 5), met een kleine aanpassing om de kalender nauwkeuriger de seizoenen te laten volgen, en een verschuiving van 10 dagen om een deel van de langzaam opgebouwde afwijking in de Juliaanse kalender van de voorafgaande 16 eeuwen te corrigeren.
De Gregoriaanse kalender werd afgekondigd door paus Gregorius XIII voor gebruik in katholieke landen vanaf vrijdag 15 oktober 1582 (Gregoriaans) = CJDN 2 299 161, de dag die volgde op donderdag 4 oktober 1582 (Juliaans) = CJDN 2 299 160. Geleidelijk aan zijn steeds meer steden/streken/landen overgestapt op de Gregoriaanse kalender, maar de geschiedenis daarvan is ingewikkeld.
Het algoritme om een Gregoriaanse datum (kalenderjaar \( a \), kalendermaand \( m \), kalenderdag \( d \)) om te rekenen naar CJDN \( J \) is:
\begin{align} \{ α_1, m_1 \} \| = \Div(m − 3, 12) \\ a_1 \| = a + α_1 \\ \{ c_1, a_2 \} \| = \Div(a_1, 100) \\ d_1 \| = \dfloorratio{153 m_1 − 3}{5} + d \\ d_2 \| = \dfloorratio{36525 a_2}{100} + d_1 \\ s \| = \dfloorratio{146 097 c_1}{4} + d_2 \\ J \| = s + 1 721 120 \end{align}
In die formules:
\begin{align*} \{ α_1, m_1 \} \| = \Div(m − 3, 12) = \Div(7 − 3, 12) = \Div(4, 12) = \{ 0, 4 \} \\ a_1 \| = a + α_1 = 2003 + 0 = 2003 \\ \{ c_1, a_2 \} \| = \Div(a_1, 100) = \Div(2003, 100) = \{ 20, 3 \} \\ d_1 \| = \dfloorratio{153 m_1 − 3}{5} + d = \dfloorratio{153×4 − 3}{5} + 6 \\ \| = \dfloorratio{609}{5} + 6 = 121 + 6 = 127 \\ d_2 \| = \dfloorratio{36525 a_2}{100} + d_1 = \dfloorratio{36525×3}{100} + 127 \\ \| = \dfloorratio{109 575}{100} + 127 = 1095 + 127 = 1222 \\ s \| = \dfloorratio{146 097 c_1}{4}{4} + d_2 + \dfloorratio{146 097×20}{4} + 1222 \\ \| = \dfloorratio{2 921 940}{4} + 1222 + 730 485 + 1222 = 731 707 \\ J \| = s + 1 721 120 = 731 707 + 1 721 120 = 2 452 827 \end{align*}
Nog wat meer voorbeelden:
\({a}\) | \({m}\) | \({d}\) | \({α_1}\) | \({m_1}\) | \({a_1}\) | \({c_1}\) | \({a_2}\) | \({d_1}\) | \({d_2}\) | \({s}\) | \({J}\) |
---|---|---|---|---|---|---|---|---|---|---|---|
−4713 | 11 | 23 | 0 | 8 | −4713 | −48 | 87 | 359 | 32135 | −1721029 | 91 |
−4713 | 11 | 24 | 0 | 8 | −4713 | −48 | 87 | 360 | 32136 | −1721028 | 92 |
−4713 | 11 | 25 | 0 | 8 | −4713 | −48 | 87 | 361 | 32137 | −1721027 | 93 |
−1 | 12 | 31 | 0 | 9 | −1 | −1 | 99 | 397 | 36556 | 31 | 1721151 |
0 | 1 | 1 | −1 | 10 | −1 | −1 | 99 | 31 | 36190 | −335 | 1720785 |
0 | 2 | 28 | −1 | 11 | −1 | −1 | 99 | 88 | 36247 | −278 | 1720842 |
0 | 2 | 29 | −1 | 11 | −1 | −1 | 99 | 89 | 36248 | −277 | 1720843 |
0 | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 92 | 92 | 92 | 1721212 |
0 | 12 | 31 | 0 | 9 | 0 | 0 | 0 | 397 | 397 | 397 | 1721517 |
1 | 1 | 1 | −1 | 10 | 0 | 0 | 0 | 31 | 31 | 31 | 1721151 |
1582 | 10 | 14 | 0 | 7 | 1582 | 15 | 82 | 319 | 30269 | 578132 | 2299252 |
1582 | 10 | 15 | 0 | 7 | 1582 | 15 | 82 | 320 | 30270 | 578133 | 2299253 |
1600 | 2 | 28 | −1 | 11 | 1599 | 15 | 99 | 88 | 36247 | 584110 | 2305230 |
1600 | 2 | 29 | −1 | 11 | 1599 | 15 | 99 | 89 | 36248 | 584111 | 2305231 |
1600 | 3 | 1 | 0 | 0 | 1600 | 16 | 0 | 92 | 92 | 584480 | 2305600 |
1900 | 2 | 28 | −1 | 11 | 1899 | 18 | 99 | 88 | 36247 | 693683 | 2414803 |
1900 | 3 | 1 | 0 | 0 | 1900 | 19 | 0 | 92 | 92 | 694052 | 2415172 |
1999 | 12 | 31 | 0 | 9 | 1999 | 19 | 99 | 397 | 36556 | 730516 | 2451636 |
2000 | 1 | 1 | −1 | 10 | 1999 | 19 | 99 | 31 | 36190 | 730150 | 2451270 |
2000 | 2 | 28 | −1 | 11 | 1999 | 19 | 99 | 88 | 36247 | 730207 | 2451327 |
2000 | 2 | 29 | −1 | 11 | 1999 | 19 | 99 | 89 | 36248 | 730208 | 2451328 |
2000 | 3 | 1 | 0 | 0 | 2000 | 20 | 0 | 92 | 92 | 730577 | 2451697 |
2003 | 7 | 6 | 0 | 4 | 2003 | 20 | 3 | 219 | 1314 | 731799 | 2452919 |
2800 | 2 | 28 | −1 | 11 | 2799 | 27 | 99 | 88 | 36247 | 1022401 | 2743521 |
2800 | 2 | 29 | −1 | 11 | 2799 | 27 | 99 | 89 | 36248 | 1022402 | 2743522 |
2800 | 3 | 1 | 0 | 0 | 2800 | 28 | 0 | 92 | 92 | 1022771 | 2743891 |
Merk op dat het jaar 1900 wel een schrikkeljaar was in de Juliaanse kalender (hoofdstuk 14.2) maar niet in de Gregoriaanse kalender.
Merk op dat het jaar 1600 wel een schrikkeljaar was in de Gregoriaanse kalender maar niet in de Milanković-kalender (hoofdstuk 14.4). En dat het jaar 2900 wel een schrikkeljaar is in de Milanković-kalender maar niet in de Gregoriaanse kalender.
Het algoritme om van een CJDN \( J \) om te rekenen naar een Gregoriaanse datum (kalenderjaar \( a \), kalendermaand \( m \), kalenderdag \( d \)) is:
\begin{align} s \| = J − 1 721 120 \\ \{ c_1, ω_3 \} \| = \Div(4 s + 3, 146 097) \\ d_2 \| = \dfloorratio{ω_3}{4} \\ \{ a_2, ω_4 \} \| = \Div(100 d_2 + 99, 36525) \\ d_1 \| = \dfloorratio{ω_4}{100} \\ \{ m_1, ω_5 \} \| = \Div(5 d_1 + 2, 153) \\ d_0 \| = \dfloorratio{ω_5}{5} \\ \{ α_1, m_0 \} \| = \Div(m_1 + 2, 12) \\ a_1 \| = 100 c_1 + a_2 \\ a \| = a_1 + α_1 \\ m \| = m_0 + 1 \\ d \| = d_0 + 1 \end{align}
In die formules:
\begin{align*} s \| = J − 1 721 120 = 2 452 827 − 1 721 120 = 731 707 \\ \{ c_1, ω_3 \} \| = \Div(4 s + 3, 146 097) = \Div(4×731 707 + 3, 146 097) \\ \| = \Div(2 926 831, 146 097) = \{ 20, 4891 \} \\ d_2 \| = \dfloorratio{ω_3}{4} = \dfloorratio{4891}{4} = 1222 \\ \{ a_2, ω_4 \} \| = \Div(100 d_2 + 99, 36525) = \Div(100×1222 + 99, 36525) \\ \| = \Div(122 299, 36525) = \{ 3, 12724 \} \\ d_1 \| = \dfloorratio{ω_4}{100} = \dfloorratio{12724}{100} = 127 \\ \{ m_1, ω_5 \} \| = \Div(5 d_1 + 2, 153) = \Div(5×127 + 2, 153) \\ \| = \Div(637, 153) = \{ 4, 25 \} \\ \{ α_1, m_0 \} \| = \Div(m_1 + 2, 12) = \Div(6, 12) = \{ 0, 6 \} \\ a_1 \| = 100 c_1 + a_2 = 100×20 + 3 = 2003 \\ a \| = a_1 + α_1 = 2003 + 0 = 2003 \\ m \| = m_0 + 1 = 6 + 1 = 7 \\ d \| = \dfloorratio{ω_5}{5} + 1 = \dfloorratio{25}{5} + 1 = 5 + 1 = 6 \end{align*}
De datum is 6 juli 2003.
Hier zijn nog wat voorbeelden:
\({J}\) | \({s}\) | \({c_1}\) | \({ω_3}\) | \({d_2}\) | \({a_2}\) | \({ω_4}\) | \({d_1}\) | \({m_1}\) | \({ω_5}\) | \({α_1}\) | \({m_0}\) | \({a_1}\) | \({a}\) | \({m}\) | \({d}\) |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
−1 | −1721121 | −48 | 128175 | 32043 | 87 | 26724 | 267 | 8 | 113 | 0 | 10 | −4713 | −4713 | 11 | 114 |
0 | −1721120 | −48 | 128179 | 32044 | 87 | 26824 | 268 | 8 | 118 | 0 | 10 | −4713 | −4713 | 11 | 119 |
1 | −1721119 | −48 | 128183 | 32045 | 87 | 26924 | 269 | 8 | 123 | 0 | 10 | −4713 | −4713 | 11 | 124 |
1721059 | −61 | −1 | 145856 | 36464 | 99 | 30524 | 305 | 9 | 150 | 0 | 11 | −1 | −1 | 12 | 151 |
1721060 | −60 | −1 | 145860 | 36465 | 99 | 30624 | 306 | 10 | 2 | 1 | 0 | −1 | 0 | 1 | 3 |
1721118 | −2 | −1 | 146092 | 36523 | 99 | 36424 | 364 | 11 | 139 | 1 | 1 | −1 | 0 | 2 | 140 |
1721119 | −1 | −1 | 146096 | 36524 | 99 | 36524 | 365 | 11 | 144 | 1 | 1 | −1 | 0 | 2 | 145 |
1721120 | 0 | 0 | 3 | 0 | 0 | 99 | 0 | 0 | 2 | 0 | 2 | 0 | 0 | 3 | 3 |
1721425 | 305 | 0 | 1223 | 305 | 0 | 30599 | 305 | 9 | 150 | 0 | 11 | 0 | 0 | 12 | 151 |
1721426 | 306 | 0 | 1227 | 306 | 0 | 30699 | 306 | 10 | 2 | 1 | 0 | 0 | 1 | 1 | 3 |
2299160 | 578040 | 15 | 120708 | 30177 | 82 | 22749 | 227 | 7 | 66 | 0 | 9 | 1582 | 1582 | 10 | 67 |
2299161 | 578041 | 15 | 120712 | 30178 | 82 | 22849 | 228 | 7 | 71 | 0 | 9 | 1582 | 1582 | 10 | 72 |
2305506 | 584386 | 15 | 146092 | 36523 | 99 | 36424 | 364 | 11 | 139 | 1 | 1 | 1599 | 1600 | 2 | 140 |
2305507 | 584387 | 15 | 146096 | 36524 | 99 | 36524 | 365 | 11 | 144 | 1 | 1 | 1599 | 1600 | 2 | 145 |
2305508 | 584388 | 16 | 3 | 0 | 0 | 99 | 0 | 0 | 2 | 0 | 2 | 1600 | 1600 | 3 | 3 |
2415079 | 693959 | 18 | 146093 | 36523 | 99 | 36424 | 364 | 11 | 139 | 1 | 1 | 1899 | 1900 | 2 | 140 |
2415080 | 693960 | 19 | 0 | 0 | 0 | 99 | 0 | 0 | 2 | 0 | 2 | 1900 | 1900 | 3 | 3 |
2451544 | 730424 | 19 | 145856 | 36464 | 99 | 30524 | 305 | 9 | 150 | 0 | 11 | 1999 | 1999 | 12 | 151 |
2451545 | 730425 | 19 | 145860 | 36465 | 99 | 30624 | 306 | 10 | 2 | 1 | 0 | 1999 | 2000 | 1 | 3 |
2451603 | 730483 | 19 | 146092 | 36523 | 99 | 36424 | 364 | 11 | 139 | 1 | 1 | 1999 | 2000 | 2 | 140 |
2451604 | 730484 | 19 | 146096 | 36524 | 99 | 36524 | 365 | 11 | 144 | 1 | 1 | 1999 | 2000 | 2 | 145 |
2451605 | 730485 | 20 | 3 | 0 | 0 | 99 | 0 | 0 | 2 | 0 | 2 | 2000 | 2000 | 3 | 3 |
2452827 | 731707 | 20 | 4891 | 1222 | 3 | 12724 | 127 | 4 | 25 | 0 | 6 | 2003 | 2003 | 7 | 26 |
2743797 | 1022677 | 27 | 146092 | 36523 | 99 | 36424 | 364 | 11 | 139 | 1 | 1 | 2799 | 2800 | 2 | 140 |
2743798 | 1022678 | 27 | 146096 | 36524 | 99 | 36524 | 365 | 11 | 144 | 1 | 1 | 2799 | 2800 | 2 | 145 |
2743799 | 1022679 | 28 | 3 | 0 | 0 | 99 | 0 | 0 | 2 | 0 | 2 | 2800 | 2800 | 3 | 3 |
Merk op dat het jaar 1900 wel een schrikkeljaar was in de Juliaanse kalender (hoofdstuk 14.2) maar niet in de Gregoriaanse kalender.
Merk op dat de jaren 1600 en 2800 wel schrikkeljaren zijn in de Gregoriaanse kalender maar niet in de Milanković-kalender (hoofdstuk 14.4).
Zie hoofdstuk 14.4 voor de afleiding van dit algoritme.
Sommige Oosters-Orthodoxe kerken gebruiken een kalender uitgevonden door Milutin Milanković, die alleen afwijkt van de Gregoriaanse kalender in de schrikkelregels voor eeuwjaren. Een algoritme om van een datum in de Milanković-kalender (kalenderjaar \( a \), kalendermaand \( m \), kalenderdag \( d \)) om te rekenen naar het CJDN \( J \) is:
\begin{align} \{ α_1, m_1 \} \| = \Div(m − 3, 12) \\ a_1 \| = a + α_1 \\ \{ c_1, a_2 \} \| = \Div(a_1, 100) \\ d_1 \| = \dfloorratio{153 m_1 − 3}{5} + d \\ d_2 \| = \dfloorratio{36525 a_2}{100} + d_1 \\ s \| = \dfloorratio{328 718 c_1 + 6}{9} + d_2 \\ J \| = s + J_0 = s + 1 721 120 \end{align}
In die formules:
\begin{align*} \{ α_1, m_1 \} \| = \Div(m − 3, 12) = \Div(9 − 3, 12) = \Div(6, 12) = \{ 0, 6 \} \\ a_1 \| = a + α_1 = 2010 + 0 = 2010 \\ \{ c_1, a_2 \} \| = \Div(a_1, 100) = \Div(2010, 100) = \{ 20, 10 \} \\ d_1 \| = \dfloorratio{153 m_1 − 3}{5} + d = \dfloorratio{153×6 − 3}{5} + 7 \\ \| = \dfloorratio{915}{5} + 7 = 183 + 7 = 190 \\ d_2 \| = \dfloorratio{36525 a_2}{100} + d_1 = \dfloorratio{36525×10}{100} + 190 \\ \| = \dfloorratio{365 250}{100} + 190 = 3652 + 190 = 3842 \\ s \| = \dfloorratio{328 718 c_1 + 6}{9} + d_2 = \dfloorratio{328 718×20 + 6}{9} + 3842 \\ \| = \dfloorratio{6 574 366}{9} + 3842 = 730 485 + 3842 = 734 327 \\ J \| = s + 1 721 119 = 734 327 + 1 721 120 = 2 455 447 \end{align*}
Nog wat meer voorbeelden:
\({a}\) | \({m}\) | \({d}\) | \({α_1}\) | \({m_1}\) | \({a_1}\) | \({c_1}\) | \({a_2}\) | \({d_1}\) | \({d_2}\) | \({s}\) | \({J}\) |
---|---|---|---|---|---|---|---|---|---|---|---|
−4713 | 11 | 21 | 0 | 8 | −4713 | −48 | 87 | 265 | 32041 | −1721121 | −1 |
−4713 | 11 | 22 | 0 | 8 | −4713 | −48 | 87 | 266 | 32042 | −1721120 | 0 |
−4713 | 11 | 23 | 0 | 8 | −4713 | −48 | 87 | 267 | 32043 | −1721119 | 1 |
−1 | 12 | 31 | 0 | 9 | −1 | −1 | 99 | 305 | 36464 | −60 | 1721060 |
0 | 1 | 1 | −1 | 10 | −1 | −1 | 99 | 306 | 36465 | −59 | 1721061 |
0 | 2 | 28 | −1 | 11 | −1 | −1 | 99 | 364 | 36523 | −1 | 1721119 |
0 | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1721120 |
0 | 12 | 31 | 0 | 9 | 0 | 0 | 0 | 305 | 305 | 305 | 1721425 |
1 | 1 | 1 | −1 | 10 | 0 | 0 | 0 | 306 | 306 | 306 | 1721426 |
1582 | 10 | 14 | 0 | 7 | 1582 | 15 | 82 | 227 | 30177 | 578041 | 2299161 |
1582 | 10 | 15 | 0 | 7 | 1582 | 15 | 82 | 228 | 30178 | 578042 | 2299162 |
1600 | 2 | 28 | −1 | 11 | 1599 | 15 | 99 | 364 | 36523 | 584387 | 2305507 |
1600 | 3 | 1 | 0 | 0 | 1600 | 16 | 0 | 0 | 0 | 584388 | 2305508 |
1900 | 2 | 28 | −1 | 11 | 1899 | 18 | 99 | 364 | 36523 | 693959 | 2415079 |
1900 | 3 | 1 | 0 | 0 | 1900 | 19 | 0 | 0 | 0 | 693960 | 2415080 |
1999 | 12 | 31 | 0 | 9 | 1999 | 19 | 99 | 305 | 36464 | 730424 | 2451544 |
2000 | 1 | 1 | −1 | 10 | 1999 | 19 | 99 | 306 | 36465 | 730425 | 2451545 |
2000 | 2 | 28 | −1 | 11 | 1999 | 19 | 99 | 364 | 36523 | 730483 | 2451603 |
2000 | 2 | 29 | −1 | 11 | 1999 | 19 | 99 | 365 | 36524 | 730484 | 2451604 |
2000 | 3 | 1 | 0 | 0 | 2000 | 20 | 0 | 0 | 0 | 730485 | 2451605 |
2003 | 7 | 6 | 0 | 4 | 2003 | 20 | 3 | 127 | 1222 | 731707 | 2452827 |
2800 | 2 | 28 | −1 | 11 | 2799 | 27 | 99 | 364 | 36523 | 1022677 | 2743797 |
2800 | 3 | 1 | 0 | 0 | 2800 | 28 | 0 | 0 | 0 | 1022678 | 2743798 |
Merk op dat de jaren 1600 en 2800 wel schrikkeljaren zijn in de Gregoriaanse kalender (hoofdstuk 14.3) maar niet in de Milanković-kalender.
Een algoritme om CJDN \( J \) om te rekenen naar jaar \( a \), maand \( m \), dag \( d \) in de Milanković-kalender is:
\begin{align} s \| = J − 1 721 120 \\ \{ c_1, ω_3 \} \| = \Div(9 s + 2, 328 718) \\ d_2 \| = \dfloorratio{ω_3}{9} \\ \{ a_2, ω_4 \} \| = \Div(100 d_2 + 99, 36525) \\ d_1 \| = \dfloorratio{ω_4}{100} \\ \{ m_1, ω_5 \} \| = \Div(5 d_1 + 2, 153) \\ d_0 \| = \dfloorratio{ω_5}{5} \\ a_1 \| = 100 c_1 + a_2 \\ \{ α_1, m_0 \} \| = \Div(m_1 + 2, 12) \\ a \| = a_1 + α_1 \\ m \| = m_0 + 1 \\ d \| = d_0 + 1 \end{align}
In die formules:
\begin{align*} s \| = J − 1 721 120 = 2 452 827 − 1 721 120 = 731 707 \\ \{ c_1, ω_3 \} \| = \Div(9 s + 2, 328 718) = \Div(9×731 707 + 2, 328 718) \\ \| = \Div(6 585 365, 328 718) = \{ 20, 11005 \} \\ d_2 \| = \dfloorratio{ω_3}{9} = \dfloorratio{11005}{9} = 1222 \\ \{ a_2, ω_4 \} \| = \Div(100 d_2 + 99, 36525) = \Div(100×1222 + 99, 36525) \\ \| = \Div(122 299, 36525) = \{3, 12724\} \\ d_1 \| = \dfloorratio{ω_4}{100} = \dfloorratio{12724}{100} = 127 \\ \{ m_1, ω_5 \} \| = \Div(5 d_1 + 2, 153) = \Div(5×127 + 2, 153) \\ \| = \Div(637, 153) = \{4, 25\} \\ d_0 \| = \dfloorratio{ω_5}{5} = \dfloorratio{25}{5} = 5 \\ a_1 \| = 100 c_1 + a_2 = 100×20 + 3 = 2003 \\ \{ α_1, m_0 \} \| = \Div(m_1 + 2, 12) = \Div(4 + 2, 12) = \Div(6, 12) = \{ 0, 6 \} \\ a \| = a_1 + α_1 = 2003 + 0 = 2003 \\ m \| = m_0 + 1 = 6 + 1 = 7 \\ d \| = d_0 + 1 = 5 + 1 = 6 \end{align*}
De datum is 6 juli 2003.
Wat meer voorbeelden:
\({J}\) | \({s}\) | \({c_1}\) | \({ω_3}\) | \({d_2}\) | \({a_2}\) | \({ω_4}\) | \({d_1}\) | \({m_1}\) | \({ω_5}\) | \({d_0}\) | \({a_1}\) | \({α_1}\) | \({m_0}\) | \({a}\) | \({m}\) | \({d}\) |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
−1 | −1721121 | −48 | 288377 | 32041 | 87 | 26524 | 265 | 8 | 103 | 20 | −4713 | 0 | 10 | −4713 | 11 | 21 |
0 | −1721120 | −48 | 288386 | 32042 | 87 | 26624 | 266 | 8 | 108 | 21 | −4713 | 0 | 10 | −4713 | 11 | 22 |
1 | −1721119 | −48 | 288395 | 32043 | 87 | 26724 | 267 | 8 | 113 | 22 | −4713 | 0 | 10 | −4713 | 11 | 23 |
1721060 | −60 | −1 | 328180 | 36464 | 99 | 30524 | 305 | 9 | 150 | 30 | −1 | 0 | 11 | −1 | 12 | 31 |
1721061 | −59 | −1 | 328189 | 36465 | 99 | 30624 | 306 | 10 | 2 | 0 | −1 | 1 | 0 | 0 | 1 | 1 |
1721119 | −1 | −1 | 328711 | 36523 | 99 | 36424 | 364 | 11 | 139 | 27 | −1 | 1 | 1 | 0 | 2 | 28 |
1721120 | 0 | 0 | 2 | 0 | 0 | 99 | 0 | 0 | 2 | 0 | 0 | 0 | 2 | 0 | 3 | 1 |
1721425 | 305 | 0 | 2747 | 305 | 0 | 30599 | 305 | 9 | 150 | 30 | 0 | 0 | 11 | 0 | 12 | 31 |
1721426 | 306 | 0 | 2756 | 306 | 0 | 30699 | 306 | 10 | 2 | 0 | 0 | 1 | 0 | 1 | 1 | 1 |
2299161 | 578041 | 15 | 271601 | 30177 | 82 | 22749 | 227 | 7 | 66 | 13 | 1582 | 0 | 9 | 1582 | 10 | 14 |
2299162 | 578042 | 15 | 271610 | 30178 | 82 | 22849 | 228 | 7 | 71 | 14 | 1582 | 0 | 9 | 1582 | 10 | 15 |
2305507 | 584387 | 15 | 328715 | 36523 | 99 | 36424 | 364 | 11 | 139 | 27 | 1599 | 1 | 1 | 1600 | 2 | 28 |
2305508 | 584388 | 16 | 6 | 0 | 0 | 99 | 0 | 0 | 2 | 0 | 1600 | 0 | 2 | 1600 | 3 | 1 |
2415079 | 693959 | 18 | 328709 | 36523 | 99 | 36424 | 364 | 11 | 139 | 27 | 1899 | 1 | 1 | 1900 | 2 | 28 |
2415080 | 693960 | 19 | 0 | 0 | 0 | 99 | 0 | 0 | 2 | 0 | 1900 | 0 | 2 | 1900 | 3 | 1 |
2451544 | 730424 | 19 | 328176 | 36464 | 99 | 30524 | 305 | 9 | 150 | 30 | 1999 | 0 | 11 | 1999 | 12 | 31 |
2451545 | 730425 | 19 | 328185 | 36465 | 99 | 30624 | 306 | 10 | 2 | 0 | 1999 | 1 | 0 | 2000 | 1 | 1 |
2451603 | 730483 | 19 | 328707 | 36523 | 99 | 36424 | 364 | 11 | 139 | 27 | 1999 | 1 | 1 | 2000 | 2 | 28 |
2451604 | 730484 | 19 | 328716 | 36524 | 99 | 36524 | 365 | 11 | 144 | 28 | 1999 | 1 | 1 | 2000 | 2 | 29 |
2451605 | 730485 | 20 | 7 | 0 | 0 | 99 | 0 | 0 | 2 | 0 | 2000 | 0 | 2 | 2000 | 3 | 1 |
2452827 | 731707 | 20 | 11005 | 1222 | 3 | 12724 | 127 | 4 | 25 | 5 | 2003 | 0 | 6 | 2003 | 7 | 6 |
2743797 | 1022677 | 27 | 328709 | 36523 | 99 | 36424 | 364 | 11 | 139 | 27 | 2799 | 1 | 1 | 2800 | 2 | 28 |
2743798 | 1022678 | 28 | 0 | 0 | 0 | 99 | 0 | 0 | 2 | 0 | 2800 | 0 | 2 | 2800 | 3 | 1 |
Merk op dat de jaren 1600 en 2800 wel schrikkeljaren zijn in de Gregoriaanse kalender (hoofdstuk 14.3) maar niet in de Milanković-kalender.
Zie hoofdstuk 14.2.1 voor de afleiding van dit algoritme.
Het algoritme om van een Juliaanse datum (kalenderjaar \( a \), kalendermaand \( m \), kalenderdag \( d \)) om te rekenen naar het CJDN \( J \) is:
\begin{align} \{ α_1, m_1 \} \| = \Div(m − 3, 12) \\ a_1 \| = a + α_1 \\ d_1 \| = \dfloorratio{153 m_1 − 3}{5} + d \\ s \| = \dfloorratio{1461 a_1}{4} + d_1 \\ J \| = s + 1 721 118 \end{align}
In die formules:
\begin{align*} \{ α_1, m_1 \} \| = \Div(m − 3, 12) = \Div(9 − 3, 12) = \Div(6, 12) = \{ 0, 6 \} \\ a_1 \| = a + α_1 = 2010 + 0 = 2010 \\ d_1 \| = \dfloorratio{153 m_1 − 3}{5} + d = \dfloorratio{153×6 − 3}{5} + 7 \\ \| = \dfloorratio{915}{5} + 7 = 183 + 7 = 190 \\ s \| = \dfloorratio{1461 a_1}{4} + d_1 = \dfloorratio{1461×2010}{4} + 190 \\ \| = \dfloorratio{2 936 610}{4} + 190 = 734 152 + 190 = 734 342 \\ J \| = s + 1 721 118 = 734 342 + 1 721 118 = 2 455 460 \end{align*}
Dus 7 september 2010 in de Juliaanse kalender komt overeen met CJDN 2 455 460.
Nog wat meer voorbeelden:
\({a}\) | \({m}\) | \({d}\) | \({α_1}\) | \({m_1}\) | \({a_1}\) | \({d_1}\) | \({s}\) | \({J}\) |
---|---|---|---|---|---|---|---|---|
−4713 | 12 | 31 | 0 | 9 | −4713 | 305 | −1721119 | −1 |
−4712 | 1 | 1 | −1 | 10 | −4713 | 306 | −1721118 | 0 |
−4712 | 1 | 2 | −1 | 10 | −4713 | 307 | −1721117 | 1 |
−1 | 12 | 31 | 0 | 9 | −1 | 305 | −61 | 1721057 |
0 | 1 | 1 | −1 | 10 | −1 | 306 | −60 | 1721058 |
0 | 2 | 28 | −1 | 11 | −1 | 364 | −2 | 1721116 |
0 | 2 | 29 | −1 | 11 | −1 | 365 | −1 | 1721117 |
0 | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 1721118 |
0 | 12 | 31 | 0 | 9 | 0 | 305 | 305 | 1721423 |
1 | 1 | 1 | −1 | 10 | 0 | 306 | 306 | 1721424 |
1582 | 10 | 4 | 0 | 7 | 1582 | 217 | 578042 | 2299160 |
1582 | 10 | 5 | 0 | 7 | 1582 | 218 | 578043 | 2299161 |
1900 | 2 | 28 | −1 | 11 | 1899 | 364 | 693973 | 2415091 |
1900 | 2 | 29 | −1 | 11 | 1899 | 365 | 693974 | 2415092 |
1900 | 3 | 1 | 0 | 0 | 1900 | 0 | 693975 | 2415093 |
1999 | 12 | 31 | 0 | 9 | 1999 | 305 | 730439 | 2451557 |
2000 | 1 | 1 | −1 | 10 | 1999 | 306 | 730440 | 2451558 |
2000 | 2 | 28 | −1 | 11 | 1999 | 364 | 730498 | 2451616 |
2000 | 2 | 29 | −1 | 11 | 1999 | 365 | 730499 | 2451617 |
2000 | 3 | 1 | 0 | 0 | 2000 | 0 | 730500 | 2451618 |
2003 | 7 | 6 | 0 | 4 | 2003 | 127 | 731722 | 2452840 |
2010 | 9 | 7 | 0 | 6 | 2010 | 190 | 734342 | 2455460 |
Het algoritme om een CJDN \( J \) om te rekenen naar een Juliaanse datum (kalenderjaar \( a \), kalendermaand \( m \), kalenderdag \( d \)) is:
\begin{align} s \| = J − 1 721 118 \\ \{ a_1, ω_2 \} \| = \Div(4 s + 3, 1461) \\ d_1 \| = \dfloorratio{ω_2}{4} \\ \{ m_1, ω_3 \} \| = \Div(5 d_1 + 2, 153) \\ \{ α_2, m_0 \} \| = \Div(m_1 + 2, 12) \\ a \| = a_1 + α_2 \\ m \| = m_0 + 1 \\ d \| = \dfloorratio{ω_3}{5} + 1 \end{align}
\begin{align*} s \| = J − 1 721 118 = 2 455 460 − 1 721 118 = 734 342 \\ \{ a_1, ω_2 \} \| = \Div(4 s + 3, 1461) = \Div(4×734 342 + 3, 1461) \\ \| = \Div(2 937 371, 1461) = \{ 2010, 761 \} \\ d_1 \| = \dfloorratio{ω_2}{4} = \dfloorratio{761}{4} = 190 \\ \{ m_1, ω_3 \} \| = \Div(5 d_1 + 2, 153) = \Div(5×190 + 2, 153) \\ \| = \Div(952, 153) = \{ 6, 34 \} \\ \{ α_2, m_0 \} \| = \Div(m_1 + 2, 12) = \Div(6 + 2, 12) = \{ 0, 8 \} \\ a \| = a_1 + α_2 = 2010 + 0 = 2010 \\ m \| = m_0 + 1 = 8 + 1 = 9 \\ d \| = \dfloorratio{ω_3}{5} + 1 = \dfloorratio{34}{5} + 1 = 6 + 1 = 7 \end{align*}
De datum is 7 september 2010.
Nog wat meer voorbeelden:
\({J}\) | \({s}\) | \({a_1}\) | \({ω_2}\) | \({d_1}\) | \({m_1}\) | \({ω_3}\) | \({α_2}\) | \({m_0}\) | \({a}\) | \({m}\) | \({d}\) |
---|---|---|---|---|---|---|---|---|---|---|---|
−1 | −1721119 | −4713 | 1220 | 305 | 9 | 150 | 0 | 11 | −4713 | 12 | 31 |
0 | −1721118 | −4713 | 1224 | 306 | 10 | 2 | 1 | 0 | −4712 | 1 | 1 |
1 | −1721117 | −4713 | 1228 | 307 | 10 | 7 | 1 | 0 | −4712 | 1 | 2 |
1721057 | −61 | −1 | 1220 | 305 | 9 | 150 | 0 | 11 | −1 | 12 | 31 |
1721058 | −60 | −1 | 1224 | 306 | 10 | 2 | 1 | 0 | 0 | 1 | 1 |
1721116 | −2 | −1 | 1456 | 364 | 11 | 139 | 1 | 1 | 0 | 2 | 28 |
1721117 | −1 | −1 | 1460 | 365 | 11 | 144 | 1 | 1 | 0 | 2 | 29 |
1721118 | 0 | 0 | 3 | 0 | 0 | 2 | 0 | 2 | 0 | 3 | 1 |
1721423 | 305 | 0 | 1223 | 305 | 9 | 150 | 0 | 11 | 0 | 12 | 31 |
1721424 | 306 | 0 | 1227 | 306 | 10 | 2 | 1 | 0 | 1 | 1 | 1 |
2299160 | 578042 | 1582 | 869 | 217 | 7 | 16 | 0 | 9 | 1582 | 10 | 4 |
2299161 | 578043 | 1582 | 873 | 218 | 7 | 21 | 0 | 9 | 1582 | 10 | 5 |
2415091 | 693973 | 1899 | 1456 | 364 | 11 | 139 | 1 | 1 | 1900 | 2 | 28 |
2415092 | 693974 | 1899 | 1460 | 365 | 11 | 144 | 1 | 1 | 1900 | 2 | 29 |
2415093 | 693975 | 1900 | 3 | 0 | 0 | 2 | 0 | 2 | 1900 | 3 | 1 |
2451557 | 730439 | 1999 | 1220 | 305 | 9 | 150 | 0 | 11 | 1999 | 12 | 31 |
2451558 | 730440 | 1999 | 1224 | 306 | 10 | 2 | 1 | 0 | 2000 | 1 | 1 |
2451616 | 730498 | 1999 | 1456 | 364 | 11 | 139 | 1 | 1 | 2000 | 2 | 28 |
2451617 | 730499 | 1999 | 1460 | 365 | 11 | 144 | 1 | 1 | 2000 | 2 | 29 |
2451618 | 730500 | 2000 | 3 | 0 | 0 | 2 | 0 | 2 | 2000 | 3 | 1 |
2452840 | 731722 | 2003 | 508 | 127 | 4 | 25 | 0 | 6 | 2003 | 7 | 6 |
2455460 | 734342 | 2010 | 761 | 190 | 6 | 34 | 0 | 8 | 2010 | 9 | 7 |
Zie hoofdstuk 14.9 voor de afleiding van dit algoritme.
De religieuze Islamitische kalender hangt af van waarnemingen en is daarom niet te vangen in formules. De administratieve kalender heeft vaste regels en is wel te beschrijven door formules. Het verschil tussen de religieuze en administratieve kalenders zou meestal hooguit 1 dag moeten zijn.
Het CJDN kan als volgt uit het jaarnummer \( a \), maandnummer \( m \), en dagnummer \( d \) in de meestgebruikte administratieve Islamitische kalender worden afgeleid (onder meer gebruikt door al-Fazārī, al-Khwārizmī en al-Battānī en ook in de Toledo- en Alfonsijnse Tafels):
\begin{align} d_1 \| = \dfloorratio{325 m − 331}{11} + d \\ s \| = \dfloorratio{10631 a − 10617}{30} + d_1 \\ J \| = s + 1 948 440 \end{align}
Hierin is
\begin{align*} d_1 \| = \dfloorratio{325 m − 331}{11} + d = \dfloorratio{325×8 − 331}{11} + 29 \\ \| = \dfloorratio{2269}{11} + 29 = 206 + 29 = 235 \\ s \| = \dfloorratio{10631 a − 10617}{30} + d_1 = \dfloorratio{10631×1432 − 10617}{30} + 235 \\ \| = \dfloorratio{15 212 975}{30} + 235 = 507 099 + 235 = 507 334 \\ J \| = s + 1 948 440 = 507 334 + 1 948 440 = 2 455 774 \end{align*}
De CJDN is 2 455 774, wat overeenkomt met 31 juli 2011 in de Gregoriaanse kalender.
Wat meer voorbeelden:
\({a}\) | \({m}\) | \({d}\) | \({d_1}\) | \({s}\) | \({J}\) |
---|---|---|---|---|---|
−5498 | 8 | 15 | 221 | −1948441 | −1 |
−5498 | 8 | 16 | 222 | −1948440 | 0 |
0 | 12 | 29 | 353 | −1 | 1948439 |
1 | 1 | 1 | 0 | 0 | 1948440 |
1 | 1 | 30 | 29 | 29 | 1948469 |
1 | 2 | 1 | 30 | 30 | 1948470 |
1 | 12 | 29 | 353 | 353 | 1948793 |
2 | 1 | 1 | 0 | 354 | 1948794 |
1432 | 8 | 29 | 235 | 507334 | 2455774 |
De volgende formules berekenen het jaartal \( a \), maandnummer \( m \), en dagnummer \( d \) in de meestgebruikte administratieve Islamitische kalender uit het CJDN \( J \):
\begin{align} s \| = J − 1 948 440 \\ \{ a, ω_2 \} \| = \Div(30 s + 10646, 10631) \\ d_1 \| = \dfloorratio{ω_2}{30} \\ \{ m, ω_3 \} \| = \Div(11 d_1 + 330, 325) \\ d \| = \dfloorratio{ω_3}{11} + 1 \end{align}
Hierin is
\begin{align*} s \| = J − 1 948 440 = 2 455 774 − 1 948 440 = 507 334 \\ \{ a, ω_2 \} \| = \Div(30 s + 10646, 10631) = \Div(30×507 334 + 10646, 10631) \\ \| = \Div(15 230 666, 10631) = \{ 1432, 7074 \} \\ d_1 \| = \dfloorratio{ω_2}{30} = \dfloorratio{7074}{30} = 235 \\ \{ m, ω_3 \} \| = \Div(11 d_1 + 330, 325) = \Div(11×235 + 330, 325) \\ \| = \Div(2915, 325) = \{ 8, 315 \} \\ d \| = \dfloorratio{ω_3}{11} + 1 = \dfloorratio{315}{11} + 1 = 28 + 1 = 29 \end{align*}
dus \( a = 1432 \), \( m = 8 \), \( d = 29 \) ofwel 29 Sha`ban 1432.
Wat meer voorbeelden:
\({J}\) | \({s}\) | \({a}\) | \({ω_2}\) | \({d_1}\) | \({m}\) | \({ω_3}\) | \({d}\) |
---|---|---|---|---|---|---|---|
−1 | −1948441 | −5498 | 6654 | 221 | 8 | 161 | 15 |
0 | −1948440 | −5498 | 6684 | 222 | 8 | 172 | 16 |
1948439 | −1 | 0 | 10616 | 353 | 12 | 313 | 29 |
1948440 | 0 | 1 | 15 | 0 | 1 | 5 | 1 |
1948469 | 29 | 1 | 885 | 29 | 1 | 324 | 30 |
1948470 | 30 | 1 | 915 | 30 | 2 | 10 | 1 |
1948793 | 353 | 1 | 10605 | 353 | 12 | 313 | 29 |
1948794 | 354 | 2 | 4 | 0 | 1 | 5 | 1 |
2455774 | 507334 | 1432 | 7074 | 235 | 8 | 315 | 29 |
Zie hoofdstuk 14.6 voor de afleiding van dit algoritme.
De Babyloniërs hadden een zongebonden maankalender waarin de lengte van de maand bepaald werd uit waarnemingen, maar het aantal maanden per jaar elke 19 jaar een vast patroon volgde. Onderstaande formules voor een administratieve Babylonische kalender gebruiken datzelfde patroon van 19 jaar, en zouden meestal hooguit een dag moeten afwijken van de door waarnemingen bepaalde kalender die de Babyloniërs gebruikten.
Als \( a \) het jaartal is volgens de era van Seleukos, en \( m \) het maandnummer (beginnend bij 1) in het jaar, en \( d \) het dagnummer (beginnend bij 1) in de maand, dan vind je het CJDN \( J \) uit
\begin{align} m_1 \| = \dfloorratio{235 a − 241}{19} + m \\ s \| = \dfloorratio{6940 m_1}{235} + d − 1 \\ J \| = s + 1 607 923 \end{align}
Hierin is
\begin{align*} m_1 \| = \dfloorratio{235 a − 241}{19} + m = \dfloorratio{235×3 − 241}{19} + 9 \\ \| = \dfloorratio{464}{19} + 9 = 24 + 9 = 33 \\ s \| = \dfloorratio{6940 m_1}{235} + d − 1 = \dfloorratio{6940×33}{235} + 27 − 1 \\ \| = \dfloorratio{229 020}{235} + 26 = 974 + 26 = 1000 \\ J \| = s + 1 607 923 = 1000 + 1 607 923 = 1 608 923 \end{align*}
Wat meer voorbeelden:
\({a}\) | \({m}\) | \({d}\) | \({m_1}\) | \({s}\) | \({J}\) |
---|---|---|---|---|---|
−1 | 1 | 1 | −25 | −739 | 1607184 |
0 | 1 | 1 | −12 | −355 | 1607568 |
1 | 1 | 1 | 0 | 0 | 1607923 |
1 | 2 | 1 | 1 | 29 | 1607952 |
1 | 3 | 1 | 2 | 59 | 1607982 |
2 | 1 | 1 | 13 | 383 | 1608306 |
3 | 9 | 27 | 33 | 1000 | 1608923 |
2315 | 3 | 1 | 28623 | 845292 | 2453215 |
Van CJDN \( J \) gaan we als volgt naar Babylonische jaar \( a \), maand \( m \), en dag \( d \):
\begin{align} s \| = J − 1 607 923 \\ \{ m_1, ω_2 \} \| = \Div(235 s + 234, 6940) \\ \{ a, ω_3 \} \| = \Div(19 m_1 + 240, 235) \\ m \| = \dfloorratio{ω_3}{19} + 1 \\ d \| = \dfloorratio{ω_2}{235} + 1 \end{align}
Hierin is
\begin{align*} s \| = J − 1 607 923 = 1 608 923 − 1 607 923 = 1000 \\ \{ m_1, ω_2 \} \| = \Div(235 s + 234, 6940) = \Div(235×1000 + 234, 6940) \\ \| = \Div(235 234, 6940) = \{ 33, 6214 \} \\ \{ a, ω_3 \} \| = \Div(19 m_1 + 240, 235) = \Div(19×33 + 240, 235) \\ \| = \Div(867, 235) = \{ 3, 162 \} \\ m \| = \dfloorratio{ω_3}{19} + 1 = \dfloorratio{162}{19} + 1 = 8 + 1 = 9 \\ d \| = \dfloorratio{ω_2}{235} + 1 = \dfloorratio{6214}{235} + 1 = 26 + 1 = 27 \end{align*}
ofwel dag 27 van maand 9 van jaar 3.
Wat meer voorbeelden:
\({J}\) | \({s}\) | \({m_1}\) | \({ω_2}\) | \({a}\) | \({ω_3}\) | \({m}\) | \({d}\) |
---|---|---|---|---|---|---|---|
1607184 | −739 | −25 | 69 | 6 | 141 | 8 | 1 |
1607568 | −355 | −12 | 89 | 8 | 51 | 3 | 1 |
1607923 | 0 | 0 | 234 | 19 | 221 | 12 | 1 |
1607952 | 29 | 1 | 109 | 9 | 196 | 11 | 1 |
1607982 | 59 | 2 | 219 | 18 | 171 | 10 | 1 |
1608306 | 383 | 13 | 19 | 2 | 131 | 7 | 1 |
1608923 | 1000 | 33 | 6214 | 503 | 101 | 6 | 27 |
2453215 | 845292 | 28623 | 234 | 19 | 221 | 12 | 1 |
Zie hoofdstuk 14.7 voor de afleiding van dit algoritme.
De Joodse kalender is een zongebonden maankalender met ingewikkelde regels, en de kalender herhaalt zich pas na 251 827 457 dagen = 35 975 351 weken = 8 527 680 maanden = 689 472 jaren. De algoritmes om een Joodse datum om te rekenen naar CJDN of andersom zijn daarom lang, en er komen hele grote tussenresultaten in voor. De algoritmes die ik hieronder geef gebruiken alleen hele getallen (om afrondfouten te voorkomen), en zijn aangepast voor gebruik in een computerprogramma gebaseerd op 32-bitsgetallen zodat ze de juiste resultaten geven voor ongeveer 5,8 miljoen jaar naar het verleden en de toekomst. Zonder die aanpassing zouden ze voor slechts een periode van 453 jaar gewerkt hebben.
In de Joodse kalender heeft een jaar 12 of 13 maanden en een maand heeft 29 of 30 dagen. Nieuwjaar is de eerste dag van de 7e maand, tisjrie. In een jaar van 12 maanden zijn de maanden: 1 = niesan (נִיסָן), 2 = ijar (אִיָּר / אייר), 3 = siewan (סִיוָן / סיוון), 4 = tammoez (תַּמּוּז), 5 = aaw (אָב), 6 = elloel (אֱלוּל), 7 = tisjrie (תִּשׁרִי), 8 = chesjwan (מַרְחֶשְׁוָן / מרחשוון), 9 = kisleew (כִּסְלֵו / כסליו), 10 = teweet (טֵבֵת), 11 = sjewat (שְׁבָט), 12 = adar (אֲדָר). In een jaar van 13 maanden wordt een embolistische maand adar Ⅰ (אֲדָר א׳) ingevoegd tussen sjewat en gewone adar, en die gewone adar wordt dan tijdelijk hernoemd tot adar Ⅱ (אֲדָר ב׳). In zo'n jaar rekenen we de embolistische maand adar Ⅰ als maand nummer 12, en adar Ⅱ als maand nummer 13.
Een algoritme om CJDN \( J \) te berekenen uit kalenderjaar \( a \), kalendermaand \( m \) (van 1 tot 12 of 13) en kalenderdag \( d \) (van 1 tot 29 of 30) is als volgt:
\begin{align} m_0 \| = m − 1 \\ a_1 \| = a + \dfloorratio{12 − m_0}{7} \\ μ_2(a_1) \| = \dfloorratio{235 a_1 − 234}{19} \\ \{ ω_1(μ_2), μ_1(μ_2) \} \| = \Div(μ_2, 25920) \\ δ_4(μ_2) \| = 29 μ_2 + 13753 ω_1(μ_2) + \dfloorratio{13753 μ_1(μ_2) + 5604}{25920} \\ δ_6(μ_2) \| = δ_4(μ_2) + \dmodp{\dfloorratio{6\dmodp{δ_4(μ_2)}{7}}{7}}{2} \\ L_2(a_1) \| = δ_6(μ_2(a_1 + 1)) − δ_6(μ_2(a_1)) \\ δ_7(a_1) \| = 2\dmodp{\dfloorratio{L_2(a_1) + 19}{15}}{2} \\ δ_8(a_1) \| = \dmodp{\dfloorratio{L_2(a_1 − 1) + 7}{15}}{2} \\ d_1(a_1) \| = δ_6(μ_2(a_1)) + δ_7(a_1) + δ_8(a_1) \\ L(a_1) \| = d_1(a_1 + 1) − d_1(a_1) \\ δ_9(m_0) \| = \dfloorratio{384 m_0 + 7}{13} \\ δ_{10}(a_1) \| = \dmodp{\dfloorratio{L(a_1) + 1}{2}}{3} \\ δ_{11}(a_1) \| = −\dmodp{\dfloorratio{385 − L(a_1)}{2}}{3} \\ ω_2(m_0) \| = \dfloorratio{m_0 + 4}{12} \\ ω_3(m_0) \| = \dfloorratio{m_0 + 3}{12} \\ δ_{12}(a_1, m_0) \| = δ_9(m_0) + ω_2(m_0)δ_{10}(a_1) + ω_3(m_0)δ_{11}(a_1) \\ d_2(a_1,m_0) \| = d_1(a_1) − 177 + δ_{12}(a_1,m_0) \\ s \| = d_2(a_1,m_0) + d − 1 \\ J \| = s + 347 998 \end{align}
Hierin is
In de praktijk zijn meer berekeningen nodig dan je op het eerste gezicht zou denken, want sommige formules moeten meerdere keren gebruikt worden. Het volgende plaatje toont de afhankelijkheden. Voor \( L \) heb je \( d_1 \) nodig voor twee jaar, en voor elke \( d_1 \) heb je \( L_2 \) nodig voor twee jaar, en voor elke \( L_2 \) heb je \( δ_6 \) nodig voor twee jaar. \( L \) en de bijbehorende afhankelijkheden zijn alleen nodig als \( m \ge 9 \), daarom zijn die aangegeven met pijlen met streeplijnen. Al met al heb je om \( J \) uit te rekenen \( d_1 \) nodig van tenminste één jaar, \( L_2 \) van tenminste twee jaar, en \( δ_6 \) van tenminste drie jaar, en als \( m \ge 9 \) dan heb je \( d_1 \), \( L_2 \) en \( δ_6 \) van nog een jaar extra nodig.
\begin{align*} m_0 \| = m − 1 = 9 − 1 = 8 \\ a_1 \| = a + \dfloorratio{12 − m_0}{7} = 4682 + \dfloorratio{12 − 8}{7} = 4682 + \dfloorratio{4}{7} = 4682 \\ μ_2(a_1) \| = \dfloorratio{235 a_1 − 234}{19} = \dfloorratio{235×4682 − 234}{19} \\ \| = \dfloorratio{1 100 036}{19} = 57896 \\ μ_2(a_1 + 2) \| = 57921 \\ μ_2(a_1 + 1) \| = 57909 \\ μ_2(a_1 − 1) \| = 57884 \\ \{ ω_1(μ_2(a_1)), μ_1(μ_2(a_1)) \} \| = \Div(μ_2(a_1), 25920) = \Div(57896, 25920) = \{ 2, 6056 \} \\ δ_4(μ_2(a_1)) \| = 29 μ_2(a_1) + 13753 ω_1(μ_2(a_1)) + \dfloorratio{13753 μ_1(μ_2(a_1)) + 5604}{25920} \\ \| = 29×57896 + 13753×2 + \dfloorratio{13753×6056 + 5604}{25920} \\ \| = 1 678 984 + 27506 + \dfloorratio{83 293 772}{25920} \\ \| = 1 706 490 + 3213 = 1 709 703 \\ δ_4(μ_2(a_1 + 2)) \| = 1 710 442 \\ δ_4(μ_2(a_1 + 1)) \| = 1 710 087 \\ δ_4(μ_2(a_1 − 1)) \| = 1 709 349 \\ δ_6(μ_2(a_1)) \| = δ_4(μ_2(a_1)) + \dmodp{\dfloorratio{6 \dmodp{δ_4(μ_2(a_1))}{7}}{7}}{2} \\ \| = 1 709 703 + \dmodp{\dfloorratio{6×\dmodp{1 709 703}{7}}{7}}{2} \\ \| = 1 709 703 + \dmodp{\dfloorratio{6×2}{7}}{2} \\ \| = 1 709 703 + \dmodp{\dfloorratio{12}{7}}{2} \\ \| = 1 709 703 + \dmodp{1}{2} = 1 709 704 \\ δ_6(μ_2(a_1 + 2)) \| = 1 710 443 \\ δ_6(μ_2(a_1 + 1)) \| = 1 710 087 \\ δ_6(μ_2(a_1 − 1)) \| = 1 709 349 \\ L_2(a_1) \| = δ_6(μ_2(a_1 + 1)) − δ_6(μ_2(a_1)) = 1 710 087 − 1 709 704 = 383 \\ L_2(a_1 + 1) \| = 356 \\ L_2(a_1 − 1) \| = 355 \\ δ_7(a_1) \| = 2\dmodp{\dfloorratio{L_2(a_1) + 19}{15}}{2} = 2\dmodp{\dfloorratio{383 + 19}{15}}{2} \\ \| = 2\dmodp{\dfloorratio{402}{15}}{2} = 2\dmodp{26}{2} = 0 \\ δ_7(a_1 + 1) \| = 2 \\ δ_8(a_1) \| = \dmodp{\dfloorratio{L_2(a_1 − 1) + 7}{15}}{2} = \dmodp{\dfloorratio{355 + 7}{15}}{2} \\ \| = \dmodp{\dfloorratio{362}{15}}{2} = \dmodp{24}{2} = 0 \\ δ_8(a_1 + 1) \| = 0 \\ d_1(a_1) \| = δ_6(μ_2(a_1)) + δ_7(a_1) + δ_8(a_1) = 1 709 704 + 0 + 0 = 1 709 704 \\ d_1(a_1 + 1) \| = 1 710 089 \\ L(a_1) \| = d_1(a_1 + 1) − d_1(a_1) = 1 710 089 − 1 709 704 = 385 \\ δ_9(m_0) \| = \dfloorratio{384 m_0 + 7}{13} = \dfloorratio{384×8 + 7}{13} \\ \| = \dfloorratio{3079}{13} = 236 \\ δ_{10}(a_1) \| = \dmodp{\dfloorratio{L(a_1) + 1}{2}}{3} = \dmodp{\dfloorratio{385 + 1}{2}}{3} \\ \| = \dmodp{\dfloorratio{386}{2}}{3} = \dmodp{193}{3} = 1 \\ δ_{11}(a_1) \| = −\dmodp{\dfloorratio{385 − L(a_1)}{2}}{3} = −\dmodp{\dfloorratio{385 − 385}{2}}{3} = 0 \\ ω_2(m_0) \| = \dfloorratio{m_0 + 4}{12} = \dfloorratio{8 + 4}{12} = \dfloorratio{12}[12] = 1 \\ ω_3(m_0) \| = \dfloorratio{m_0 + 3}{12} = \dfloorratio{8 + 3}{12} = \dfloorratio{11}{12} = 0 \\ δ_{12}(a_1, m_0) \| = δ_9(m_0) + ω_2(m_0) δ_{10}(a_1) + ω_3(m_0) δ_{11}(a_1) \\ \| = 236 + 1×1 + 0×0 = 237 \\ d_2(a_1, m_0) \| = d_1(a_1) − 177 + δ_{12}(a_1, m_0) = 1 709 704 − 177 + 237 = 1 709 764 \\ s \| = d_2(a_1, m_0) + d − 1 = 1 709 764 + 12 − 1 = 1 709 75 \\ J \| = s + 347 998 = 1 709 775 + 347 998 = 2 057 773 \end{align*}
Van CJDN \( J \) gaan we als volgt naar Joods jaar \( a \), maand \( m \) en dag \( d \):
\begin{align} s \| = J − 347 998 \\ \{ ω_2, δ_1 \} \| = \Div(s, 1447) \\ μ_2 \| = 49 ω_2 + \dfloorratio{23 ω_2 + 25920 δ_1 + 13835}{765 433} \\ \{ α_3, ω_3 \} \| = \Div(19 μ_2 + 366, 235) \\ μ_3 \| = \dfloorratio{ω_3}{19} \\ δ_{14} \| = s − d_2(α_3, μ_3) \end{align}
met \( d_2 \) berekend zoals beschreven in hoofdstuk 14.7.1. Als \( 0 \le δ_{14} \le 28 \) dan
\begin{equation} \{ a_1, m_0, d_0 \} = \{ α_3, μ_3, δ_{14} \} \end{equation}
Anders, als \( δ_{14} = 29 \) dan
\begin{align} μ_5 \| = μ_2 + 1 \\ \{ α_4, ω_4 \} \| = \Div(19 μ_5 + 366, 235) \\ μ_6 \| = \dfloorratio{ω_4}{19} \\ δ_{15} \| = s − d_2(α_4, μ_6) \\ δ_{15} \lt 0 \| ⇒ \{ a_1, m_0, d_0 \} = \{ α_3, μ_3, δ_{14} \} \\ δ_{15} \ge 0 \| ⇒ \{ a_1, m_0, d_0 \} = \{ α_4, μ_6, δ_{15} \} \end{align}
Anders is \( δ_{14} \lt 0 \), en dan
\begin{align} μ_7 \| = μ_2 − 1 \\ \{ a_1, ω_5 \} \| = \Div(19 μ_7 + 366, 235) \\ m_0 \| = \dfloorratio{ω_5}{19} \\ d_0 \| = s − d_2(a_1, m_0) \end{align}
Als we eenmaal \( \{ a_1, m_0, d_0 \} \) gevonden hebben dan volgt nog:
\begin{align} a \| = a_1 + \dfloorratio{m_0 − 6}{7} \\ m \| = m_0 + 1 \\ d \| = d_0 + 1 \end{align}
\begin{align*} s \| = J − 347 998 = 2 057 773 − 347 998 = 1 709 775 \\ \{ ω_2, δ_1 \} \| = \Div(s, 1447) = \Div(1 709 775, 1447) = \{ 1181, 868 \} \\ μ_2 \| = 49 ω_2 + \dfloorratio{23 ω_2 + 25920 δ_1 + 13835}{765 433} \\ \| = 49×1181 + \dfloorratio{23×1181 + 25920×868 + 13835}{765 433} \\ \| = 57869 + \dfloorratio{22 539 558}{765 433} = 57869 + 29 = 57898 \\ \{ α_3, ω_3 \} \| = \Div(19 μ_2 + 366, 235) = \Div(19×57898 + 366, 235) \\ \| = \Div(1 100 428, 235) = \{ 4682, 158 \} \\ μ_3 \| = \dfloorratio{ω_3}{19} = \dfloorratio{158}{19} = 8 \\ δ_{14} \| = s − d_2(α_3, μ_3) = 1 709 775 − d_2(4682, 8) \\ \| = 1 709 775 − d_2(4682, 8) = 1 709 775 − 1 709 764 = 11 \end{align*}
We vinden \( 0 \le δ_{14} \le 28 \) dus
\[ \{ a_1, m_0, d_0 \} = \{ α_3, μ_3, δ_{14} \} = \{ 4682, 8, 11 \} \]
Dan
\begin{align*} a \| = a_1 + \dfloorratio{m_0 − 6}{7} = 4682 + \dfloorratio{8 − 6}{7} = 4682 + \dfloorratio{2}{7} = 4682 \\ m \| = m_0 + 1 = 8 + 1 = 9 \\ d \| = d_0 + 1 = 11 + 1 = 12 \end{align*}
dus de gewenste datum in de Joodse kalender is dag 12 van maand 9 (kislev) van jaar 4682: 12 kislev A.M. 4682.
De oude Egyptenaren hadden een wel heel simpele kalender, zonder schrikkeljaren en met 30 dagen in elke maand behalve dat de laatste maand 5 dagen had. In de kalender volgens de era van Nabonassar was de eerste dag (1 Thoth van jaar 1) gelijk aan 26 februari −746 in de Juliaanse kalender.
Het algoritme om van een Egyptische datum (kalenderjaar \( j \), kalendermaand \( m \), kalenderdag \( d \)) om te rekenen naar het CJDN \( J \) is:
\begin{align} d_1 \| = 30 m + d − 31 \\ s \| = 365 a + d_1 \\ J \| = s + 1 448 273 \end{align}
\begin{align*} d_1 \| = 30 m + d − 31 = 30×5 + 7 − 31 = 126 \\ s \| = 365 a + d_1 = 365×218 + 126 = 79696 \\ J \| = s + 1 448 273 = 79696 + 1 448 273 = 1 527 969 \end{align*}
dus het antwoord is CJDN 1 527 969.
In omgekeerde richting zijn de berekeningen ook eenvoudig.
\begin{align} s \| = J − 1 448 273 \\ \{ a, d_1 \} \| = \Div(s, 365) \\ \{ m_0, d_0 \} \| = \Div(d_1, 30) \\ m \| = m_0 + 1 \\ d \| = d_0 + 1 \end{align}
\begin{align*} s \| = J − 1 448 273 = 1 527 969 − 1 448 273 = 79696 \\ \{ a, d_1 \} \| = \Div(s, 365) = \Div(79696, 365) = \{ 218, 126 \} \\ \{ m_0, d_0 \} \| = \Div(d_1, 30) = \Div(126, 30) = \{ 4, 6 \} \\ m \| = m_0 + 1 = 4 + 1 = 5 \\ d \| = d_0 + 1 = 6 + 1 = 7 \end{align*}
dus het is dag 7 van maand 5 van jaar 218.
De Maya uit Anahuac (Midden-Amerika) gebruikten drie verschillende kalenders, waarvan er twee (de Tzolkin en de Haab) periodiek waren met vrij korte perioden, en de derde (de Lange Telling) misschien ook wel als periodiek bedoeld was maar die zulke lange perioden heeft dat hij in de praktijk als doorlopend (in plaats van periodiek) kan worden beschouwd.
Verschillende gebieden in Midden-Amerika hadden iets verschillende versies van deze kalenders, met andere namen voor dagen en maanden, andere manieren om jaren aan te geven, en soms telde men dagen vanaf dag 0 in plaats van vanaf dag 1. Hieronder geven we de kalenders van de stad Tikal.
De Haab heeft een dagnummer en een maand, maar geen jaarnummer. Er zijn 18 maanden van 20 dagen, plus een 19e maand van 5 dagen, en dat is samen 365 dagen, en dat noemen we het Haab-jaar. Er zijn geen schrikkeldagen. De maanden hebben een naam, en de dagen hebben een nummer dat begint bij 0.
Wij schrijven een datum in de Haab als \( \{ h_d, h_m \} \) waarin \( h_d \) het dagnummer is (van 0 tot 19) en \( h_m \) het maandnummer (van 1 tot 19).
Er zit geen jaarnummer in de Haab dus komt een gegeven Haab-datum \( \{ h_d, h_ m \} \) elke 365 dagen weer terug. We moeten daarom extra informatie gebruiken om de goede te kiezen. We kunnen als volgt de laatste CJDN \( J \) vinden die overeenkomt met deze Haab-datum op of voor een bepaalde CJDN \( J_0 \):
\begin{align} H \| = h_d + 20×(h_m − 1) \\ J \| = J_0 − \dmodp{J_0 − H + 65}{365} \end{align}
\begin{align*} H \| = 5 + 20×(13 − 1) = 245 \\ J \| = J_0 − \dmodp{J_0 − H + 65}{365} \\ \| = 2 439 126 − \dmodp{2 438 946}{365} \\ \| = 2 439 126 − 16 = 2 439 110 \end{align*}
De Tzolkin heeft een periode van 20 dagen (de venteina) met een naam voor elke dag, en een periode van 13 dagen (de trecena) met een nummer voor elke dag (te beginnen bij 1).
Wij schrijven een datum in de Tzolkin als \( \{ t_t, t_v \} \), waarin \( t_t \) het dagnummer in de trecena is (van 1 tot 13) en \( t_v \) het dagnummer in de venteina (van 1 tot 20).
De trecena en venteina lopen allebei tegelijk op, dus na dag \( \{ 2, 7 \} \) komt dag \( \{ 3, 8 \} \) en dan \( \{ 4, 9 \} \), enzovoort. Omdat 13 en 20 relatief priem zijn komen alle mogelijke combinaties van venteina en trecena voor in deze kalender, dus na 13×20 = 260 dagen herhalen de datums zich weer.
Er zit geen jaarnummer in de Tzolkin dus komt een gegeven Tzolkin-datum elke 260 dagen weer terug. We vinden als volgt de laatste CJDN \( J \) die overeenkomt met Tzolkin-datum \( \{ t_t, t_v \} \) op of voor een bepaalde CJDN \( J_0 \):
\begin{equation} J = J_0 − \dmodp{J_0 − 40 t_t + 39 t_v + 97}{260} \end{equation}
\begin{align*} J \| = 2 439 126 − \dmodp{2 439 126 − 40×4 + 39×7 + 97}{260} \\ \| = 2 439 126 − \dmodp{2 439 336}{260} \\ \| = 2 439 126 − 16 = 2 439 110 \end{align*}
Voor het aantal dagen \( T \) sinds de laatste \( \{ 1, 1 \} \) geldt
\begin{equation} T = \dmodp{40 t_t + 221 t_v − 1}{260} \end{equation}
\begin{align*} T \| = \dmodp{40×4 + 221×7 − 1}{260} \\ \| = \dmodp{1706}{260} = 146 \end{align*}
dus de laatste dag daarvoor die \( \{ 1, 1 \} \) had was CJDN \( J = 2 439 110 − 146 = 2 438 964 \), en dat klopt, want \( t_t = \dmodp{J + 5}{13} + 1 = \dmodp{2 438 969}{13} + 1 = 1 \) en \( t_v = \dmodp{J + 16}{20} + 1 = \dmodp{2 438 980}{20} + 1 = 1 \).
Soms wordt een datum aangegeven met Tzolkin en Haab. De CJDN \( J \) van de laatste Tzolkin/Haab-datum \( \{ h_d, h_m, t_t, t_v \} \) op of voor CJDN \( J_0 \) is:
\begin{align} H \| = \dmodp{h_d + 20 × (h_m − 1)}{365} \\ T \| = \dmodp{40t_t + 221 t_v − 1}{260} \\ J \| = J_0 − \dmodp{J_0 − 365 T + 364 H − 7600}{18980} \end{align}
De Tzolkin en Haab hebben samen een periode van 18980 dagen, ofwel ongeveer 52 jaar.
\begin{align*} H \| = \dmodp{5 + 20×12}{365} = \dmodp{245}{365} = 245 \\ T \| = \dmodp{40×4 + 221×7 − 1}{260} = \dmodp{1706}{260} = 146 \\ J \| = 2 439 126 − \dmodp{2 439 126 − 365×146 + 364×245 − 7600}{18980} \\ \| = 2 439 126 − \dmodp{2 467 416}{18980} \\ \| = 2 439 126 − 16 = 2 439 110 \end{align*}
Pas op! Niet alle mogelijke combinaties van \( \{ h_d, h_m, t_t, t_v \} \) komen voor in de kalender. Je kunt in voorgaande formules elke combinatie invullen, maar er komen alleen nuttige resultaten uit voor combinaties die ook echt in de kalender voorkomen. Dat zijn combinaties waarvoor \( H − T ≡ 4 \pmod{5} \).
De Lange Telling telt dagen en heeft een serie steeds langere perioden. De kleinste is 20 dagen, de volgende is 18 keer zo lang (dus 360 dagen), en daarna is elke volgende periode steeds 20 keer zo lang als de vorige. Het getal voor elke periode begint bij 0. Vaak zijn datums in de Lange Telling gegeven met vijf getallen, maar nog langere perioden zijn bekend, tot het negende getal toe. De langst bekende periode komt overeen met ongeveer 63 miljoen jaar. Hieronder gaan we er van uit dat de Lange Telling vijf getallen bevat, en kan het vijfde getal willekeurig groot worden.
De begindatum 0.0.0.0.0 van de Lange Telling komt waarschijnlijk overeen met CJDN \( J_0 = 584 283 \) (6 september −3113 in de Juliaanse kalender).
Het omrekenen van Lange Telling naar CJDN gaat als volgt:
\begin{equation} \begin{split} J \| = l_1 + 20×(l_2 + 18×(l_3 + 20×(l_4 + 20×l_5))) + J_0 \\ \| = l_1 + 20×l_2 + 360×l_3 + 7200×l_4 + 144 000×l_5 \end{split} \end{equation}
\[ J = 7 + 20×(5 + 18×(12 + 20×(17 + 20×12))) + 584 283 = 2 439 110 \]
Een CJDN \( J \) omrekenen naar een Haab-datum \( \{ h_d, h_m \} \) gaat als volgt:
\begin{align} H \| = \dmodp{J + 65}{365} \\ h_m \| = \dfloorratio{H}{20} + 1 \\ h_d \| = \dmodp{H}{20} \end{align}
\( H \) is het aantal dagen sinds het begin van het huidige Haab-jaar (met \( H = 0 \) voor de eerste dag van het Haab-jaar).
\begin{align*} H \| = \dmodp{J + 65}{365} = \dmodp{2 439 175}{365} = 245 \\ h_m \| = \dfloorratio{245}{20} + 1 = 13 \\ h_d \| = \dmodp{245}{20} = 5 \end{align*}
dus die dag is 245 dagen sinds het begin van het huidige Haab-jaar en komt overeen met de 5e dag van de 13e maand, dus \( \{ 5, 13 \} \).
We rekenen CJDN \( J \) als volgt om naar een Tzolkin-datum \( \{ t_t, t_v \} \):
\begin{align} t_t \| = \dmodp{J + 5}{13} + 1 \label{eq:trecena} \\ t_v \| = \dmodp{J + 16}{20} + 1 \label{eq:venteina} \end{align}
\begin{align*} t_t \| = \dmodp{2 439 110 + 5}{13} + 1 = 3 + 1 = 4 \\ t_v \| = \dmodp{2 439 110 + 16}{20} + 1 = 6 + 1 = 7 \end{align*}
dus die datum is \( \{ 4, 7 \} \).
Het omrekenen van CJDN \( J \) naar Lange Telling \( L ≡ l_5.l_4.l_3.l_2.l_1 \) gaat dan als volgt:
\begin{align} d_4 \| = J − J_0 = J − 584 283 \\ \{ l_5, d_3 \} \| = \Div(d_4, 144 000) \\ \{ l_4, d_2 \} \| = \Div(d_3, 7200) \\ \{ l_3, d_1 \} \| = \Div(d_2, 360) \\ \{ l_2, l_1 \} \| = \Div(d_1, 20) \end{align}
\begin{align*} d_4 \| = J − J_0 = J − 584 283 = 2 439 110 − 584 283 = 1 854 827 \\ \{ l_5, d_3 \} \| = \Div(d_4, 144 000) = \Div(1 854 827, 144 000) = \{ 12, 126 827 \} \\ \{ l_4, d_2 \} \| = \Div(d_3, 7200) = \Div(126 827, 7200) = \{ 17, 4427 \} \\ \{ l_3, d_1 \} \| = \Div(d_2, 360) = \Div(4427, 360) = \{ 12, 107 \} \\ \{ l_2, l_1 \} \| = \Div(d_1, 20) = \Div(107, 20) = \{ 5, 7 \} \end{align*}
Het antwoord is \( L = 12.17.12.5.7 \).
Ik heb een zongebonden maankalender bedacht waarin bijna alle maanden elk jaar hetzelfde aantal dagen hebben. De kalender volgt de seizoenen met behulp van de cyclus van Meton, die 19 jaar duurt. Elk jaar bevat 12 of 13 maanden. De "kortste" jaren van 12 maanden bevatten 354 dagen. De "korte" jaren van 12 maanden bevatten 355 dagen. De "lange" jaren van 13 maanden hebben allemaal 384 dagen. De jaarlengtes zijn:
jaar | maanden | dagen | type |
---|---|---|---|
1 | 12 | 354 | kortst |
2 | 12 | 355 | kort |
3 | 13 | 384 | lang |
4 | 12 | 354 | kortst |
5 | 12 | 354 | kortst |
6 | 13 | 384 | lang |
7 | 12 | 355 | kort |
8 | 13 | 384 | lang |
9 | 12 | 354 | kortst |
10 | 12 | 354 | kortst |
11 | 13 | 384 | lang |
12 | 12 | 355 | kort |
13 | 12 | 354 | kortst |
14 | 13 | 384 | lang |
15 | 12 | 354 | kortst |
16 | 12 | 355 | kort |
17 | 13 | 384 | lang |
18 | 12 | 354 | kortst |
19 | 13 | 384 | lang |
Dit zijn samen 235 maanden (125 lang, 110 kort) en 6940 dagen in de cyclus van 19 jaar.
Alle oneven maanden (behalve de 13e) zijn 30 dagen lang, en alle even maanden zijn 29 dagen lang, behalve dat in korte en lange jaren (van 355 of 384 dagen) de 12e maand 30 dagen heeft in plaats van 29.
354 | 355 | 384 | |
---|---|---|---|
maand | dagen | ||
1 | 30 | 30 | 30 |
2 | 29 | 29 | 29 |
3 | 30 | 30 | 30 |
4 | 29 | 29 | 29 |
5 | 30 | 30 | 30 |
6 | 29 | 29 | 29 |
7 | 30 | 30 | 30 |
8 | 29 | 29 | 29 |
9 | 30 | 30 | 30 |
10 | 29 | 29 | 29 |
11 | 30 | 30 | 30 |
12 | 29 | 30 | 30 |
13 | 29 |
Gegeven jaar \( a \), maand \( m \), en dag \( d \) in deze maankalender kan het lopende dagnummer \( s \) als volgt berekend worden:
\begin{align} d_1 \| = \dfloorratio{384 m − 390}{13} + d \\ s \| = 354 a + 30\dfloorratio{7 a + 2}{19} + \dfloorratio{4 a + 18}{19} + d_1 \\ J \| = s + 1 721 019 \end{align}
\begin{align*} d_1 \| = \dfloorratio{384 m − 390}{13} + d = \dfloorratio{384×1 − 390}{13} \\ \| = \dfloorratio{−6}{13} + 1 = −1 + 1 = 0 \\ s \| = 354 a + 30\dfloorratio{7 a + 2}{19} + \dfloorratio{4 a + 18}{19} + d_1 \\ \| = 354×2033 + 30\dfloorratio{7×2033 + 2}{19} + \dfloorratio{4×2033 + 18}{19} + 0 \\ \| = 719 682 + 30\dfloorratio{14233}{19} + \dfloorratio{8150}{19} \\ \| = 719 682 + 30×749 + 428 = 742 580 \\ J \| = s + 1 721 019 = 742 580 + 1 721 019 = 2 463 599 \end{align*}
dus dag 1 van maand 1 van jaar 2033 in de maankalender komt overeen met CJDN 2 463 599, die overeenkomt met 1 januari 2033 in de moderne (Gregoriaanse) kalender.
Gegeven CJDN \( J \) zijn jaar \( a \), maand \( m \) en dag \( d \) in deze maankalender te berekenen uit
\begin{align} s \| = J − 1 721 019 \\ α_2 \| = \dfloorratio{19 s + 511}{6940} \\ δ_2 \| = s − 354 α_2 − 30 \dfloorratio{7 α_2 + 2}{19} − \dfloorratio{4 α_2 + 18}{19} \\ a \| = α_2 + \dfloorratio{δ_2}{385} \\ d_1 \| = s − 354 a − 30 \dfloorratio{7 a + 2}{19} − \dfloorratio{4 a + 18}{19} \\ \{ m, ω_3 \} \| = \Div(13 d_1 + 389, 384) \\ d_0 \| = \dfloorratio{ω_3}{13} \\ d \| = d_0 + 1 \end{align}
\begin{align*} s \| = J − 1 721 019 = 2 459 695 − 1 721 019 = 738 676 \\ α_2 \| = \dfloorratio{19s + 511}{6940} = \dfloorratio{19×738 676 + 511}{6940} = \dfloorratio{14 035 355}{6940} = 2022 \\ δ_2 \| = s − 354 α_2 − 30 \dfloorratio{7 α_2 + 2}{19} − \dfloorratio{4 α_2 + 18}{19} \\ \| = 738 676 − 354×2022 − 30 \dfloorratio{7×2022 + 2}{19} − \dfloorratio{4×2022 + 18}{19} \\ \| = 738 676 − 715 788 − 30 \dfloorratio{14156}{19} − \dfloorratio{8106}{19} \\ \| = 22888 − 30×745 − 426 = 112 \\ a \| = α_2 + \dfloorratio{δ_2}{385} = 2022 + \dfloorratio{112}{385} = 2022 \\ d_1 \| = s − 354 a − 30 \dfloorratio{7 a + 2}{19} − \dfloorratio{4 a + 18}{19} = 112 \\ \{ m, ω_3 \} \| = \Div(13 d_1 + 389, 384) = \Div(13×112 + 389, 384) = \Div(1845, 384) = \{ 4, 309 \} \\ d \| = \dfloorratio{ω_3}{13} + 1 = \dfloorratio{309}{13} + 1 = 23 + 1 = 24 \end{align*}
dus de gezochte datum is dag 24 van maand 4 van jaar 2022.
De Chinese kalender is een lunisolaire kalender. De datum van het Chinese Nieuwjaar hangt af van de positie van de Zon en de Maan, maar een preciese manier om die posities uit te rekenen is niet vastgelegd. Hieronder beschrijf ik een paar aspecten van de Chinese kalender.
In de traditionele Chinese kalender heeft elk jaar een naam uit een kringloop van 10 "hemelse stammen" en een naam uit een kringloop van 12 "aardse takken". Voor elk volgende jaar gaan zowel de hemelse stam als de aardse tak één omhoog. De (onvertaalbare) hemelse stammen zijn 1. jiǎ, 2. yǐ, 3. bǐng, 4. dīng, 5. wù, 6. jǐ, 7. gēng, 8. xīn, 9. rén, 10. guǐ. De aardse takken zijn 1. zǐ (rat), 2. chǒu (os), 3. yín (tijger), 4. mǎo (konijn), 5. chén (draak), 6. sì (slang), 7. wǔ (paard), 8. wèi (geit), 9. shēn (aap), 10. yǒu (haan), 11. xū (hond), 12. hài (varken).
De hemelse stam \( t \) (van 1 tot 10) en aardse tak \( r \) (van 1 tot 12) kun je als volgt berekenen uit het (astronomische) Gregoriaanse jaarnummer \( a \):
\begin{align} t \| = \dmodp{a + 6}{10} + 1 \label{eq:jnaarchinees} \\ r \| = \dmodp{a + 8}{12} + 1 \end{align}
Het nummer \( n \) in de gezamelijke kringloop van 60 jaren is
\begin{equation} n = \dmodp{a + 56}{60} + 1 \end{equation}
\begin{align*} t \| = \dmodp{2000 + 6}{10} + 1 = 6 + 1 = 7 \\ r \| = \dmodp{2000 + 8}{12} + 1 = 4 + 1 = 5 \\ n \| = \dmodp{2000 + 56}{60} + 1 = 16 + 1 = 17 \end{align*}
dus vroeg in het Gregoriaanse jaar 2000 begon een Chinees jaar van de metalen Draak, van de gēng-tak (gēngchén).
De jaren die een bepaalde hemelse stam \( t \) of een bepaalde aardse tak \( r \) hebben zijn
\begin{align} a \| ≡ 1983 + t \pmod{10} \\ a \| ≡ 1983 + r \pmod{12} \\ a \| ≡ 1983 + n \pmod{60} \end{align}
De jaren die zowel hemelse stam \( t \) als aardse tak \( r \) hebben zijn
\begin{equation} a ≡ 1983 + 25 r − 24 t \pmod{60} \label{eq:chineesnaarj} \end{equation}
\[ a ≡ 1983 + 7 = 1990 \pmod{10} \]
dus 1990 en elke 10 jaar vroeger of later, dus ook 2000.
Voor \( r = 5 \) vinden we
\[ a ≡ 1983 + 5 = 1988 \pmod{12} \]
dus 1988 en elke 12 jaar vroeger of later, dus ook 2000.
Voor \( t = 7 \) en \( r = 5 \) vinden we
\[ a ≡ 1983 + 25×5 − 24×7 = 1940 \pmod{60} \]
dus 1940 en elke 60 jaar vroeger of later, dus ook 2000.
Pas op! Niet elke combinatie van \( t \) en \( r \) is geldig! Alleen combinaties waarvoor \( t ≡ r \pmod{2} \) zijn geldig, dus het verschil tussen \( t \) en \( r \) moet even zijn.
Het HYSN-systeem is een speciale manier om een nummer aan een jaar te geven. De omrekening van een Gregoriaans (of Juliaans proleptisch) jaartal naar een HYSN-jaartal gaat als volgt:
\begin{align} \{ ω_1, a_1 \} \| = \Div(a + 67016, 10800) \\ \{ ω_2, a_2 \} \| = \Div(a_1, 360) \\ \{ ω_3, a_3 \} \| = \Div(a_2, 30) \\ H \| = ω_1 + 1 \\ Y \| = ω_2 + 1 \\ S \| = ω_3 + 1 \\ N \| = a_3 + 1 \end{align}
\begin{align*} \{ ω_1, a_1 \} \| = \Div(a + 67016, 10800) = \Div(2016 + 67016, 10800) \\ \| = \Div(69032, 10800) = \{ 6, 4232 \} \\ \{ ω_2, a_2 \} \| = \Div(a_1, 360) = \Div(4232, 360) = \{ 11, 272 \} \\ \{ ω_3, a_3 \} \| = \Div(a_2, 30) = \Div(272, 30) = \{ 9, 2 \} \\ H \| = ω_1 + 1 = 6 + 1 = 7 \\ Y \| = ω_2 + 1 = 11 + 1 = 12 \\ S \| = ω_3 + 1 = 9 + 1 = 10 \\ N \| = a_3 + 1 = 2 + 1 = 3 \end{align*}
dus het HYSN-jaartal is 0712-1003.
De andere kant op is eenvoudiger. Gegeven \( H \), \( Y \), \( S \) en \( N \) is het Gregoriaanse jaartal \( a \) gelijk aan
\begin{equation} a = H×10800 + Y×360 + S×30 + N − 78207 \end{equation}
\begin{align*} H \| = 7 \\ Y \| = 12 \\ S \| = 10 \\ N \| = 3 \\ a \| = 7×10800 + 12×360 + 10×30 + 3 − 78207 \\ \| = 75600 + 4320 + 300 + 3 − 78207 = 2016 \end{align*}
We kunnen veel kalenderformules afleiden door rechte lijnen te vinden die met afronding de juiste resultaten geven.
We gebruiken speciale notatie voor sommige zaken.
\begin{equation} \dfloorp{x}{p} ≝ p\dfloor{\dfrac{x}{p}} \label{eq:dfloorp} \qquad (p \gt 0) \end{equation}
Met \( p = 1 \) krijg je de reguliere vloerfunctie:
\begin{equation} \dfloor{x} ≡ \dfloorp{x}{1} \end{equation}
\begin{equation} \dmodp{x}{p} ≡ x \bmod p ≡ x − p\dfloorratio{x}{p} ≡ x − \dfloorp{x}{p} \label{eq:dmodp} \qquad (p \gt 0)\end{equation}
\begin{equation} 0 ≤ \dmodp{x}{p} \lt p \end{equation}
Zie Tabel 1 voor voorbeelden.
\begin{equation}\dceilp{x}{p} ≝ p\dceilratio{x}{p} \qquad (p \gt 0) \end{equation}
De niet-standaardvariant is gelijk aan de reguliere plafondfunctie als \( p = 1 \):
\begin{equation} \dceil{x} ≡ \dceilp{x}{1} \end{equation}
Zie Tabel 1 voor voorbeelden.
\begin{equation} \ddomp{x}{p} ≡ x \bdom p ≡ p\dceilratio{x}{p} − x = \dceilp{x}{p} − x \qquad (p \gt 0) \label{eq:ddomp} \end{equation}
\begin{equation} 0 ≤ \ddomp{x}{p} \lt p \end{equation}
Zie Tabel 1 voor voorbeelden.
\begin{align*} m \| = \dfloorratio{x}{y} \\ n \| = \dmodp{x}{y} = x \bmod y \end{align*}
Hier zijn een paar nuttige relaties tussen de functies die hierboven gedefinieerd werden. Voor allemaal geldt \( p \gt 0 \). Hun afleidingen staan verderop.
In de volgende formules betekent het symbool \( ∵ \) "omdat".
\begin{eqnarray*} \dceilp{−4.2}{2} \| = \| −\dfloorp{4.2}{2} \\ −4 \| = \| −4 \end{eqnarray*}
Voorbeeld met \( x = 4, p = 2 \):
\begin{eqnarray*} \dceilp{−4}{2} \| = \| −\dfloorp{4}{2} \\ −4 \| = \| −4 \end{eqnarray*}
Bewijs:
\begin{eqnarray} \dceilp{−x}{p} \| = \| −\dceilp{x}{p} + p\iverson{x ⊥ p} \| \eqvide{eq:ceil(−x)i} \notag \\ \| = \| −\dfloorp{x}{p} \| \eqvide{eq:ceil(x)−floor(x)i} \end{eqnarray}
\begin{equation} \ddomp{−x}{p} = \dmodp{x}{p} \qquad (p \gt 0) \label{eq:dom(−x)} \end{equation}
\begin{eqnarray*} \ddomp{−4.2}{2} \| = \| \dmodp{4.2}{2} \\ 0.2 \| = \| 0.2 \end{eqnarray*}
Bewijs:
\begin{eqnarray} \ddomp{−x}{p} \| = \| \dceilp{−x}{p} − (−x) \| \eqvide{eq:ddomp} \notag \\ \| = \| −\dfloorp{x}{p} + x \| \eqvide{eq:ceil(−x)} \notag \\ \| = \| −\left( x − \dmodp{x}{p} \right) + x \| \eqvide{eq:ddomp} \notag \\ \| = \| \dmodp{x}{p} \end{eqnarray}
\begin{equation} \dfloorp{−x}{p} = −\dceilp{x}{p} \qquad (p \gt 0) \label{eq:floor(−x)} \end{equation}
\begin{eqnarray*} \dfloorp{−4.2}{2} \| = \| −\dceilp{4.2}{2} \\ −6 \| = \| −6 \end{eqnarray*}
Voorbeeld met \( x = 4, p = 2 \):
\begin{eqnarray*} \dfloorp{−4}{2} \| = \| −\dceilp{4}{2} \\ −4 \| = \| −4 \end{eqnarray*}
Bewijs:
\begin{eqnarray} \dfloorp{−x}{p} \| = \| −\dfloorp{x}{p} − p\iverson{x ⊥ p} \| \eqvide{eq:floor(−x)i} \notag \\ \| = \| −\dceilp{x}{p} \| \eqvide{eq:ceil(x)−floor(x)i} \end{eqnarray}
\begin{equation} \dmodp{−x}{p} = \ddomp{x}{p} \qquad (p \gt 0) \label{eq:mod(−x)} \end{equation}
\begin{eqnarray*} \dmodp{−4.2}{2} \| = \| \ddomp{4.2}{2} \\ 1.8 \| = \| 1.8 \end{eqnarray*}
Bewijs:
\begin{eqnarray} \dmodp{−x}{p} \| = \| −x − \dfloorp{−x}{p} \| \eqvide{eq:dmodp} \notag \\ \| = \| −x + \dceilp{x}{p} \| \eqvide{eq:floor(−x)} \notag \\ \| = \| −x + x + \ddomp{x}{p} \| \eqvide{eq:ddomp} \notag \\ \| = \| \ddomp{x}{p} \end{eqnarray}
\begin{equation} \dceilp{−x}{p} = −\dceilp{x}{p} + p\iverson{x ⊥ p} \qquad (p \gt 0) \label{eq:ceil(−x)i} \end{equation}
\begin{eqnarray*} \dceilp{−4.2}{2} \| = \| −\dceilp{4.2}{2} + 2×\iverson{4.2 ⊥ 2} \\ −4 \| = \| −6 + 2×1 \\ −4 \| = \| −4 \end{eqnarray*}
Voorbeeld met \( x = 4, p = 2 \):
\begin{eqnarray*} \dceilp{−4}{2} \| = \| −\dceilp{4}{2} + 2×\iverson{4 ⊥ 2} \\ −4 \| = \| −4 + 2×0 \\ −4 \| = \| −4 \end{eqnarray*}
Bewijs:
\begin{eqnarray} \dceilp{−x}{p} \| = \| \dceilp{−\left( \dceilp{x}{p} − \ddomp{x}{p} \right)}{p} \| \eqvide{eq:ddomp} \notag \\ \| = \| \dceilp{−\dceilp{x}{p} + \ddomp{x}{p}}{p} \notag \\ \| = \| −\dceilp{x}{p} + \dceilp{−\ddomp{x}{p}}{p} \| ∵ \dceilp{x}{p} ∥ p \end{eqnarray}
Als \( x ∥ p \) dan \( \ddomp{x}{p} = \dceilp{−\ddomp{x}{p}}{p} = \iverson{x ⊥ p} = 0 \) dus \( \dceilp{−x}{p} = −\dceilp{x}{p} + p\iverson{x ⊥ p} \).
Als \( x ⊥ p \) dan \( 0 \lt \ddomp{x}{p} \lt p \) dus \( −p \lt −\ddomp{x}{p} \lt 0 \) dus \( \dceilp{−\ddomp{x}{p}}{p} = p \) dus weer \( \dceilp{−x}{p} = −\dceilp{x}{p} + p\iverson{x ⊥ p} \).
\begin{equation} \ddomp{−x}{p} = −\ddomp{x}{p} + p\iverson{x ⊥ p} \qquad (p \gt 0) \label{eq:dom(−x)i} \end{equation}
\begin{eqnarray*} \ddomp{−4.2}{2} \| = \| −\ddomp{4.2}{2} + 2×\iverson{4.2 ⊥ 2} \\ 0.2 \| = \| −1.8 + 2×1 \\ 0.2 \| = \| 0.2 \end{eqnarray*}
Bewijs:
\begin{eqnarray} \ddomp{−x}{p} \| = \| \dmodp{x}{p} \| \eqvide{eq:dom(−x)i} \notag \\ \| = \| −\ddomp{x}{p} + p\iverson{x ⊥ p} \| \eqvide{eq:mod(x)+dom(x)i} \end{eqnarray}
\begin{equation} \dfloorp{−x}{p} = −\dfloorp{x}{p} − p\iverson{x ⊥ p} \qquad (p \gt 0) \label{eq:floor(−x)i} \end{equation}
\begin{eqnarray*} \dfloorp{−4.2}{2} \| = \| −\dfloorp{4.2}{2} − 2×\iverson{4.2 ⊥ 2} \\ −6 \| = \| −4 − 2×1 \\ −6 \| = \| −6 \end{eqnarray*}
Voorbeeld met \( x = 4, p = 2 \):
\begin{eqnarray*} \dfloorp{−4}{2} \| = \| −\dfloorp{4}{2} − 2×\iverson{4 ⊥ 2} \\ −4 \| = \| −4 − 2×0 \\ −4 \| = \| −4 \end{eqnarray*}
Bewijs:
\begin{eqnarray} \dfloorp{−x}{p} \| = \| \dfloorp{−\left( \dfloorp{x}{p} + \dmodp{x}{p} \right)}{p} \| \eqvide{eq:dmodp} \notag \\ \| = \| \dfloorp{−\dfloorp{x}{p} − \dmodp{x}{p}}{p} \notag \\ \| = \| −\dfloorp{x}{p} + \dfloorp{−\dmodp{x}{p}}{p} \| ∵ \dfloorp{x}{p} ∥ p \end{eqnarray}
Als \( x ∥ p \) dan \( \dmodp{x}{p} = \dfloorp{−\dmodp{x}{p}}{p} = \iverson{x ⊥ p} = 0 \) dus \( \dfloorp{−x}{p} = −\dfloorp{x}{p} − p\iverson{x ⊥ p} \).
Als \( x ⊥ p \) dan \( 0 \lt \dmodp{x}{p} \lt p \) dus \( −p \lt −\dmodp{x}{p} \lt 0 \) dus \( \dfloorp{−\dmodp{x}{p}}{p} = −p \) dus weer \( \dfloorp{−x}{p} = −\dfloorp{x}{p} − p\iverson{x ⊥ p} \).
\begin{equation} \dmodp{−x}{p} = −\dmodp{x}{p} + p\iverson{x ⊥ p} \qquad (p \gt 0) \label{eq:mod(−x)i} \end{equation}
\begin{eqnarray*} \dmodp{−4.2}{2} \| = \| −\dmodp{4.2}{2} + 2×\iverson{4.2 ⊥ 2} \\ 1.8 \| = \| −0.2 + 2×1 \\ 1.8 \| = \| 1.8 \end{eqnarray*}
Bewijs:
\begin{eqnarray} \dmodp{−x}{p} \| = \| \ddomp{x}{p} \| \eqvide{eq:mod(−x)i} \notag \\ \| = \| −\dmodp{x}{p} + p\iverson{x ⊥ p} \| \eqvide{eq:mod(x)+dom(x)i} \end{eqnarray}
\begin{equation} \dceilp{x}{p} − \dfloorp{x}{p} = p\iverson{x ⊥ p} \label{eq:ceil(x)−floor(x)i} \qquad (p \gt 0) \end{equation}
\begin{eqnarray*} \dceilp{4.2}{2} − \dfloorp{4.2}{2} \| = \| 2×\iverson{4.2 ⊥ 2} \\ 6 − 4 \| = \| 2×1 \\ 2 \| = \| 2 \end{eqnarray*}
Voorbeeld met \( x = 4, p = 2 \):
\begin{eqnarray*} \dceilp{4}{2} − \dfloorp{4}{2} \| = \| 2×\iverson{4 ⊥ 2} \\ 4 − 4 \| = \| 2×0 \\ 0 \| = \| 0 \end{eqnarray*}
Bewijs: Als \( x ∥ p \) dan \( \dfloorp{x}{p} = \dceilp{x}{p} = x \) dus hun verschil is 0. Als \( x ⊥ p \) dan is \( \dceilp{x}{p} \) het veelvoud van \( p \) net groter dan \( x \) en \( \dfloorp{x}{p} \) is het veelvoud van \( p \) net kleiner dan \( x \), dus hun verschil is \( p \).
\begin{equation} \dmodp{x}{p} + \ddomp{x}{p} = p\iverson{x ⊥ p} \qquad (p \gt 0) \label{eq:mod(x)+dom(x)i} \end{equation}
\begin{eqnarray*} \dmodp{4.2}{2} + \ddomp{4.2}{2} \| = \| 2×\iverson{4.2 ⊥ 2} \\ 0.2 + 1.8 \| = \| 2×1 \\ 2 \| = \| 2 \end{eqnarray*}
Voorbeeld met \( x = 4, p = 2 \):
\begin{eqnarray*} \dmodp{4}{2} + \ddomp{4}{2} \| = \| 2×\iverson{4 ⊥ 2} \\ 0 + 0 \| = \| 2×0 \\ 0 \| = \| 0 \end{eqnarray*}
Bewijs: Als \( x ∥ p \) dan \( \dmodp{x}{p} = \ddomp{x}{p} = 0 \) dus hun som is 0. Als \( x ⊥ p \) dan is \( \dmodp{x}{p} \) de afstand tot het dichtstbijzijnde kleinere veelvoud van \( p \), en \( \ddomp{x}{p} \) is the afstand tot het dichtstbijzijnde hogere veelvoud van \( p \), dus hun som is \( p \).
\begin{equation} \dceilp{\dceilp{x}{p}}{p} = \dceilp{x}{p} \qquad (p \gt 0) \label{eq:ceil(ceil(x))} \end{equation}
\begin{eqnarray*} \dceilp{\dceilp{4.2}{2}}{2} \| = \| \dceilp{4.2}{2} \\ \dceilp{6}{2} \| = \| 6 \\ 6 \| = \| 6 \end{eqnarray*}
Bewijs: \( \dceilp{x}{p} ∥ p \), dus daarop \( \dceilp{•}{p} \) toepassen verandert de waarde niet.
\begin{equation} \dceilp{−\dceilp{x}{p}}{p} = −\dceilp{x}{p} \qquad (p \gt 0) \label{eq:ceil(−ceil(x))} \end{equation}
\begin{eqnarray*} \dceilp{−\dceilp{4.2}{2}}{2} \| = \| −\dceilp{4.2}{2} \\ \dceilp{−6}{2} \| = \| −6 \\ −6 \| = \| −6 \end{eqnarray*}
Bewijs: \( −\dceilp{x}{p} ∥ p \), dus daarop \( \dceilp{•}{p} \) toepassen verandert de waarde niet.
\begin{equation} \dceilp{\dfloorp{x}{p}}{p} = \dfloorp{x}{p} \qquad (p \gt 0) \label{eq:ceil(floor(x))} \end{equation}
\begin{eqnarray*} \dceilp{\dfloorp{4.2}{2}}{2} \| = \| \dfloorp{4.2}{2} \\ \dceilp{4}{2} \| = \| 4 \\ 4 \| = \| 4 \end{eqnarray*}
Bewijs: \( \dfloorp{x}{p} ∥ p \), dus daarop \( \dfloorp{•}{p} \) toepassen verandert de waarde niet.
\begin{equation} \dceilp{−\dfloorp{x}{p}}{p} = −\dfloorp{x}{p} \qquad (p \gt 0) \label{eq:ceil(−floor(x))} \end{equation}
\begin{eqnarray*} \dceilp{−\dfloorp{4.2}{2}}{2} \| = \| −\dfloorp{4.2}{2} \\ \dceilp{−4}{2} \| = \| −4 \\ −4 \| = \| −4 \end{eqnarray*}
Bewijs: \( −\dfloorp{x}{p} ∥ p \), dus \( \dceilp{•}{p} \) erop toepassen verandert de waarde niet.
\begin{equation} \ddomp{\ddomp{x}{p}}{p} = \ddomp{−x}{p} \qquad (p \gt 0) \label{eq:dom(dom(x))}\end{equation}
\begin{eqnarray*} \ddomp{\ddomp{4.2}{2}}{2} \| = \| \ddomp{−4.2}{2} \\ \ddomp{1.8}{2} \| = \| 0.2 \\ 0.2 \| = \| 0.2 \end{eqnarray*}
Bewijs:
\begin{eqnarray} \ddomp{\ddomp{x}{p}}{p} \| = \| \ddomp{\dceilp{x}{p} − x}{p} \| \eqvide{eq:ddomp} \notag \\ \| = \| \ddomp{−x}{p} \| ∵ \dceilp{x}{p} ∥ p \end{eqnarray}
\begin{equation} \ddomp{−\ddomp{x}{p}}{p} = \ddomp{−x}{p} \qquad (p \gt 0) \label{eq:dom(−dom(x))}\end{equation}
\begin{eqnarray*} \ddomp{\ddomp{4.2}{2}}{2} \| = \| \ddomp{−4.2}{2} \\ \ddomp{1.8}{2} \| = \| 0.2 \\ 0.2 \| = \| 0.2 \end{eqnarray*}
Bewijs:
\begin{eqnarray} \ddomp{\ddomp{x}{p}}{p} \| = \| \ddomp{\dceilp{x}{p} − x}{p} \| \eqvide{eq:ddomp} \notag \\ \| = \| \ddomp{−x}{p} \| ∵ \dceilp{x}{p} ∥ p \end{eqnarray}
\begin{equation} \ddomp{\dmodp{x}{p}}{p} = \ddomp{x}{p} \qquad (p \gt 0) \label{eq:dom(mod(x))} \end{equation}
\begin{eqnarray*} \ddomp{\dmodp{4.2}{2}}{2} \| = \| \ddomp{4.2}{2} \\ \ddomp{0.2}{2} \| = \| 1.8 \\ 1.8 \| = \| 1.8 \end{eqnarray*}
Bewijs:
\begin{eqnarray} \ddomp{\dmodp{x}{p}}{p} \| = \| \ddomp{x − \dfloorp{x}{p}}{p} \| \eqvide{eq:dmodp} \notag \\ \| = \| \ddomp{x}{p} \| ∵ \dfloorp{x}{p} ∥ p \end{eqnarray}
\begin{equation} \ddomp{−\dmodp{x}{p}}{p} = \ddomp{−x}{p} \qquad (p \gt 0) \label{eq:dom(−mod(x))} \end{equation}
\begin{eqnarray*} \ddomp{−\dmodp{4.2}{2}}{2} \| = \| \ddomp{−4.2}{2} \\ \ddomp{−0.2}{2} \| = \| 0.2 \\ 0.2 \| = \| 0.2 \end{eqnarray*}
Bewijs:
\begin{eqnarray} \ddomp{−\dmodp{x}{p}}{p} \| = \| \ddomp{−\dparen{x − \dfloorp{x}{p}}}{p} \| \eqvide{eq:dmodp} \notag \\ \| = \| \ddomp{−x}{p} \| ∵ \dfloorp{x}{p} ∥ p \end{eqnarray}
\begin{equation} \dfloorp{\dceilp{x}{p}}{p} = \dceilp{x}{p} \qquad (p \gt 0) \label{eq:floor(ceil(x))} \end{equation}
\begin{eqnarray*} \dfloorp{\dceilp{4.2}{2}}{2} \| = \| \dceilp{4.2}{2} \\ \dfloorp{6}{2} \| = \| 6 \\ 6 \| = \| 6 \end{eqnarray*}
Bewijs: \( \dceilp{x}{p} ∥ p \), dus daarop \( \dfloorp{•}{p} \) toepassen verandert de waarde niet.
\begin{equation} \dfloorp{−\dceilp{x}{p}}{p} = −\dceilp{x}{p} \qquad (p \gt 0) \label{eq:floor(−ceil(x))} \end{equation}
\begin{eqnarray*} \dfloorp{−\dceilp{4.2}{2}}{2} \| = \| −\dceilp{4.2}{2} \\ \dfloorp{−6}{2} \| = \| −6 \\ −6 \| = \| − 6 \end{eqnarray*}
Bewijs: \( −\dceilp{x}{p} ∥ p \), dus daarop \( \dfloorp{•}{p} \) toepassen verandert de waarde niet.
\begin{equation} \dfloorp{\dfloorp{x}{p}}{p} = \dfloorp{x}{p} \qquad (p \gt 0) \label{eq:floor(floor(x))} \end{equation}
\begin{eqnarray*} \dfloorp{\dfloorp{4.2}{2}}{2} \| = \| \dfloorp{4.2}{2} \\ \dfloorp{4}{2} \| = \| 4 \\ 4 \| = \| 4 \end{eqnarray*}
Bewijs: \( \dfloorp{x}{p} ∥ p \), dus daarop \( \dceilp{•}{p} \) toepassen verandert de waarde niet.
\begin{equation} \dfloorp{−\dfloorp{x}{p}}{p} = −\dfloorp{x}{p} \qquad (p \gt 0) \label{eq:floor(−floor(x))} \end{equation}
\begin{eqnarray*} \dfloorp{−\dfloorp{4.2}{2}}{2} \| = \| −\dfloorp{4.2}{2} \\ \dfloorp{−4}{2} \| = \| −4 \\ −4 \| = \| −4 \end{eqnarray*}
Bewijs: \( −\dfloorp{x}{p} ∥ p \), dus \( \dfloorp{•}{p} \) erop toepassen verandert de waarde niet.
\begin{equation} \dmodp{\ddomp{x}{p}}{p} = \dmodp{−x}{p} \qquad (p \gt 0) \label{eq:mod(dom(x))} \end{equation}
\begin{eqnarray*} \dmodp{\ddomp{4.2}{2}}{2} \| = \| \dmodp{−4.2}{2} \\ \dmodp{1.8}{2} \| = \| 1.8 \\ 1.8 \| = \| 1.8 \end{eqnarray*}
Bewijs:
\begin{eqnarray} \dmodp{\ddomp{x}{p}}{p} \| = \| \dmodp{\dceilp{x}{p} − x}{p} \| \eqvide{eq:ddomp} \notag \\ \| = \| \dmodp{−x}{p} \| ∵ \dceilp{x}{p} ∥ p \end{eqnarray}
\begin{equation} \dmodp{−\ddomp{x}{p}}{p} = \dmodp{−x}{p} \qquad (p \gt 0) \label{eq:mod(−dom(x))} \end{equation}
\begin{eqnarray*} \dmodp{\ddomp{4.2}{2}}{2} \| = \| \dmodp{−4.2}{2} \\ \dmodp{1.8}{2} \| = \| 1.8 \\ 1.8 \| = \| 1.8 \end{eqnarray*}
Bewijs:
\begin{eqnarray} \dmodp{\ddomp{x}{p}}{p} \| = \| \dmodp{\dceilp{x}{p} − x}{p} \| \eqvide{eq:ddomp} \notag \\ \| = \| \dmodp{−x}{p} \| ∵ \dceilp{x}{p} ∥ p \end{eqnarray}
\begin{equation} \dmodp{\dmodp{x}{p}}{p} = \dmodp{x}{p} \qquad (p \gt 0) \label{eq:mod(mod(x))} \end{equation}
\begin{eqnarray*} \dmodp{\dmodp{4.2}{2}}{2} \| = \| \dmodp{4.2}{2} \\ \dmodp{0.2}{2} \| = \| 0.2 \\ 0.2 \| = \| 0.2 \end{eqnarray*}
Bewijs:
\begin{eqnarray} \dmodp{\dmodp{x}{p}}{p} \| = \| \dmodp{x − \dfloorp{x}{p}}{p} \| \eqvide{eq:dmodp} \notag \\ \| = \| \dmodp{x}{p} \| ∵ \dfloorp{x}{p} ∥ p \end{eqnarray}
\begin{equation}\dmodp{−\dmodp{x}{p}}{p} = \dmodp{−x}{p} \qquad (p \gt 0) \label{eq:mod(−mod)} \end{equation}
\begin{eqnarray*} \dmodp{−\dmodp{4.2}{2}}{2} \| = \| \dmodp{−4.2}{2} \\ \dmodp{−0.2}{2} \| = \| 1.8 \\ 1.8 \| = \| 1.8 \end{eqnarray*}
Bewijs:
\begin{eqnarray} \dmodp{−\dmodp{x}{p}}{p} \| = \| \dmodp{−\dparen{x − \dfloorp{x}{p}}}{p} \| \eqvide{eq:dmodp} \notag \\ \| = \| \dmodp{−x}{p} \| ∵ \dfloorp{x}{p} ∥ p \end{eqnarray}
\begin{equation} \ddomp{x + y}{p} = \ddomp{−\ddomp{x}{p} − \ddomp{y}{p}}{p} \qquad (p \gt 0) \label{eq:dom(x+y)} \end{equation}
\begin{eqnarray*} \ddomp{4.2 + 1.4}{2} \| = \| \ddomp{−\ddomp{4.2}{2} − \ddomp{1.4}{2}}{2} \\ \ddomp{5.6}{2} \| = \| \ddomp{−1.8 − 0.6}{2} \\ 0.4 \| = \| \ddomp{−2.4}{2} \\ 0.4 \| = \| 0.4 \end{eqnarray*}
Bewijs:
\begin{eqnarray} \ddomp{x + y}{p} \| = \| \ddomp{\left( \dceilp{x}{p} − \ddomp{x}{p} \right) + \left( \dceilp{y}{p} − \ddomp{y}{p} \right)}{p} \| \eqvide{eq:ddomp} \notag \\ \| = \| \ddomp{−\ddomp{x}{p} − \ddomp{y}{p}}{p} \| ∵ \dceilp{x}{p} + \dceilp{y}{p} ∥ p \end{eqnarray}
\begin{equation} \ddomp{x − y}{p} = \ddomp{\ddomp{y}{p} − \ddomp{x}{p}}{p} \qquad (p \gt 0) \label{eq:dom(x−y)} \end{equation}
\begin{eqnarray*} \ddomp{4.2 − 1.4}{2} \| = \| \ddomp{\ddomp{1.4}{2} − \ddomp{4.2}{2}}{2} \\ \ddomp{2.8}{2} \| = \| \ddomp{0.6 − 1.8}{2} \\ 1.2 \| = \| \ddomp{−1.2}{2} \\ 1.2 \| = \| 1.2 \end{eqnarray*}
Bewijs:
\begin{eqnarray} \ddomp{x − y}{p} \| = \| \ddomp{\left( \dceilp{x}{p} − \ddomp{x}{p} \right) − \left( \dceilp{y}{p} − \ddomp{y}{p} \right)}{p} \| \eqvide{eq:ddomp} \notag \\ \| = \| \ddomp{\ddomp{y}{p} − \ddomp{x}{p}}{p} \| ∵ \dceilp{x}{p} − \dceilp{y}{p} ∥ p \end{eqnarray}
\begin{equation} \dceilp{−\ddomp{x}{p} − \ddomp{y}{p}}{p} = −p\iverson{\ddomp{x}{p} + \ddomp{y}{p} \ge p} \qquad (p \gt 0) \label{eq:ceil(−dom(x)−dom(y))i} \end{equation}
\begin{eqnarray*} \dceilp{−\ddomp{4.2}{2} − \ddomp{1.8}{2}}{2} \| = \| −2×\iverson{\ddomp{4.2}{2} + \ddomp{1.8}{2} \ge 2} \\ \dceilp{−1.8 − 0.2}{2} \| = \| −2×\iverson{1.8 + 0.2 \ge 2} \\ \dceilp{−2}{2} \| = \| −2×\iverson{2 \ge 2} \\ −2 \| = \| −2×1 \end{eqnarray*}
Voorbeeld met \( x = 4.2, y = 1.9, p = 2 \):
\begin{eqnarray*} \dceilp{−\ddomp{4.2}{2} − \ddomp{1.9}{2}}{2} \| = \| −2×\iverson{\ddomp{4.2}{2} + \ddomp{1.9}{2} \ge 2} \\ \dceilp{−1.8 − 0.1}{2} \| = \| −2×\iverson{1.8 + 0.1 \ge 2} \\ \dceilp{−1.9}{2} \| = \| −2×\iverson{1.9 \ge 2} \\ 0 \| = \| −2×0 \end{eqnarray*}
Bewijs: \( 0 \le \ddomp{x}{p} + \ddomp{y}{p} \lt 2p \), dus
\begin{eqnarray} \ddomp{x}{p} + \ddomp{y}{p} \lt p \| ⇒ \| \dceilp{−\ddomp{x}{p} − \ddomp{y}{p}}{p} = 0 \notag \\ \ddomp{x}{p} + \ddomp{y}{p} \ge p \| ⇒ \| \dceilp{−\ddomp{x}{p} − \ddomp{y}{p}}{p} = −p \notag \\ ⇒ \dceilp{−\ddomp{x}{p} − \ddomp{y}{p}}{p} \| = \| −p\iverson{\ddomp{x}{p} + \ddomp{y}{p} \ge p} \end{eqnarray}
\begin{equation} \dceilp{−\ddomp{x}{p} + \ddomp{y}{p}}{p} = p\iverson{\ddomp{x}{p} − \ddomp{y}{p} \lt 0} \qquad (p \gt 0) \label{eq:ceil(dom(x)−dom(y)i} \end{equation}
\begin{eqnarray*} \dceilp{−\ddomp{5.4}{2} + \ddomp{1.4}{2}}{2} \| = \| 2×\iverson{\ddomp{5.4}{2} − \ddomp{1.4}{2} \lt 0} \\ \dceilp{−0.6 + 0.6}{2} \| = \| 2×\iverson{0.6 − 0.6 \lt 0} \\ \dceilp{0}{2} \| = \| 2×\iverson{0 \lt 0} \\ 0 \| = \| 0 \end{eqnarray*}
Voorbeeld met \( x = 5.5, y = 1.4, p = 2 \):
\begin{eqnarray*} \dceilp{−\ddomp{5.5}{2} + \ddomp{1.4}{2}}{2} \| = \| 2×\iverson{\ddomp{5.5}{2} − \ddomp{1.4}{2} \lt 0} \\ \dceilp{−0.5 + 0.6}{2} \| = \| 2×\iverson{0.5 − 0.6 \lt 0} \\ \dceilp{0.1}{2} \| = \| 2×\iverson{−0.1 \lt 0} \\ 2 \| = \| 2×1 \end{eqnarray*}
Bewijs: \( −p \lt −\ddomp{x}{p} + \ddomp{y}{p} \lt p \), dus
\begin{eqnarray} −\ddomp{x}{p} + \ddomp{y}{p} \le 0 \| ⇒ \| \dceilp{−\ddomp{x}{p} + \ddomp{y}{p}}{p} = 0 \notag \\ −\ddomp{x}{p} + \ddomp{y}{p} \gt 0 \| ⇒ \| \dceilp{−\ddomp{x}{p} + \ddomp{y}{p}}{p} = p \notag \\ ⇒ \dceilp{−\ddomp{x}{p} + \ddomp{y}{p}}{p} \| = \| p\iverson{−\ddomp{x}{p} + \ddomp{y}{p} \gt 0} \notag \\ \| = \| p\iverson{\ddomp{x}{p} − \ddomp{y}{p} \lt 0} \end{eqnarray}
\begin{equation} \dceilp{x + y}{p} = \dceilp{x}{p} + \dceilp{y}{p} − p\iverson{\ddomp{x}{p} + \ddomp{y}{p} \ge p} \qquad (p \gt 0) \label{eq:ceil(x+y)i} \end{equation}
\begin{eqnarray*} \dceilp{4.2 + 1.9}{2} \| = \| \dceilp{4.2}{2} + \dceilp{1.9}{2} − 2×\iverson{\ddomp{4.2}{2} + \ddomp{1.9}{2} \ge 2} \\ \dceilp{6.1}{2} \| = \| 6 + 2 − 2×\iverson{1.8 + 0.1 \ge 2} \\ 8 \| = \| 6 + 2 − 2×\iverson{1.9 \ge 2} \\ 8 \| = \| 8 − 2×0 \\ 8 \| = \| 8 \end{eqnarray*}
Voorbeeld met \( x = 4.2, y = 1.8, p = 2 \):
\begin{eqnarray*} \dceilp{4.2 + 1.8}{2} \| = \| \dceilp{4.2}{2} + \dceilp{1.8}{2} − 2×\iverson{\ddomp{4.2}{2} + \ddomp{1.8}{2} \ge 2} \\ \dceilp{6}{2} \| = \| 6 + 2 − 2×\iverson{1.8 + 0.2 \ge 2} \\ 6 \| = \| 6 + 2 − 2×\iverson{2 \ge 2} \\ 6 \| = \| 8 − 2×1 \\ 6 \| = \| 6 \end{eqnarray*}
Bewijs:
\begin{eqnarray} \dceilp{x + y}{p} \| = \| x + y + \ddomp{x + y}{p} \| \eqvide{eq:ddomp} \notag \\ \| = \| \dceilp{x}{p} − \ddomp{x}{p} + \dceilp{y}{p} − \ddomp{y}{p} + \ddomp{x + y}{p} \| \eqvide{eq:ddomp} \notag \\ \| = \| \dceilp{x}{p} − \ddomp{x}{p} + \dceilp{y}{p} − \ddomp{y}{p} \notag \\ \| \| + \ddomp{x}{p} + \ddomp{y}{p} − p\iverson{\ddomp{x}{p} + \ddomp{y}{p} \ge p} \| \eqvide{eq:dom(x+y)i} \notag \\ \| = \| \dceilp{x}{p} + \dceilp{y}{p} − p\iverson{\ddomp{x}{p} + \ddomp{y}{p} \ge p} \end{eqnarray}
\begin{equation} \dceilp{x − y}{p} = \dceilp{x}{p} − \dceilp{y}{p} + p\iverson{\ddomp{x}{p} − \ddomp{y}{p} \lt 0} \qquad (p \gt 0) \label{eq:ceil(x−y)i} \end{equation}
\begin{eqnarray*} \dceilp{5.4 − 1.4}{2} \| = \| \dceilp{5.4}{2} − \dceilp{1.4}{2} − 2×\iverson{\ddomp{5.4}{2} − \ddomp{1.4}{2} \lt 0} \\ \dceilp{4}{2} \| = \| 6 − 2 + 2×\iverson{0.6 − 0.6 \lt 0} \\ 4 \| = \| 6 − 2 + 2×\iverson{0 \lt 0} \\ 4 \| = \| 4 + 2×0 \end{eqnarray*}
Voorbeeld met \( x = 5.5, y = 1.4, p = 2 \):
\begin{eqnarray*} \dceilp{5.5 − 1.4}{2} \| = \| \dceilp{5.5}{2} − \dceilp{1.4}{2} + 2×\iverson{\ddomp{5.5}{2} − \ddomp{1.4}{2} \lt 0} \\ \dceilp{4.1}{2} \| = \| 6 − 2 + 2×\iverson{0.5 − 0.6 \lt 0} \\ 6 \| = \| 6 − 2 + 2×\iverson{−0.1 \lt 0} \\ 6 \| = \| 4 + 2×1 \\ 6 \| = \| 6 \end{eqnarray*}
Bewijs:
\begin{eqnarray} \dceilp{x − y}{p} \| = \| x − y + \ddomp{x − y}{p} \| \eqvide{eq:ddomp} \notag \\ \| = \| \dceilp{x}{p} − \ddomp{x}{p} − \left( \dceilp{y}{p} − \ddomp{y}{p} \right) + \ddomp{x − y}{p} \| \eqvide{eq:ddomp} \notag \\ \| = \| \dceilp{x}{p} − \ddomp{x}{p} − \dceilp{y}{p} + \ddomp{y}{p} + \ddomp{x}{p} − \ddomp{y}{p} \notag \\ \| \| + p\iverson{\ddomp{x}{p} − \ddomp{y}{p} \lt 0} \| \eqvide{eq:dom(x−y)} \notag \\ \| = \| \dceilp{x}{p} − \dceilp{y}{p} + p\iverson{\ddomp{x}{p} − \ddomp{y}{p} \lt 0} \end{eqnarray}
\begin{equation} \ddomp{x + y}{p} = \ddomp{x}{p} + \ddomp{y}{p} − p\iverson{\ddomp{x}{p} + \ddomp{y}{p} \ge p} \qquad (p \gt 0) \label{eq:dom(x+y)i} \end{equation}
\begin{eqnarray*} \ddomp{4.2 + 1.8}{2} \| = \| \ddomp{4.2}{2} + \ddomp{1.8}{2} − 2×\iverson{\ddomp{4.2}{2} + \ddomp{1.8}{2} \ge 2} \\ \ddomp{6}{2} \| = \| 1.8 + 0.2 − 2×\iverson{1.8 + 0.2 \ge 2} \\ 0 \| = \| 2 − 2×\iverson{2 \ge 2} \\ 0 \| = \| 2 − 2×1 \\ 0 \| = \| 0 \end{eqnarray*}
Voorbeeld met \( x = 4.2, y = 1.9, p = 2 \):
\begin{eqnarray*} \ddomp{4.2 + 1.9}{2} \| = \| \ddomp{4.2}{2} + \ddomp{1.9}{2} − 2×\iverson{\ddomp{4.2}{2} + \ddomp{1.9}{2} \ge 2} \\ \ddomp{6.1}{2} \| = \| 1.8 + 0.1 − 2×\iverson{1.8 + 0.1 \ge 2} \\ 1.9 \| = \| 1.9 − 2×\iverson{1.9 \ge 2} \\ 1.9 \| = \| 1.9 − 2×0 \\ 1.9 \| = \| 1.9 \end{eqnarray*}
Bewijs:
\begin{eqnarray} \ddomp{x + y}{p} \| = \| \dceilp{x + y}{p} − (x + y) \| \eqvide{eq:ddomp} \notag \\ \| = \| \dceilp{\dceilp{x}{p} − \ddomp{x}{p} + \dceilp{y}{p} − \ddomp{y}{p}}{p} \notag \\ \| \| − \dparen{ \dceilp{x}{p} − \ddomp{x}{p} + \dceilp{y}{p} − \ddomp{y}{p}} \| \eqvide{eq:ddomp} \notag \\ \| = \| \dceilp{x}{p} + \dceilp{y}{p} + \dceilp{−\ddomp{x}{p} − \ddomp{y}{p}}{p} \notag \\ \| \| − \dparen{ \dceilp{x}{p} − \ddomp{x}{p} + \dceilp{y}{p} − \ddomp{y}{p}} \| \qquad ∵ \dceilp{•}{p} ∥ p \notag \\ \| = \| \ddomp{x}{p} + \ddomp{y}{p} + \dceilp{−\ddomp{x}{p} − \ddomp{y}{p}}{p} \notag \\ \| = \| \ddomp{x}{p} + \ddomp{y}{p} − p\iverson{\ddomp{x}{p} + \ddomp{y}{p} \ge p} \| \eqvide{eq:ceil(−dom(x)−dom(y))i} \end{eqnarray}
\begin{equation} \ddomp{x − y}{p} = \ddomp{x}{p} − \ddomp{y}{p} + p\iverson{\ddomp{x}{p} − \ddomp{y}{p} \lt 0} \qquad (p \gt 0) \label{eq:dom(x−y)i} \end{equation}
\begin{eqnarray*} \ddomp{5.4 − 1.4}{2} \| = \| \ddomp{5.4}{2} − \ddomp{1.4}{2} + 2×\iverson{\ddomp{5.4}{2} − \ddomp{1.4}{2} \lt 0} \\ \ddomp{4}{2} \| = \| 0.6 − 0.6 + 2×\iverson{0.6 − 0.6 \lt 0} \\ 0 \| = \| 0 + 2×\iverson{0 \lt 0} \\ 0 \| = \| 0 + 2×0 \\ 0 \| = \| 0 \end{eqnarray*}
Voorbeeld met \( x = 5.5, y = 1.4, p = 2 \):
\begin{eqnarray*} \ddomp{5.5 − 1.4}{2} \| = \| \ddomp{5.5}{2} − \ddomp{1.4}{2} + 2×\iverson{\ddomp{5.5}{2} − \ddomp{1.4}{2} \lt 0} \\ \ddomp{4.1}{2} \| = \| 0.5 − 0.6 + 2×\iverson{0.5 − 0.6 \lt 0} \\ 1.9 \| = \| −0.1 + 2×\iverson{−0.1 \lt 0} \\ 1.9 \| = \| −0.1 + 2×1 \\ 1.9 \| = \| 1.9 \end{eqnarray*}
Bewijs:
\begin{eqnarray} \ddomp{x − y}{p} \| = \| \dceilp{x − y}{p} − (x − y) \| \eqvide{eq:ddomp} \notag \\ \| = \| \dceilp{\dparen{\dceilp{x}{p} − \ddomp{x}{p}} − \dparen{\dceilp{y}{p} − \ddomp{y}{p}}}{p} \notag \\ \| \| − \dparen{\dparen{\dceilp{x}{p} − \ddomp{x}{p}} − \dparen{\dceilp{y}{p} − \ddomp{y}{p}}} \| \eqvide{eq:ddomp} \notag \\ \| = \| \dparen{\dceilp{x}{p} − \dceilp{y}{p}} + \dceilp{−\ddomp{x}{p} + \ddomp{y}{p}}{p} \notag \\ \| \| − \dparen{\dparen{\dceilp{x}{p} − \ddomp{x}{p}} − \dparen{\dceilp{y}{p} − \ddomp{y}{p}}} \| \qquad ∵ \dceilp{•}{p} ∥ p \notag \\ \| = \| \ddomp{x}{p} − \ddomp{y}{p} + \dceilp{−\ddomp{x}{p} + \ddomp{y}{p}}{p} \notag \\ \| = \| \ddomp{x}{p} − \ddomp{y}{p} + p\iverson{\ddomp{x}{p} − \ddomp{y}{p} \lt 0} \| \eqvide{eq:ceil(dom(x)−dom(y)i} \end{eqnarray}
\begin{equation} \dfloorp{\ddomp{x}{p} + \ddomp{y}{p}}{p} = p\iverson{\ddomp{x}{p} + \ddomp{y}{p} ≥ p} \qquad (p \gt 0) \label{eq:floor(dom(x)+dom(y)i} \end{equation}
\begin{eqnarray*} \dfloorp{\ddomp{4.2}{2} + \ddomp{1.4}{2}}{2} \| = \| 2×\iverson{\ddomp{4.2}{2} + \ddomp{1.4}{2} ≥ 2} \\ \dfloorp{1.8 + 0.6}{2} \| = \| 2×\iverson{1.8 + 0.6 ≥ 2} \\ \dfloorp{2.4}{2} \| = \| 2×\iverson{2.4 ≥ 2} \\ 2 \| = \| 2×1 \end{eqnarray*}
Voorbeeld met \( x = 4.7, y = 1.4, p = 2 \):
\begin{eqnarray*} \dfloorp{\ddomp{4.7}{2} + \ddomp{1.4}{2}}{2} \| = \| 2×\iverson{\ddomp{4.7}{2} + \ddomp{1.4}{2} ≥ 2} \\ \dfloorp{1.3 + 0.6}{2} \| = \| 2×\iverson{1.3 + 0.6 ≥ 2} \\ \dfloorp{1.9}{2} \| = \| 2×\iverson{1.9 ≥ 2} \\ 0 \| = \| 2×0 \end{eqnarray*}
Bewijs:
\begin{eqnarray} \dfloorp{\ddomp{x}{p} + \ddomp{y}{p}}{p} \| = \| \dfloorp{\dceilp{x}{p} − x + \dceilp{y}{p} − y}{p} \| \eqvide{eq:ddomp} \notag \\ \| = \| \dceilp{x}{p} + \dceilp{y}{p} + \dfloorp{−x − y}{p} \| ∵ \dceilp{x}{p} + \dceilp{y}{p} ∥ p \notag \\ \| = \| \dceilp{x}{p} + \dceilp{y}{p} + \dfloorp{−x}{p} + \dfloorp{−y}{p} \notag \\ \| \| + p\iverson{\dmodp{−x}{p} + \dmodp{−y}{p} ≥ p} \| \eqvide{eq:floor(x+y)i} \notag \\ \| = \| p\iverson{\ddomp{x}{p} + \ddomp{y}{p} ≥ p} \| \eqvide{eq:mod(−x)} \end{eqnarray}
\begin{equation} \dfloorp{\ddomp{x}{p} − \ddomp{y}{p}}{p} = −p \iverson{\ddomp{x}{p} − \ddomp{y}{p} \lt 0} \qquad (p \gt 0) \label{eq:floor(dom(x)−dom(y)i} \end{equation}
\begin{eqnarray*} \dfloorp{\ddomp{4.2}{2} − \ddomp{1.4}{2}}{2} \| = \| −2×\iverson{\ddomp{4.2}{2} − \ddomp{1.4}{2} \lt 0} \\ \dfloorp{1.8 − 0.6}{2} \| = \| −2×\iverson{1.8 − 0.6 \lt 0} \\ \dfloorp{1.2}{2} \| = \| −2×\iverson{1.2 \lt 0} \\ 0 \| = \| −2×0 \end{eqnarray*}
Voorbeeld met \( x = 1.4, y = 4.2, p = 2 \):
\begin{eqnarray*} \dfloorp{\ddomp{1.4}{2} − \ddomp{4.2}{2}}{2} \| = \| −2×\iverson{\ddomp{1.4}{2} − \ddomp{4.2}{2} \lt 0} \\ \dfloorp{0.6 − 1.8}{2} \| = \| −2×\iverson{0.6 − 1.8 \lt 0} \\ \dfloorp{−1.2}{2} \| = \| −2×\iverson{−1.2 \lt 0} \\ −2 \| = \| −2×1 \end{eqnarray*}
Bewijs: \( −p \lt \ddomp{x}{p} − \ddomp{y}{p} \lt p \), dus
\begin{eqnarray} \ddomp{x}{p} − \ddomp{y}{p} \lt 0 \| → \| \dfloorp{\ddomp{x}{p} − \ddomp{y}{p}}{p} = −p \\ \ddomp{x}{p} − \ddomp{y}{p} \ge 0 \| ⇒ \| \dfloorp{\ddomp{x}{p} − \ddomp{y}{p}}{p} = 0 \\ ⇒ \dfloorp{\ddomp{x}{p} − \ddomp{y}{p}}{p} \| = \| −p \iverson{\ddomp{x}{p} − \ddomp{y}{p} \lt 0} \end{eqnarray}
\begin{equation} \dfloorp{\dmodp{x}{p} + \dmodp{y}{p}}{p} = p\iverson{\dmodp{x}{p} + \dmodp{y}{p} \ge p} \qquad (p \gt 0) \label{eq:floor(mod(x)+mod(y)i} \end{equation}
\begin{eqnarray*} \dfloorp{\dmodp{4.2}{2} + \dmodp{1.4}{2}}{2} \| = \| 2×\iverson{\dmodp{4.2}{2} + \dmodp{1.4}{2} \ge 2} \\ \dfloorp{0.2 + 1.4}{2} \| = \| 2×\iverson{0.2 + 1.4 \ge 2} \\ \dfloorp{1.6}{2} \| = \| 2×\iverson{1.6 \ge 2} \\ 0 \| = \| 2×0 \end{eqnarray*}
Voorbeeld met \( x = 4.6, y = 1.4, p = 2 \):
\begin{eqnarray*} \dfloorp{\dmodp{4.6}{2} + \dmodp{1.4}{2}}{2} \| = \| 2×\iverson{\dmodp{4.6}{2} + \dmodp{1.4}{2} \ge 2} \\ \dfloorp{0.6 + 1.4}{2} \| = \| 2×\iverson{0.6 + 1.4 \ge 2} \\ \dfloorp{2}{2} \| = \| 2×\iverson{2 \ge 2} \\ 2 \| = \| 2×1 \end{eqnarray*}
Bewijs: \( 0 \le \dmodp{x}{p} + \dmodp{y}{p} \lt 2p \), dus
\begin{eqnarray} \dmodp{x}{p} + \dmodp{y}{p} \| \lt \| p ⇒ \dfloorp{\dmodp{x}{p} + \dmodp{y}{p}}{p} = 0 \\ \dmodp{x}{p} + \dmodp{y}{p} \| \ge \| p ⇒ \dfloorp{\dmodp{x}{p} + \dmodp{y}{p}}{p} = p \\ ⇒ \dfloorp{\dmodp{x}{p} + \dmodp{y}{p}}{p} \| = \| p\iverson{\dmodp{x}{p} + \dmodp{y}{p} \ge p} \end{eqnarray}
\begin{equation} \dfloorp{\dmodp{x}{p} − \dmodp{y}{p}}{p} = −p \iverson{\dmodp{x}{p} − \dmodp{y}{p} \lt 0} \qquad(p \gt 0) \label{eq:floor(mod(x)−mod(y)i} \end{equation}
\begin{eqnarray*} \dfloorp{\dmodp{4.2}{2} − \dmodp{1.4}{2}}{2} \| = \| −2×\iverson{\dmodp{4.2}{2} − \dmodp{1.4}{2} \lt 0} \\ \dfloorp{0.2 − 1.4}{2} \| = \| −2×\iverson{0.2 − 1.4 \lt 0} \\ \dfloorp{−1.2}{2} \| = \| −2×\iverson{−1.2 \lt 0} \\ −2 \| = \| −2×1 \end{eqnarray*}
Voorbeeld met \( x = 5.6, y = 1.4, p = 2 \):
\begin{eqnarray*} \dfloorp{\dmodp{5.6}{2} − \dmodp{1.4}{2}}{2} \| = \| −2×\iverson{\dmodp{5.6}{2} − \dmodp{1.4}{2} \lt 0} \\ \dfloorp{1.6 − 1.4}{2} \| = \| −2×\iverson{1.6 − 1.4 \lt 0} \\ \dfloorp{0.2}{2} \| = \| −2×\iverson{0.2 \lt 0} \\ 0 \| = \| −2×0 \end{eqnarray*}
Bewijs:
\begin{eqnarray} \dfloorp{\dmodp{x}{p} − \dmodp{y}{p}}{p} \| = \| \dparen{\dmodp{x}{p} − \dmodp{y}{p}} − \dmodp{\dmodp{x}{p} − \dmodp{y}{p}}{p} \| \eqvide{eq:dmodp} \notag \\ \| = \| \dmodp{x}{p} − \dmodp{y}{p} \notag \\ \| \| − \dparen{\dmodp{x}{p} − \dmodp{y}{p} + p\iverson{\dmodp{x}{p} − \dmodp{y}{p} \lt 0}} \| \eqvide{eq:mod(mod(x)−mod(y)i} \notag \\ \| = \| −p\iverson{\dmodp{x}{p} − \dmodp{y}{p} \lt 0} \end{eqnarray}
\begin{equation} \dfloorp{x + y}{p} = \dfloorp{x}{p} + \dfloorp{y}{p} + p\iverson{\dmodp{x}{p} + \dmodp{y}{p} \ge p} \qquad (p \gt 0) \label{eq:floor(x+y)i} \end{equation}
\begin{eqnarray*} \dfloorp{−3.4 + 1.4}{2} \| = \| \dfloorp{−3.4}{2} + \dfloorp{1.4}{2} + 2×\iverson{\dmodp{−3.4}{2} + \dmodp{1.4}{2} \ge 2} \\ \dfloorp{−2}{2} \| = \| −4 + 0 + 2×\iverson{0.6 + 1.4 \ge 2} \\ −2 \| = \| −4 + 2×\iverson{2 \ge 2} \\ −2 \| = \| −4 + 2×1 \\ −2 \| = \| −2 \end{eqnarray*}
Voorbeeld met \( x = −3.5, y = 1.4, p = 2 \):
\begin{eqnarray*} \dfloorp{−3.5 + 1.4}{2} \| = \| \dfloorp{−3.5}{2} + \dfloorp{1.4}{2} + 2×\iverson{\dmodp{−3.5}{2} + \dmodp{1.4}{2} \ge 2} \\ \dfloorp{−2.1}{2} \| = \| −4 + 0 + 2×\iverson{0.5 + 1.4 \ge 2} \\ −4 \| = \| −4 + 2×\iverson{1.9 \ge 2} \\ −4 \| = \| −4 + 2×0 \\ −4 \| = \| −4 \end{eqnarray*}
Bewijs:
\begin{eqnarray} \dfloorp{x + y}{p} \| = \| \dfloorp{\dfloorp{x}{p} + \dmodp{x}{p} + \dfloorp{y}{p} + \dmodp{y}{p}}{p} \| \eqvide{eq:dmodp} \notag \\ \| = \| \dfloorp{x}{p} + \dfloorp{y}{p} + \dfloorp{\dmodp{x}{p} + \dmodp{y}{p}}{p} \| \qquad ∵ \dfloorp{x}{p} + \dfloorp{y}{p} ∥ p \notag \\ \| = \| \dfloorp{x}{p} + \dfloorp{y}{p} + p\iverson{\dmodp{x}{p} + \dmodp{y}{p} \ge p} \| \eqvide{eq:floor(mod(x)+mod(y)i} \end{eqnarray}
\begin{equation} \dfloorp{x − y}{p} = \dfloorp{x}{p} − \dfloorp{y}{p} − p\iverson{\dmodp{x}{p} − \dmodp{y}{p} \lt 0} \qquad (p \gt 0) \label{eq:floor(x−y)i} \end{equation}
\begin{eqnarray*} \dfloorp{5.3 − 1.4}{2} \| = \| \dfloorp{5.3}{2} − \dfloorp{1.4}{2} − 2×\iverson{\dmodp{5.3}{2} − \dmodp{1.4}{2} \lt 0} \\ \dfloorp{3.9}{2} \| = \| 4 − 0 − 2×\iverson{1.3 − 1.4 \lt 0} \\ \dfloorp{3.9}{2} \| = \| 4 − 0 − 2×\iverson{−0.1 \lt 0} \\ 2 \| = \| 4 − 2×1 \\ 2 \| = \| 2 \end{eqnarray*}
Voorbeeld met \( x = 5.4, y = 1.4, p = 2 \):
\begin{eqnarray*} \dfloorp{5.4 − 1.4}{2} \| = \| \dfloorp{5.4}{2} − \dfloorp{1.4}{2} − 2×\iverson{\dmodp{5.4}{2} − \dmodp{1.4}{2} \lt 0} \\ \dfloorp{4}{2} \| = \| 4 − 0 − 2×\iverson{1.4 − 1.4 \lt 0} \\ 4 \| = \| 4 − 2×0 \\ 4 \| = \| 4 \end{eqnarray*}
Bewijs:
\begin{eqnarray} \dfloorp{x − y}{p} \| = \| \dfloorp{\left( \dfloorp{x}{p} + \dmodp{x}{p} \right) − \left( \dfloorp{y}{p} + \dmodp{y}{p} \right)}{p} \| \eqvide{eq:dmodp} \notag \\ \| = \| \dfloorp{x}{p} − \dfloorp{y}{p} + \dfloorp{\dmodp{x}{p} − \dmodp{y}{p}}{p} \| \qquad ∵ \dfloorp{x}{p} + \dfloorp{y}{p} ∥ p \notag \\ \| = \| \dfloorp{x}{p} − \dfloorp{y}{p} − p \iverson{\dmodp{x}{p} − \dmodp{y}{p} \lt 0} \| \eqvide{eq:floor(mod(x)−mod(y)i} \end{eqnarray}
\begin{equation} \dmodp{\dmodp{x}{p} + \dmodp{y}{p}}{p} = \dmodp{x}{p} + \dmodp{y}{p} − p\iverson{\dmodp{x}{p} + \dmodp{y}{p} \ge p} \qquad (p \gt 0) \label{eq:mod(mod(x)+mod(y)i} \end{equation}
\begin{eqnarray*} \dmodp{\dmodp{4.2}{2} + \dmodp{1.4}{2}}{2} \| = \| \dmodp{4.2}{2} + \dmodp{1.4}{2} − 2×\iverson{\dmodp{4.2}{2} + \dmodp{1.4}{2} \ge 2} \\ \dmodp{0.2 + 1.4}{2} \| = \| 0.2 + 1.4 − 2×\iverson{0.2 + 1.4 \ge 2} \\ \dmodp{1.6}{2} \| = \| 1.6 − 2×\iverson{1.6 \ge 2} \\ 1.6 \| = \| 1.6 − 2×0 \end{eqnarray*}
Voorbeeld met \( x = 4.6, y = 1.4, p = 2 \):
\begin{eqnarray*} \dmodp{\dmodp{4.6}{2} + \dmodp{1.4}{2}}{2} \| = \| \dmodp{4.6}{2} + \dmodp{1.4}{2} − 2×\iverson{\dmodp{4.6}{2} + \dmodp{1.4}{2} \ge 2} \\ \dmodp{0.6 + 1.4}{2} \| = \| 0.6 + 1.4 − 2×\iverson{0.6 + 1.4 \ge 2} \\ \dmodp{2}{2} \| = \| 2 − 2×\iverson{2 \ge 2} \\ 0 \| = \| 2 − 2×1 \end{eqnarray*}
Bewijs: \( 0 \le \dmodp{x}{p} + \dmodp{y}{p} \lt 2p \), dus
\begin{eqnarray} \dmodp{x}{p} + \dmodp{y}{p} \lt p \| ⇒ \| \dmodp{\dmodp{x}{p} + \dmodp{y}{p}}{p} = \dmodp{x}{p} + \dmodp{y}{p} \\ \dmodp{x}{p} + \dmodp{y}{p} \ge p \| ⇒ \| \dmodp{\dmodp{x}{p} + \dmodp{y}{p}}{p} = \dmodp{x}{p} + \dmodp{y}{p} − p \\ ⇒ \dmodp{\dmodp{x}{p} + \dmodp{y}{p}}{p} \| = \| \dmodp{x}{p} + \dmodp{y}{p} − p\iverson{\dmodp{x}{p} + \dmodp{y}{p} \ge p} \end{eqnarray}
\begin{equation} \dmodp{\dmodp{x}{p} − \dmodp{y}{p}}{p} = \dmodp{x}{p} − \dmodp{y}{p} + p\iverson{\dmodp{x}{p} − \dmodp{y}{p} \lt 0} \qquad (p \gt 0) \label{eq:mod(mod(x)−mod(y)i} \end{equation}
\begin{eqnarray*} \dmodp{\dmodp{4.2}{2} − \dmodp{6.3}{2}}{2} \| = \| \dmodp{4.2}{2} − \dmodp{6.3}{2} + 2×\iverson{\dmodp{4.2}{2} − \dmodp{6.3}{2} \lt 0} \\ \dmodp{0.2 − 0.3}{2} \| = \| 0.2 − 0.3 + 2×\iverson{0.2 − 0.3 \lt 0} \\ \dmodp{−0.1}{2} \| = \| −0.1 + 2×\iverson{−0.1 \lt 0} \\ 1.9 \| = \| −0.1 + 2×1 \\ 1.9 \| = \| 1.9 \end{eqnarray*}
Voorbeeld met \( x = 4.2, y = 6.2, p = 2 \):
\begin{eqnarray*} \dmodp{\dmodp{4.2}{2} − \dmodp{6.2}{2}}{2} \| = \| \dmodp{4.2}{2} − \dmodp{6.2}{2} + 2×\iverson{\dmodp{4.2}{2} − \dmodp{6.2}{2} \lt 0} \\ \dmodp{0.2 − 0.2}{2} \| = \| 0.2 − 0.2 + 2×\iverson{0.2 − 0.2 \lt 0} \\ \dmodp{0}{2} \| = \| 0 + 2×\iverson{0 \lt 0} \\ 0 \| = \| 0 + 2×0 \\ 0 \| = \| 0 + 0 \end{eqnarray*}
Bewijs: \( −p \lt \dmodp{x}{p} − \dmodp{y}{p} \lt p \), dus
\begin{eqnarray} \dmodp{x}{p} − \dmodp{y}{p} \lt 0 \| ⇒ \| \dmodp{\dmodp{x}{p} − \dmodp{y}{p}}{p} = \dmodp{x}{p} − \dmodp{y}{p} + p \\ \dmodp{x}{p} − \dmodp{y}{p} \ge 0 \| ⇒ \| \dmodp{\dmodp{x}{p} − \dmodp{y}{p}}{p} = \dmodp{x}{p} − \dmodp{y}{p} \\ ⇒ \dmodp{\dmodp{x}{p} − \dmodp{y}{p}}{p} \| = \| \dmodp{x}{p} − \dmodp{y}{p} + p\iverson{\dmodp{x}{p} − \dmodp{y}{p} \lt 0} \end{eqnarray}
\begin{equation} \dmodp{x + y}{p} = \dmodp{x}{p} + \dmodp{y}{p} − p\iverson{\dmodp{x}{p} + \dmodp{y}{p} \ge p} \qquad (p \gt 0) \label{eq:mod(x+y)i} \end{equation}
\begin{eqnarray*} \dmodp{4.2 + 1.4}{2} \| = \| \dmodp{4.2}{2} + \dmodp{1.4}{2} − 2×\iverson{\dmodp{4.2}{2} + \dmodp{1.4}{2} \ge 2} \\ \dmodp{5.6}{2} \| = \| 0.2 + 1.4 − 2×\iverson{0.2 + 1.4 \ge 2} \\ 1.6 \| = \| 1.6 − 2×\iverson{1.6 \ge 2} \\ 1.6 \| = \| 1.6 − 0 \\ 1.6 \| = \| 1.6 \end{eqnarray*}
Voorbeeld met \( x = 4.2, y = 1.8, p = 2 \):
\begin{eqnarray*} \dmodp{4.2 + 1.8}{2} \| = \| \dmodp{4.2}{2} + \dmodp{1.8}{2} − 2×\iverson{\dmodp{4.2}{2} + \dmodp{1.8}{2} \ge 2} \\ \dmodp{6}{2} \| = \| 0.2 + 1.8 − 2×\iverson{0.2 + 1.8 \ge 2} \\ 0 \| = \| 2 − 2×\iverson{2 \ge 2} \\ 0 \| = \| 2 − 2 \\ 0 \| = \| 0 \end{eqnarray*}
Bewijs:
\begin{eqnarray} \dmodp{x + y}{p} \| = \| \dmodp{\dfloorp{x}{p} + \dmodp{x}{p} + \dfloorp{y}{p} + \dmodp{y}{p}}{p} \| \eqvide{eq:dmodp} \notag \\ \| = \| \dmodp{\dmodp{x}{p} + \dmodp{y}{p}}{p} \| ∵ \dfloorp{•}{p} ∥ p \notag \\ \| = \| \dmodp{x}{p} + \dmodp{y}{p} − p\iverson{\dmodp{x}{p} + \dmodp{y}{p} \ge p} \| \eqvide{eq:mod(mod(x)+mod(y)i} \end{eqnarray}
\begin{equation} \dmodp{x − y}{p} = \dmodp{x}{p} − \dmodp{y}{p} + p\iverson{\dmodp{x}{p} − \dmodp{y}{p} \lt 0} \qquad (p \gt 0) \label{eq:mod(x−y)i} \end{equation}
\begin{eqnarray*} \dmodp{4.2 − 1.4}{2} \| = \| \dmodp{4.2}{2} − \dmodp{1.4}{2} + 2×\iverson{\dmodp{4.2}{2} − \dmodp{1.4}{2} \lt 0} \\ \dmodp{2.8}{2} \| = \| 0.2 − 1.4 + 2×\iverson{0.2 − 1.4 \lt 0} \\ 0.8 \| = \| −1.2 + 2×\iverson{−1.2 \lt 0} \\ 0.8 \| = \| −1.2 + 2×1 \\ 0.8 \| = \| −1.2 + 2 \\ 0.8 \| = \| 0.8 \end{eqnarray*}
Voorbeeld met \( x = 5.4, y = 1.4, p = 2 \):
\begin{eqnarray*} \dmodp{5.4 − 1.4}{2} \| = \| \dmodp{5.4}{2} − \dmodp{1.4}{2} + 2×\iverson{\dmodp{5.4}{2} − \dmodp{1.4}{2} \lt 0} \\ \dmodp{4}{2} \| = \| 1.4 − 1.4 + 2×\iverson{1.4 − 1.4 \lt 0} \\ 0 \| = \| 0 + 2×\iverson{0 \lt 0} \\ 0 \| = \| 0 + 2×0 \\ 0 \| = \| 0 \end{eqnarray*}
Bewijs:
\begin{eqnarray} \dmodp{x − y}{p} \| = \| \dmodp{\left( \dfloorp{x}{p} + \dmodp{x}{p} \right) − \left( \dfloorp{y}{p} + \dmodp{y}{p} \right)}{p} \| \eqvide{eq:dmodp} \notag \\ \| = \| \dmodp{\dmodp{x}{p} − \dmodp{y}{p}}{p} \| ∵ \dfloorp{x}{p} − \dfloorp{y}{p} ∥ p \notag \\ \| = \| \dmodp{x}{p} − \dmodp{y}{p} + p\iverson{\dmodp{x}{p} − \dmodp{y}{p} \lt 0} \| \eqvide{eq:mod(mod(x)−mod(y)i} \end{eqnarray}
\begin{equation} \dparen{\sum_i n_i\dmodp{x_i}{p}} − \dmodp{\sum_i n_ix_i}{p} = \dfloorp{\sum_i n_i\dmodp{x_i}{p}}{p} \qquad (n_i ∥ 1, p \gt 0) \label{eq:sumnmod(x)−mod(sumnx)} \end{equation}
\begin{eqnarray*} \dparen{3×\dmodp{5.7}{2} + 5×\dmodp{3.2}{2}} − \dmodp{3×5.7 + 5×3.2}{2} \| = \| \dfloorp{3×\dmodp{5.7}{2} + 5×\dmodp{3.2}{2}}{2} \\ 3×1.7 + 5×1.2 − \dmodp{33.1}{2} \| = \| \dfloorp{3×1.7 + 5×1.2}{2} \\ 11.1 − 1.1 \| = \| \dfloorp{11.1}{2} \\ 10 \| = \| 10 \end{eqnarray*}
Bewijs:
\begin{align} \| \dparen{\sum_i n_i\dmodp{x_i}{p}} − \dmodp{\sum_i n_ix_i}{p} \notag \\ \| = \dparen{\sum_i n_i\dmodp{x_i}{p}} − \dmodp{\sum_i n_i\dfloorp{x_i}{p} + \sum_i n_i\dmodp{x_i}{p}}{p} \eqvide{eq:dmodp} \notag \\ \| = \dparen{\sum_i n_i\dmodp{x_i}{p}} − \dmodp{\sum_i n_i\dmodp{x_i}{p}}{p} \qquad ∵ \dfloorp{x_i}{p} ∥ p, n_i ∥ 1 \notag \\ \| = \dfloorp{\sum_i n_i\dmodp{x_i}{p}}{p} \eqvide{eq:dmodp} \end{align}
\begin{equation} n\dmodp{x}{p} − \dmodp{nx}{p} = \dfloorp{n\dmodp{x}{p}}{p} \qquad (n ∥ 1, p \gt 0) \label{eq:nmod(x)−mod(nx)} \end{equation}
\begin{eqnarray*} 3×\dmodp{5.7}{2} − \dmodp{3×5.7}{2} \| = \| \dfloorp{3×\dmodp{5.7}{2}}{2} \\ 3×1.7 − \dmodp{17.1}{2} \| = \| \dfloorp{3×1.7}{2} \\ 5.1 − 1.1 \| = \| \dfloorp{5.1}{2} \\ 4 \| = \| 4 \end{eqnarray*}
Bewijs: Formule \eqref{eq:sumnmod(x)−mod(sumnx)} als \( n_1 = n \) en \( x_1 = x \) en er verder geen \( n_i \) en \( x_i \) zijn.
\begin{equation} \dfloorp{\sum_i n_ix_i}{p} − \dparen{\sum_i n_i\dfloorp{x_i}{p}} = \dfloorp{\sum_i n_i\dmodp{x_i}{p}}{p} \qquad (n_i ∥ 1) \label{eq:floor(sumnx)−sumnfloor(x)} \end{equation}
\begin{eqnarray*} \dfloorp{3×5.7 + 5×3.2}{2} − \dparen{3×\dfloorp{5.7}{2} + 5×\dfloorp{3.2}{2}} \| = \| \dfloorp{3×\dmodp{5.7}{2} + 5×\dmodp{3.2}{2}}{2} \\ \dfloorp{33.1}{2} − (3×4 + 5×2) \| = \| \dfloorp{3×1.7 + 5×1.2}{2} \\ 32 − 22 \| = \| \dfloorp{11.1}{2} \\ 10 \| = \| 10 \end{eqnarray*}
Bewijs:
\begin{align} \| \dfloorp{\sum_i n_ix_i}{p} − \dparen{\sum_i n_i\dfloorp{x_i}{p}} \notag \\ \| = \dparen{\sum_i n_ix_i} − \dmodp{\sum_i n_ix_i}{p} − \dparen{\dparen{\sum_i n_ix_i} − \dparen{\sum_i n_i\dmodp{x_i}{p}}} \notag \eqvide{eq:dmodp} \\ \| = \dparen{\sum_i n_i\dmodp{x_i}{p}} − \dmodp{\sum_i n_ix_i}{p} \notag \\ \| = \dfloorp{\sum_i n_i\dmodp{x_i}{p}}{p} \eqvide{eq:sumnmod(x)−mod(sumnx)} \end{align}
\begin{equation} \dfloorp{nx}{p} − n\dfloorp{x}{p} = \dfloorp{n\dmodp{x}{p}}{p} \qquad (n ∥ 1) \label{eq:floor(nx)−nfloor(x)} \end{equation}
\begin{eqnarray*} \dfloorp{3×5.7}{2} − 3×\dfloorp{5.7}{2} \| = \| \dfloorp{3×\dmodp{5.7}{2}}{2} \\ \dfloorp{17.1}{2} − 3×4 \| = \| \dfloorp{3×1.7}{2} \\ 16 − 12 \| = \| \dfloorp{5.1}{2} \\ 4 \| = \| 4 \end{eqnarray*}
Bewijs: Formule \eqref{eq:floor(sumnx)−sumnfloor(x)} als \( x_1 = x \) en \( n_1 = n \) en er verder geen \( x_i \) en \( n_i \) zijn.
\begin{equation} \dfloor{\dmodp{x}{p}} = \dmodp{\dfloor{x}}{p} \qquad (p ∥ 1, p \gt 0) \label{eq:floor(mod(x))} \end{equation}
\begin{eqnarray*} \dfloor{\dmodp{4.9}{2}} \| = \| \dmodp{\dfloor{4.9}}{2} \\ \dfloor{0.9} \| = \| \dmodp{4}{2} \\ 0 \| = \| 0 \end{eqnarray*}
Voorbeeld met \( x = 5.1, p = 2\):
\begin{eqnarray*} \dfloor{\dmodp{5.1}{2}} \| = \| \dmodp{\dfloor{5.1}}{2} \\ \dfloor{1.1} \| = \| \dmodp{5}{2} \\ 1 \| = \| 1 \end{eqnarray*}
Bewijs:
\begin{eqnarray} x \| = \| p\dfloorratio{x}{p} + \dmodp{x}{p} \eqavide{eq:dmodp} \notag \\ \| = \| p\dfloorratio{x}{p} + \dfloor{\dmodp{x}{p}} + \dmod{\dmodp{x}{p}} \eqavide{eq:dmodp} \\ \dfloor{x} \| = \| p\dfloorratio{x}{p} + \dfloor{\dmodp{x}{p}} \| ∵ 0 ≤ \dmod{\dmodp{x}{p}} \lt 1; p ∥ 1 \\ \dmodp{\dfloor{x}}{p} \| = \| \dfloor{\dmodp{x}{p}} \| ∵ p\dfloorratio{x}{p} ∥ p \end{eqnarray}
\begin{equation} \dceilp{x}{p} = \dfloorp{x − 1}{p} + p \qquad (x ∥ 1, p ∥ 1, p \gt 1) \label{eq:ceil2floor(x−1)} \end{equation}
\begin{eqnarray*} \dceilp{15}{7} \| = \| \dfloorp{15 − 1}{7} + 7 \\ 21 \| = \| 14 + 7 \end{eqnarray*}
Voorbeeld met \( x = 14, p = 7 \):
\begin{eqnarray*} \dceilp{14}{7} \| = \| \dfloorp{14 − 1}{7} + 7 \\ 14 \| = \| 7 + 7 \end{eqnarray*}
Bewijs:
\begin{eqnarray} \dceilp{x}{p} \| = \| \dceilp{x}{p} − p[x ⊥ p] − p[x ∥ p] + p \| \qquad ∵ [x ⊥ p] + [x ∥ p] = 1 \notag \\ \| = \| \dfloorp{x}{p} − p[x ∥ p] + p \| \eqvide{eq:ceil(x)−floor(x)i} \notag \\ \| = \| \dfloorp{x}{p} − p\left[ \dmodp{x}{p} = 0 \right] + p \| \eqvide{eq:dmodp} \notag \\ \| = \| \dfloorp{x}{p} − p\left[ \dmodp{x}{p} − 1 \lt 0 \right] + p \| \qquad (x ∥ 1, p ∥ 1) \notag \\ \| = \| \dfloorp{x}{p} − \dfloorp{1}{p} − p\left[ \dmodp{x}{p} − \dmodp{1}{p} \lt 0 \right] + p \| \qquad (p \gt 1) \notag \\ \| = \| \dfloorp{x − 1}{p} + p \| \eqvide{eq:floor(x−y)i} \end{eqnarray}
\begin{equation} \ddomp{x}{p} = p − 1 − \dmodp{x − 1}{p} \qquad (x ∥ 1, p ∥ 1, p \gt 1) \label{eq:dom2mod(x−1)} \end{equation}
\begin{eqnarray*} \ddomp{15}{7} \| = \| 7 − 1 − \dmodp{15 − 1}{7} \\ 6 \| = \| 6 − \dmodp{14}{7} \\ 6 \| = \| 6 − 0 \end{eqnarray*}
Voorbeeld met \( x = 14, p = 7 \):
\begin{eqnarray*} \ddomp{14}{7} \| = \| 7 − 1 − \dmodp{14 − 1}{7} \\ 0 \| = \| 6 − \dmodp{13}{7} \\ 0 \| = \| 6 − 6 \end{eqnarray*}
Bewijs:
\begin{eqnarray} \ddomp{x}{p} \| = \| \dceilp{x}{p} − x \| \eqvide{eq:ddomp} \notag \\ \| = \| \dfloorp{x − 1}{p} + p − x \| \eqvide{eq:ceil2floor(x−1)} \notag \\ \| = \| x − 1 − \dmodp{x − 1}{p} + p − x \| \eqvide{eq:dmodp} \notag \\ \| = \| p − 1 − \dmodp{x − 1}{p} \end{eqnarray}
Zie verderop voor de \( \range{•}{f} \)-notatie.
Veel van de kalenderberekeningen die hieronder beschreven worden zijn van de vorm
\begin{align} y \| = \range{\dfloorratio{f x + t}{g}}{f} \label{eq:template-y} \\ e \| = \range{\dmodp{f x + t}{g}}{f} = \range{(f x + t) \bmod g}{f} \label{eq:template-e} \end{align}
ofwel
\begin{equation} \{ y, e \} = \range{\Div(f x + t, g)}{f} \label{eq:template} \end{equation}
met
\begin{equation} f x + t = g y + e \end{equation}
waar \( f \), \( t \), \( g \) vaste hele getallen zijn met \( f, g \gt 1 \) en \( 0 ≤ e \lt g \) en \( x \), \( y \) wisselende maar wel hele getallen zijn. Het tussenresultaat \( f x + t \) is dan meestal veel groter dan \( x \) en dan het eindresultaat. Dit kan problemen geven op rekenmachines en in computerprogramma's, waarop hele getallen niet groter mogen zijn dan een bepaalde limiet die we hier \( w \) noemen. (Getallen met drijvende komma, zoals 1.234 × 1020, mogen veel groter zijn, maar ook daarvan is de nauwkeurigheid beperkt, en dan moet je bang zijn voor afrondfouten.)
De beginwaarde \( x \) en eindwaarde \( y \) moeten uiteraard niet groter (verder van 0) zijn dan \( w \). Die beperking ligt voor de hand, dus zullen we hieronder niet altijd expliciet meer noemen.
Tussenresultaten groter dan \( w \) geven problemen, dus zou om problemen te voorkomen ongeveer \( |f x| ≤ w \) moeten zijn, dus \(|x| ≤ w/f \), wat veel kleiner is dan \( w \) zelf.
Als zoals in formule \eqref{eq:template} een formule is omsloten door \( \range{•}{n} \) dan betekent dit dat die formule te grote tussenresultaten geeft als de invoerwaarde die in principe onbeperkt groot kan zijn een waarde heeft die groter is dan ongeveer \( w/n \).
Als \( |t| ≥ g \), dan kunnen we formule \eqref{eq:template-y}ff omschrijven naar
\begin{align} f x + t \| = f x + g\dfloorratio{t}{g} + \dmodp{t}{g} = g y + e \eqavide{eq:dmodp} \\ y \| = \range{\dfloorratio{f x + t}{g}}{f} = \dfloorratio{t}{g} + \range{\dfloorratio{f x + \dmodp{t}{g}}{g}}{f} \\ e \| = \range{\dmodp{f x + t}{g}}{f} = \range{\dmodp{f x + \dmodp{t}{g}}{g}}{f} \\ \{ υ_1, ξ_1 \} \| = \Div(t, g) \\ \{ υ_2, e \} \| = \range{\Div(f x + ξ_1, g)}{f} \label{eq:υ2e} \\ y \| = υ_1 + υ_2 \end{align}
waarin formule \eqref{eq:υ2e} dezelfde vorm heeft als formule \eqref{eq:template}, als je \( \dmodp{t}{g} \) hernoemt tot een nieuwe \( t \). We nemen hieronder aan dat dat gebeurd is, en dus dat \( 0 ≤ t \lt g \).
Als \( f \gt g \), dan kunnen we formule \eqref{eq:template}ff omschrijven naar
\begin{align} f x + t \| = \dparen{\dfloorratio{f}{g} g + \dmodp{f}{g}} x + t = g y + e \eqavide{eq:dmodp} \\ y \| = \dfloorratio{f}{g} x + \range{\dfloorratio{\dmodp{f}{g} x + t}{g}}{\dmodp{f}{g}} \label{eq:template2} \\ e \| = \range{\dmodp{\dmodp{f}{g} x + t}{g}}{\dmodp{f}{g}} \\ \{ ω_1, ω_2 \} \| = \Div(f, g) \\ \{ υ_3, e \} \| = \range{\Div(ω_2 x + t, g)}{\dmodp{f}{g}} \label{eq:υ3e} \\ y \| = ω_1 x + υ_3 \end{align}
Dan mag \( |x| \) ongeveer zo groot zijn als \( w/\dmodp{f}{g} \) voordat er problemen komen.
Formule \eqref{eq:υ3e} heeft weer de vorm van formule \eqref{eq:template}, als je \( \dmodp{f}{g} \) hernoemt tot een nieuwe \( f \). Hieronder nemen we aan dat dat gebeurd is, en dus dat \( f \lt g \).
Als we eerst de deling door \( g \) zouden kunnen doen en pas daarna de vermenigvuldiging met \( f \), dan zouden de tussenresultaten kleiner blijven dan \( x \) zelf. We zouden zoiets als \( f\dfloor{x/g} \) willen berekenen wat ongeveer gelijk is aan \( y \), en dan daar een correctie op toepassen om echt \( y \) te krijgen.
We kunnen formule \eqref{eq:template}ff herschrijven tot
\begin{align} f x + t \| = f\dparen{ \dfloorratio{x}{g} g + \dmodp{x}{g}} + t \eqavide{eq:dmodp} \\ y \| = f\dfloorratio{x}{g} + \dfloorratio{f\dmodp{x}{g} + t}{g} \label{eq:detour} \\ e \| = \dmodp{f\dmodp{x}{g} + t}{g} \\ \{ ω_3, ξ_2 \} \| = \Div(x, g) \\ \{ υ_4, e \} \| = \Div(f ξ_2 + t, g) \label{eq:υ4e} \\ y \| = f ω_3 + υ_4 \end{align}
Nu is het grootste tussenresultaat niet meer \( f x + t \), dat zo groot kan worden als \( f w \), maar \( f\dmodp{x}{g} + t \), dat niet groter kan worden dan \( f g \lt g^2 \).
Formule \eqref{eq:υ4e} heeft weer de vorm van formule \eqref{eq:template}ff, als je \( \dmodp{x}{g} \) hernoemt tot een nieuwe \( x \).
We gebruiken de omweg van formule \eqref{eq:υ4e}. We vinden
\begin{align*} \{ ω_3, ξ_2 \} \| = \Div(x, g) = \Div(300 000, 12345) = \{ 24, 3720 \} \\ \{ υ_4, e \} \| = \Div(f ξ_2 + t, g) = \Div(8432×3720 + 871, 12345) \\ \| = \Div(31 367 911, 12345) = \{ 2540, 11611 \} \\ y = \| f ω_3 + υ_4 = 8432×24 + 2540 = 204 908 \end{align*}
Het grootste tussenresultaat is 31 367 911, wat ruim kleiner is dan \( w \).
Als we willekeurig grote getallen konden gebruiken, dan hadden we gevonden
\begin{align*} y \| = \dfloorratio{f x + t}{g} = \dfloorratio{8432×300 000 + 871}{12345} = \dfloorratio{2 529 600 871}{12345} = 204 908 \\ e \| = \dmodp{2 529 600 871}{12345} = 11611 \end{align*}
dus hetzelfde resultaat, maar dan met een tussenresultaat 2 529 600 871 dat groter is dan \( w \).
Maar soms is een tussenresultaat van (bijna) \( f g \) ook nog te groot, want een product van twee getallen kan veel groter zijn dan \( w \) ook als de twee getallen apart veel kleiner zijn dan \( w \). Als het product niet groter mag worden dan \( w \), dan mogen beide getallen niet allebei groter zijn dan \( \sqrt{w} \), en dat is een stuk kleiner dan \( w \) zelf. Bijvoorbeeld, voor 32-bitsgetallen is \( w = 2^{31} − 1 = 2 147 483 647 \) en is \( \sqrt{w} ≈ 46341 \), dus zelfs als \( g \) en \( fg \) allebei maar iets groter zijn dan 46431, wat toch niet heel erg groot is, dan is \( fg \) al te groot om in een 32-bitsgetal te passen.
Stel we kiezen een heel getal \( P \gt 0 \) en berekenen daarmee eenmalig
\begin{align} \{ Q, R \} \| = \Div(f P, g) \label{eq:PQR} \\ Q \| = \dfloorratio{f P}{g} \\ R \| = \dmodp{f P}{g} \end{align}
waarmee
\begin{equation} f P = f Q + R \end{equation}
Bepaal dan voor elke gewenste \( x \)
\begin{align} \{ q, r \} \| = \Div(x, P) \\ q \| = \dfloorratio{x}{P} \\ r \| = \dmodp{x}{P} \end{align}
zodat
\begin{equation} x = q P + r \end{equation}
en dan
\begin{align} f x + t \| = f q P + f r + t = q g Q + q R + f r + t \\ y \| = \dfloorratio{q g Q + q R + f r + t}{g} = q Q + \dfloorratio{q R + f r + t}{g} \label{eq:detour2} \\ e \| = \dmodp{q g Q + q R + f r + t}{g} = \dmodp{q R + f r + t}{g} \end{align}
Nu is het grootste tussenresultaat \( m ≡ q R + f r + t \). Om niet in de problemen te komen moet \( \dabs{m} ≤ w \) zijn, dus (omdat \( r \lt P \))
\begin{eqnarray} \dabs{x}\frac{R}{P} + f P + t ≤ w \\ \dabs{x} ≤ X ≡ \dparen{w − f P − t}\dfrac{P}{R} \end{eqnarray}
We hebben \( f \lt g \) dus \( f \) is geen veelvoud van \( g \) dus \( R \gt 0 \).
We zien dat \( 0 \lt P \lt \dfrac{w − t}{f} \) moet zijn, want anders is \( X ≤ 0 \).
\[ P \lt \dfrac{w − t}{f} = \dfrac{2 147 483 647 − 13835}{25920} = 82849.9 \]
Wat voorbeelden:
\({P}\) | \({Q}\) | \({R}\) | \({X}\) | \({X/w}\) |
---|---|---|---|---|
1 | 0 | 25920 | 82848.9 | 0.000 |
2 | 0 | 51840 | 82847.9 | 0.000 |
3 | 0 | 77760 | 82846.9 | 0.000 |
29 | 0 | 751680 | 82820.9 | 0.000 |
30 | 1 | 12167 | 5.29307 × 10+06 | 0.002 |
31 | 1 | 38087 | 1.74723 × 10+06 | 0.001 |
59 | 1 | 763847 | 165754 | 0.000 |
60 | 2 | 24334 | 5.29115 × 10+06 | 0.002 |
943 | 31 | 714137 | 2.8034 × 10+06 | 0.001 |
944 | 31 | 740057 | 2.70805 × 10+06 | 0.001 |
945 | 32 | 544 | 3.68789 × 10+09 | 1.717 |
33783 | 1144 | 8 | 5.37071 × 10+12 | 2500.932 |
82849 | 2805 | 406515 | 4836.65 | 0.000 |
82850 | 2805 | 432435 | −419.198 | −0.000 |
We willen het bereik van \( x \) zo groot mogelijk hebben, dus zoeken we \( P \) en \( R \) zodat \( X \) zo groot mogelijk wordt, gegeven \( w \), \( f \), \( t \). \( R \) moet dus liefst klein zijn.
Als \( P \) langzaam toeneemt (steeds met 1) dan varieert \( R = \dmodp{f P}{g} \) grillig tussen 0 en \( g − 1 \), dus de waarde van \( R \) is onafhankelijk van de globale grootte van \( P \), en er zijn veel waarden van \( P \) mogelijk voor dezelfde kleinste waarde van \( R \).
Als \( R \) de kleinst mogelijke waarde (groter dan nul) heeft, wat moet dan ongeveer de waarde van \( P \) zijn die de grootste waarde van \( X \) geeft?
Dan is \( X \) een kwadratische functie van \( P \). Als \( P \) elke willekeurige waarde kon hebben dan zou die grootst mogelijk waarde optreden voor
\begin{equation} P = P_0 = \dfrac{w − t}{2 f} \end{equation}
en gelijk zijn aan
\begin{equation} \max(X) = \dfrac{\dparen{w − t}^2}{4Rf} = \dfrac{f P_0^2}{R} \end{equation}
Om \( \max(X) ≥ w \) te hebben moet dus zeker
\begin{equation} R ≤ \dfrac{w}{4 f}\dparen{1−\dfrac{t}{w}}^2 \label{eq:maxR} \end{equation}
De kleinst mogelijke waarde die \( R \) kan hebben is gelijk aan de grootste gemene deler \( \gcd(f, g) \) van \( f \) en \( g \).
\begin{equation} R = R_1 ≡ \gcd(f, g) \end{equation}
Het Uitgebreide Algoritme van Euclides levert die waarde op, en ook getallen \( x \) en \( y \) zodat
\begin{equation} fx + gy = R \end{equation}
De \( x \) en \( y \) die je dan krijgt zijn in zekere zin het kleinste, maar ook de volgende waarden voldoen (met \( k \) een willekeurig heel getal):
\begin{equation} f\dparen{x + k\dfrac{g}{R}} + g\dparen{y − k\dfrac{f}{R}} = R \end{equation}
Omdat \( R \) een deler is van \( g \) en ook van \( f \) leveren de delingen door \( R \) in deze formule altijd hele getallen op.
De bij elkaar horende mogelijke waarden van \( P \) en \( Q \) zijn dan
\begin{align} P \| = x + k\dfrac{g}{R} \\ Q \| = −y + k\dfrac{f}{R} \end{align}
voor willekeurige hele \( k \) waarvoor \( P, Q \gt 0 \). De kleinste bruikbare positieve \( P \) en de daarbij horende waarde van \( Q \) zijn
\begin{align} P_1 \| = \dmodp{x}{g/R_1} \\ Q_1 \| = \dmodp{−y}{f/R_1} \end{align}
Deze \( P_1, Q_1, R_1 \) voldoen aan vergelijkingen \eqref{eq:PQR}ff, want
\begin{equation} \dfloorratio{f P_1}{g} = \dfloorratio{g Q_1 + R_1}{g} = Q_1 + \dfloorratio{R_1}{g} = Q_1 \end{equation}
omdat \( \dfloor{R_1/g} = 0 \) omdat \( R_1 = \gcd(f, g) \lt g \) omdat \( f \lt g \). En als \( Q_1 \) past dan past \( R_1 \) ook.
Om \( X \gt 0 \) te krijgen moet zeker gelden \( P ≤ w/f \), dus de grootste bruikbare \( P \) is
\begin{equation} P_\text{max} = \dfrac{w}{f} − \dmodp{\dfrac{w}{f} − P_1}{g/R_1} = P_1 + \dfloorp{\dfrac{w}{f} − P_1}{g/R_1} \end{equation}
De stapgrootte tussen opeenvolgende waarden van \( P \) die bij deze \( R \) horen is \( g/R \) dus als \( g/R \gt w/f \) (dus \( fg/R \gt w \)) dan is er misschien helemaal geen acceptabele waarde van \( P \) voor deze \( R \). In dat geval is \( P_\text{max} \lt 0 \).
\[ f x + g y = 25920×99902 − 765 433×3383 = 1 \]
dus
\begin{align*} x \| = 99902 \\ y \| = −3383 \\ R_1 \| = 1 \\ P_1 \| = \dmodp{x}{g/R} = \dmodp{99902}{765 433} = 99902 \\ Q_1 \| = \dmodp{−y}{f/R} = \dmodp{3383}{25920} = 3383 \\ P_\text{max} \| = \dfrac{w}{f} − \dmodp{\dfrac{w}{f} − P_1}{g/R_1} \\ \| = \dfrac{2 147 483 647}{25920} − \dmodp{\dfrac{2 147 483 647}{25920} − 99902}{765 433/1} \\ \| = 82850.4493441 − \dmodp{82850.4493441 − 99902}{765 433} \\ \| = 82850.4493441 − \dmodp{−17051.5506559}{765 433} \\ \| = 82850.4493441 − 748381.449344 = −665 531 \\ P_\text{max} \| = P_1 + \dfloorp{\dfrac{w}{f} − P_1}{g/R_1} \\ \| = 99902 + \dfloorp{−17051.5506559}{765 433} \\ \| = 99902 − 765 433 = −665 531 \end{align*}
dus \( P_\text{max} \lt 0 \) dus voor deze \( R \) is er op deze manier geen acceptabele waarde van \( P \).
Als je voor \( R = R_1 \) geen acceptabele waarde van \( P \) kunt vinden, probeer dan een steeds groter veelvoud van \( R_1 \) tot je wel een acceptabele \( P \) vindt. Dat kan, want omdat
\begin{equation} f P_1 − g Q_1 = R_1 \end{equation}
geldt ook
\begin{equation} f n P_1 − g n Q_1 = n R_1 \end{equation}
voor willekeurige \( n \).
Maar \( n P_1 \) mag niet groter zijn dan \( w/f \) dus \( n \) mag niet groter zijn dan \( w/(f P_1) \) en dat is vaak helemaal niet zo groot.
\[ \dfrac{w}{f P_1} = \dfrac{2 147 483 647}{25920×99902} = \dfrac{2 147 483 647}{2 589 459 840} = 0.829317224321 \]
en dat is zelfs kleiner dan 1.
Om toch meer kleine waarden van \( P \) te vinden kunnen we gebruik maken van de modulo-functie. Als we voor \( P \) nemen
\begin{equation} P = \dmodp{n P_1}{(g/R_1)} \end{equation}
dan is
\begin{eqnarray} \dfrac{n P_1 R_1}{g} \| = \| n\dfrac{R_1}{f}\dfrac{g Q_1 + R_1}{g} \\ P \| = \| \dfrac{g}{R_1}\dmod{\dfrac{n P_1 R_1}{g}} \eqvide{eq:dmodp} \\ \dfrac{f P}{g} \| = \|\dfrac{f}{R_1}\dmod{\dfrac{n P_1 R_1}{g}} = \dfrac{f}{R_1}\dmod{n\dfrac{R_1}{f}\dfrac{g Q_1 + R_1}{g}} \notag \\ \| = \| \dmodp{n Q_1 + \dfrac{n R_1}{g}}{(f/R_1)} \\ Q \| = \| \dfloorratio{f P}{g} = \dfloor{\dmodp{n Q_1 + \dfrac{n R_1}{g}}{(f/R_1)}} \notag \\ \| = \| \dmodp{\dfloor{n Q_1 + \dfrac{n R_1}{g}}}{(f/R_1)} = \dmodp{n Q_1 + \dfloor{\dfrac{n R_1}{g}}}{(f/R_1)} \eqvide{eq:floor(mod(x))} \\ R \| = \| f P − g Q \notag \\ \| = \| g\dmodp{n Q_1 + \dfrac{n R_1}{g}}{(f/R_1)} − g\dmodp{n Q_1 + \dfloor{\dfrac{n R_1}{g}}}{(f/R_1)} \notag \\ \| = \| g\dmodp{n Q_1 + \dfloor{\dfrac{n R_1}{g}} + \dmod{\dfrac{n R_1}{g}}}{(f/R_1)} − g\dmodp{n Q_1 + \dfloor{\dfrac{n R_1}{g}}}{(f/R_1)} \notag \\ \| = \| g\dmodp{n Q_1 + \dfloor{\dfrac{n R_1}{g}}}{(f/R_1)} + g\dmodp{\dmod{\dfrac{n R_1}{g}}}{(f/R_1)} \notag \\ \| \| − \dfrac{f g}{R_1} \iverson{\dmodp{n Q_1 + \dfloor{\dfrac{n R_1}{g}}}{(f/R_1)} + \dmodp{\dmod{\dfrac{n R_1}{g}}}{(f/R_1)} ≥ \dfrac{f}{R_1}} \notag \\ \| \| − g\dmodp{n Q_1 + \dfloor{\dfrac{n R_1}{g}}}{(f/R_1)} \notag \\ \| = \| g\dmodp{\dmod{\dfrac{n R_1}{g}}}{(f/R_1)} \notag \\ \| \| − \dfrac{f g}{R_1} \iverson{\dmodp{n Q_1 + \dfloor{\dfrac{n R_1}{g}}}{(f/R_1)} + \dmodp{\dmod{\dfrac{n R_1}{g}}}{(f/R_1)} ≥ \dfrac{f}{R_1}} \end{eqnarray}
Er geldt \( f/R_1 ≥ 1 \) en \( 0 ≤ \dmod{n R_1/g} \lt 1 \) dus de \( \dmodp{•}{(f/R_1)} \) daaromheen heeft geen effect, dus
\begin{equation} g\dmodp{\dmod{\dfrac{n R_1}{g}}}{(f/R_1)} = g\dmod{\dfrac{n R_1}{g}} = \dmodp{n R_1}{g} \end{equation}
De formule binnen de \( \iverson{•} \) is net zo om te schrijven tot
\begin{equation} \dmodp{n Q_1 + \dfloor{\dfrac{n R_1}{g}}}{(f/R_1)} + \dmod{\dfrac{n R_1}{g}} ≥ \dfrac{f}{R_1} \end{equation}
Er geldt
\begin{eqnarray} n Q_1 + \dfloorratio{n R_1}{g} \| \le \| \dfrac{f}{R_1} − 1 \\ \dmod{\dfrac{n R_1}{g}} \| \lt \| 1 \end{eqnarray}
omdat \( n Q_1 \) en \( \dfloor{n R_1/g} \) en ook \( f/R_1 \) hele getallen zijn. Dus de som van die twee is kleiner dan \( f/R_1 \), dus aan de voorwaarde binnen de \( \iverson{•} \) is nooit voldaan, dus die term valt weg. Al met al vinden we
\begin{align} P \| = \dmodp{n P_1}{(g/R_1)} \\ Q \| = \dmodp{n Q_1 + \dfloorratio{n R_1}{g}}{(f/R_1)} \\ R \| = \dmodp{n R_1}{g} \end{align}
Voor de berekening is deze vorm handiger:
\begin{align} P \| = \dmodp{n P_1}{(g/R_1)} \\ \{ ρ, R \} \| = \Div(n R_1, g) \\ Q \| = \dmodp{n Q_1 + ρ}{(f/R_1)} \end{align}
Zolang geldt \( n \lt g/R_1 \) is \( \dfloor{n R_1/g} = 0 \) en dus \( Q = \dmodp{n Q_1}{(f/R_1)} \). Dat zal in de praktijk meestal het geval zijn.
\begin{align*} P \| = \dmodp{99902 n}{765 433} \\ \{ ρ, R \} \| = \Div(n, 765 433) \\ Q \| = \dmodp{3383 n + ρ}{25920} \end{align*}
\({n}\) | \({P}\) | \({ρ}\) | \({R}\) | \({Q}\) | \({fP−gQ}\) | \({X/w}\) |
---|---|---|---|---|---|---|
1 | 99902 | 0 | 1 | 3383 | 1 | −20561.6 |
2 | 199804 | 0 | 2 | 6766 | 2 | −141024.5 |
3 | 299706 | 0 | 3 | 10149 | 3 | −261487.5 |
4 | 399608 | 0 | 4 | 13532 | 4 | −381950.5 |
5 | 499510 | 0 | 5 | 16915 | 5 | −502413.4 |
6 | 599412 | 0 | 6 | 20298 | 6 | −622876.3 |
7 | 699314 | 0 | 7 | 23681 | 7 | −743339.3 |
8 | 33783 | 0 | 8 | 1144 | 8 | +2500.9 |
9 | 133685 | 0 | 9 | 4527 | 9 | −9114.0 |
765432 | 665531 | 0 | 765432 | 22536 | 765432 | −6.1 |
765433 | 0 | 1 | 0 | 0 | 0 | +0.0 |
765434 | 99902 | 1 | 1 | 3383 | 1 | −20561.6 |
765435 | 199804 | 1 | 2 | 6766 | 2 | −141024.5 |
dus pas voor \( n = 8 \) vinden we een \( X \gt w \).
Om
\begin{equation} X = (w − f P − t)\dfrac{P}{R} \gt 0 \end{equation}
te vinden moet \( P \) voldoende dicht bij \( P_0 = (w − t)/(2 f) \) liggen.
Met \( P = \dmodp{n P_1}{(g/R_1)} \) is de kleinste positieve waarde \( n_0 \) van \( n \) waarvoor we \( P = P_0 \) krijgen gelijk aan \( n_0 = P_0/P_1 \), en de volgende waarde van \( n \) waarvoor \( P = P_0 \) ligt steeds \( g/P_1R_1 \) hoger dan de vorige, dus de waarden \( n_k \) van \( n \) die \( P = P_0 \) geven zijn
\begin{equation} n_k = \dfrac{P_0}{P_1} + k\dfrac{g}{P_1 R_1} \end{equation}
voor hele waarden \( 0 ≤ k \lt g \).
Het hele getal \( [n_k] = \dfloor{n_k + 1/2} \) het dichtste bij \( n_k \) is dan de kandidaat-\( n \). Calculate \( X \) for that value of \( n \) to see if it meets the condition that \( X \gt w \).
Opmerking: Rechte haken \( [x] \) worden in dit document gebruikt voor twee verschillende zaken: (1) iversonhaakjes: \( [x] \) geeft 1 als aan voorwaarde \( x \) voldaan is en anders 0; (2) afronden: \( [x] \) geeft het hele getal het dichtste bij \( x \). Je kunt aan \( x \) zien welke betekenis bedoeld is. Als \( x \) een voorwaarde uitdrukt zoals \( q \gt 3 \) dan gaat het om iversonhaakjes, en anders om afrondhaakjes.
\begin{align*} P_0 \| = \dfrac{w − t}{2 f} = \dfrac{2 147 483 647 - 13835}{2×25920} = 41424.9577932 \\ n_k \| = \dfrac{P_0}{P_1} + k\dfrac{g}{P_1 R_1} = \dfrac{41424.9577932}{99902} + \dfrac{765 433}{99902×1}k \\ \| = 0.414655940754 + 7.66183860183 k \\ n \| = \dfloor{n_k + 1/2} = \dfloor{0.914655940754 + 7.66183860183 k} \\ R \| = n \\ P \| = \dmodp{99902 n}{765 433} \\ X \| = (w − f P − t)\dfrac{P}{R} = (2 147 469 812 − 25920 P)\dfrac{P}{R} \end{align*}
De eerste paar relatief goede waarden van \( n \) zijn dan
\({k}\) | \({n_k}\) | \({n}\) | \({P}\) | \({Q}\) | \({R}\) | \({X/w}\) |
---|---|---|---|---|---|---|
0 | 0.41 | 0 | 0 | 0 | 0 | +0.0 |
1 | 8.08 | 8 | 33783 | 1144 | 8 | +2500.9 |
2 | 15.74 | 16 | 67566 | 2288 | 16 | +779.0 |
3 | 23.40 | 23 | 1447 | 49 | 23 | +61.8 |
4 | 31.06 | 31 | 35230 | 1193 | 31 | +653.2 |
5 | 38.72 | 39 | 69013 | 2337 | 39 | +295.5 |
6 | 46.39 | 46 | 2894 | 98 | 46 | +60.7 |
7 | 54.05 | 54 | 36677 | 1242 | 54 | +378.5 |
8 | 61.71 | 62 | 70460 | 2386 | 62 | +170.0 |
De eerste \( n \) is 0 en valt daarom af. De eerste daarboven is 8, zoals we ook eerder zagen.
Als we formules \eqref{eq:detour}ff gebruiken dan is het voldoende dat \( X ≥ g \) om alle waarden \( |x| ≤ w \) aan te kunnen, want dan kunnen we formules \eqref{eq:detour}ff gebruiken om eerst \( \dabs{x} \lt g \) te maken. Als we formules \eqref{eq:detour}ff niet gebruiken, dan moet \( X ≥ w \) zijn om alle waarden \( |x| \lt w \) aan te kunnen.
Er kunnen meerdere combinaties van \( P \), \( Q \) en \( R \) zijn die \( X ≥ w \) of \( X ≥ g \) geven, en die zijn dan allemaal goed genoeg. Binnen die groep geven we weer de voorkeur aan kleine \( P \), \( Q \), \( R \), want dat rekent en leest gemakkelijker.
\({R}\) | \({P}\) | \({Q}\) | \({PQR}\) | \({X}\) |
---|---|---|---|---|
23 | 1447 | 49 | 1.6 × 106 | 1.33 × 1011 |
46 | 2894 | 98 | 1.3 × 107 | 1.30 × 1011 |
544 | 945 | 32 | 1.6 × 107 | 3.69 × 109 |
69 | 4341 | 147 | 4.4 × 107 | 1.28 × 1011 |
92 | 5788 | 196 | 1.0 × 108 | 1.26 × 1011 |
We kiezen \( P = 1447 \), dan \( R = 23 \) en \( Q = 49 \).
Nu rekenen we \( y\), \( e \) uit voor \( x = 1 710 321 \). Dan vinden we
\begin{align*} q \| = \dfloorratio{x}{P} = \dfloorratio{1 710 321}{1447} = 1181 \\ r \| = \dmodp{x}{P}= \dmodp{1 710 321}{1447} = 1414 \\ y \| = q Q + \dfloorratio{q R + f r + t}{g} \\ \| = 1181×49 + \dfloorratio{1181×23 + 25920×1414 + 13835}{765 433} \\ \| = 57869 + \dfloorratio{36 691 878}{765 433} \\ \| = 57869 + 47 = 57916 \\ e \| = \dmodp{36 691 878}{765 433} = 716 527 \end{align*}
Het grootste tussenresultaat was 36 691 878, wat ruim kleiner is dan \( w \).
Als we willekeurige grote tussenresultaten mochten hebben, dan hadden we gevonden
\begin{align*} y \| = \dfloorratio{f x + t}{g} = \dfloorratio{25920×1 710 321 + 13835}{765 433} = \dfloorratio{44 331 534 155}{765 433} = 57916 \\ e \| = \dmodp{44 331 534 155}{765 433} = 716 527 \end{align*}
dus hetzelfde resultaat, maar met een veel groter tussenresultaat 44 331 534 155.
Nog een voorbeeld: \( g = 146 097 \), \( f = 4800 \), \( t = 15793 \), \( w = 2^{31} − 1 = 2 147 483 647 \). Dan is \( \dfrac{w}{f} = \dfrac{2^{31} − 1}{4800} ≈ 447 392 \), dus we zoeken een \( P \lt 146 097 \lt 447 392 \) en een zo klein mogelijke \( R \).
Met het Uitgebreide Algoritme van Euclides (of een zoektocht) vinden we dat \( −15188 f + 499 g = 3 \) en er is geen som van een veelvoud van \( f \) en een veelvoud van \( g \) die dichter bij 0 ligt. Dus
\begin{align*} P_1 \| = \dmodp{−15188}{(146 097/3)} = \dmodp{−15188}{48699} = 33511 \\ Q_1 \| = \dmodp{−499}{(4800/3)} = \dmodp{−499}{1600} = 1101 \\ R_1 \| = 3 \end{align*}
Even controleren:
\[ f P_1 − g Q_1 = 4800×33511 − 146 097×1101 = 3 = R_1 \]
dus mogelijk goede combinaties zijn
\begin{align*} P \| = \dmodp{n P_1}{(g/R_1)} = \dmodp{33511 n}{48699} \\ \{ ρ, R \} \| = \Div(n R_1, 146 097) = \Div(3 n, 146 097) \\ Q \| = \dmodp{n Q_1 + ρ}{(f/R_1)} = \dmodp{1101 n + ρ}{1600} \end{align*}
De beste kandidaten voor \( n \) zijn
\begin{align*} P_0 \| = \dfrac{w − t}{2 f} = \dfrac{2 147 483 647 − 15793}{2×4800} = 223694.568125 \\ n_k \| = \dfrac{P_0}{P_1} + k\dfrac{g}{P_1 R_1} = \dfrac{223694.568125}{33511} + \dfrac{146 097}{33511×3} k \\ \| = 6.67525791904 + 1.4532243144 k \end{align*}
Voor kleine \( R \) vinden we de volgende combinaties:
\({R}\) | \({P}\) | \({Q}\) |
---|---|---|
3 | 33511 | 1101 |
6 | 67022 | 2202 |
9 | 100533 | 3303 |
12 | 134044 | 4404 |
Er zijn 57132 combinaties waarvoor \( X ≥ w \). De combinaties met de kleinste \( P Q R \) zijn:
\({P}\) | \({Q}\) | \({R}\) | \({PQR}\) | \({X/w}\) |
---|---|---|---|---|
487 | 16 | 48 | 3.74 × 105 | 10.1 |
974 | 32 | 96 | 2.99 × 106 | 10.1 |
761 | 25 | 375 | 7.13 × 106 | 41.3 |
1461 | 48 | 144 | 1.01 × 107 | 10.1 |
1248 | 41 | 423 | 2.16 × 107 | 37.7 |
6270 | 206 | 18 | 2.32 × 107 | 343.5 |
We kiezen \( P = 487 \), dan \( Q = 16 \) en \( R = 48 \). We rekenen \( y \), \( e \) uit voor \( x = 731 767 \). Dan is
\begin{align*} q \| = \dfloorratio{731 767}{487} = 1502 \\ r \| = \dmodp{731 767}{487} = 293 \\ y \| = 1502×16 + \dfloorratio{1502×48 + 4800×293 + 15793}{146 097} \\ \| = 24032 + \dfloorratio{1 494 289}{146 097} = 24032 + 10 = 24042 \\ e \| = \dmodp{1 494 289}{146 097} = 33319 \end{align*}
Het grootste tussenresultaat is 1 494 289, wat ruim kleiner is dan \( w \).
De volgende tabel toont dat we ook met de andere combinaties dezelfde uitkomsten krijgen, maar niet dezelfde tussenresultaten. In die tabel is \( z = q R + f r + t \).
\({P}\) | \({Q}\) | \({R}\) | \({q}\) | \({r}\) | \({qQ}\) | \({z}\) | \({z/g}\) | \({y}\) | \({e}\) |
---|---|---|---|---|---|---|---|---|---|
487 | 16 | 48 | 1502 | 293 | 24032 | 1494289 | 10 | 24042 | 33319 |
974 | 32 | 96 | 751 | 293 | 24032 | 1494289 | 10 | 24042 | 33319 |
761 | 25 | 375 | 961 | 446 | 24025 | 2516968 | 17 | 24042 | 33319 |
1461 | 48 | 144 | 500 | 1267 | 24000 | 6169393 | 42 | 24042 | 33319 |
1248 | 41 | 423 | 586 | 439 | 24026 | 2370871 | 16 | 24042 | 33319 |
6270 | 206 | 18 | 116 | 4447 | 23896 | 21363481 | 146 | 24042 | 33319 |
Met de originele formule hadden we gevonden
\begin{align*} y \| = \dfloorratio{4800×731 767 + 15793}{146 097} = \dfloorratio{3 512 497 393}{146 097} = 24042 \\ e \| = \dmodp{3 512 497 393}{146 097} = 33319 \end{align*}
dus dezelfde uitkomsten maar dan met een grootste tussenresultaat gelijk aan 3 512 497 393, wat ruim groter is dan \( w \).
Ik heb voor alle \( w \) van 3 tot 1024 onderzocht wat de grootste waarden van \( f \) en \( g \) zijn waarvoor oplossingen te vinden zijn met \( X ≥ g \) of \( X ≥ w \), en wat de grootste \( P \), \( Q \), \( R \) en \( X \) zijn voor zulke oplossingen, en het grootste aantal \( c \) oplossingen, en het totale aantal \( N \) van combinaties van \( f \) en \( g \) waarvoor tenminste één oplossing is. Ik vind
\begin{align} \max(f_w) \| ≈ \dfloorratio{w}{4} \\ \max(f_g) \| ≈ \dfloorratio{w}{3} \\ \max(g_w) \| ≈ w − 5 + ⌊w⌉_2 \\ \max(g_g) \| ≈ w − 1 \\ \max(c_w) \| ≈ \dfloorratio{w + 8}{16} \\ \max(c_g) \| ≈ \dfloorratio{w − 1}{2} \\ \max(P_w) \| ≈ \dfloorratio{w}{2} − 2 + ⌊w⌉_2 \\ \max(P_g) \| ≈ \dfloorratio{w}{2} − 1 \\ \max(Q) \| ≈ \dfloorratio{2\sqrt{w − 1} − 3}{2} \\ \max(R_w) \| ≈ \dfloorratio{\sqrt{w + 1} − 1}{2} \\ \max(R_g) \| ≈ \frac{\sqrt{w(w + 1100)}}{25} \\ \max(X) \| ≈ \dfloorratio{w^2}{8} \\ N_w \| ≈ \frac{1}{5}w^{5/3} \\ N_g \| ≈ \frac{1}{3}w^{5/3} \end{align}
waar de variabelen met subscript \( w \) alleen slaan op \( X \gt w \), die met subscript \( g \) alleen op \( X \gt g \), en die zonder subscript slaan op allebei. De formules voor \( \max(R_g) \), \( N_w \) en \( N_g \) zijn benaderingen; de andere formules zijn exact voor \( 10 ≤ w ≤ 1024 \).
\begin{align*} \max(f_w) \| ≈ \dfloorratio{1023}{4} = 255 \\ \max(f_g) \| ≈ \dfloorratio{1023}{3} = 341 \\ \max(g_w) \| ≈ 1023 − 5 + ⌊1023⌉_2 = 1019 \\ \max(g_g) \| ≈ 1023 − 1 = 1022 \\ \max(c_w) \| ≈ \dfloorratio{1023 + 8}{16} = 64 \\ \max(c_g) \| ≈ \dfloorratio{1023 − 1}{2} = 511 \\ \max(P_w) \| ≈ \dfloorratio{1023}{2} − 2 + ⌊1023⌉_2 = 510 \\ \max(P_g) \| ≈ \dfloorratio{1023}{2} − 1 = 510 \\ \max(Q) \| ≈ \dfloorratio{2×\sqrt{1023 − 1} − 3}{2} ≈ ⌊30.47⌋ = 30 \\ \max(R_w) \| ≈ \dfloorratio{\sqrt{1023 + 1} − 1}{2} ≈ ⌊15.50⌋ = 15 \\ \max(R_g) \| ≈ \frac{\sqrt{1023 × (1023 + 1100)}}{25} ≈ 58.95 \\ \max(X) \| ≈ \dfloorratio{1023^2}{8} = 130816 \\ N_w \| ≈ \frac{1}{5}1023^{5/3} ≈ 20772.52 \\ N_g \| ≈ \frac{1}{3}1023^{5/3} ≈ 34620.87 \end{align*}
Deze waarden kloppen allemaal, behalve dat \( R_g = 59 \), \( N_w = 20014 \) en \( N_g = 33937 \).
Als we bovenstaande formules extrapoleren naar \( w = 2^{31} − 1 \) (voor waarden met een breedte van 32 bits), dan vinden we ongeveer
\begin{align*} \max(f_w) \| ≈ 5.4×10^8 \\ \max(f_g) \| ≈ 7.2×10^8 \\ \max(g) \| ≈ 2.1×10^9 \\ \max(c_w) \| ≈ 1.3×10^8 \\ \max(c_g) \| ≈ 1.1×10^9 \\ \max(P) \| ≈ 1.1×10^9 \\ \max(Q) \| ≈ 46340 \\ \max(R_w) \| ≈ 23170 \\ \max(R_g) \| ≈ 8.6×10^7 \\ \max(X) \| ≈ 5.8×10^{17} \\ N_w \| ≈ 7.1×10^{14} \\ N_g \| ≈ 1.2×10^{15} \end{align*}
dus als we zoeken naar een oplossing voor \( X ≥ w \) (zodat we formules \eqref{eq:detour}ff niet nodig hebben) dan hoeven we hooguit 23170 verschillende waarden van \( R \) te proberen. Als zo'n oplossing niet bestaat, dan zoeken we naar een oplossing voor \( X ≥ g \) (waarbij we formules \eqref{eq:detour}ff wel nodig hebben) en moeten we tot ongeveer 86 miljoen waarden van \( R \) proberen, wat nog steeds veel minder is dan de tot 1100 miljoen waarden van \( P \).
Voor een gegeven \( w \) is er voor lang niet alle combinaties van \( g \) en \( f \) tenminste één oplossing met \( X ≥ w \) of \( X ≥ g \). Bijvoorbeeld, voor \( w = 499 \) zijn er maar 6554 combinaties van \( g \) en \( f \) met tenminste één oplossing met \( X ≥ w \), en 10560 combinaties met tenminste één oplossing met \( X ≥ g \), terwijl er \( \frac{1}{2} (w − 2)×(w − 3) = 123 256 \) combinaties zijn met \( 2 ≤ f \lt g \lt w \). Hoe groter \( f \) is, hoe kleiner de kans dat er een oplossing is voor de combinatie van die \( f \) en een willekeurige \( g \gt f \).
Echter, als \( f \) en \( g \) flink kleiner zijn dan \( w \) dan is er wel een goede kans op een oplossing. Bijvoorbeeld, voor \( w = 2^{31} − 1 \) en voor \( f \) en \( g \) in de buurt van \( f ≈ 25920 \) en \( g ≈ 765 433 \) is er maar voor ongeveer 1 op de 9100 combinaties van \( f \) en \( g \) geen oplossing met \( X ≥ g \), en voor maar ongeveer 1 op de 54 combinaties geen oplossing met \( X ≥ w \).
We spreken voor het gemak over een kalender met alleen "dagen" en "maanden", waarbij de maanden langer zijn dan dagen, maar de formules werken natuurlijk ook voor andere tijdseenheden. Over kalenders met meer dan twee tijdseenheden hebben we het later.
We geven met \( m \) het maandnummer aan, met \( d \) het dagnummer in de maand, en met \( s \) het doorlopende dagnummer dat het begin- of eindpunt van de berekening is.
In het simpelste geval is de gemiddelde lengte van de maand gelijk aan \( p \) dagen en zijn alle maanden óf \( \dfloor{p} \) óf \( \dceil{p} \) dagen lang. We noemen de kortste maandlengte \( q \), en de fractie van de maanden die lang zijn noemen we \( ψ \). Dan
\begin{eqnarray} q \| = \| \dfloor{p} \\ p \| = \| q + ψ \end{eqnarray}
Het doorlopende dagnummer \( s \) hangt op de volgende manier af van maandnummer \( m \) en dagnummer-in-de-maand \( d \):
\begin{eqnarray} σ \| ≡ \| \dfloor{p m + b} \label{eq:sm} \\ s \| ≡ \| σ + d \label{eq:s} \end{eqnarray}
waarbij \( m, d, s, σ \) hele getallen zijn, en \( p ≥ 1 \) en \( b \) voor een bepaalde kalender vaste waarden hebben. De eerste maand heeft \( m = 0 \) en de eerste dag van de maand heeft \( d = 0 \), want dat rekent eenvoudiger. \( σ \) is het lopende dagnummer van het begin van de maand. Als er waarden van \( σ \) voor verschillende maanden van belang zijn dan schrijven we \( σ[m] \) voor de waarde van \( σ \) die hoort bij maand \( m \).
De eerste dag (\( d = 0 \)) van de eerste maand (\( m = 0 \)) heeft lopende dagnummer \( s = 0 \), dus
\begin{equation} ⌊b⌋ = 0 ⇔ 0 ≤ b \lt 1 \end{equation}
Dus \( b \) moet tussen 0 en 1 zijn (0 kan wel, 1 kan niet).
De lengte \( L(m) \) van maand \( m \) is
\begin{eqnarray} L(m) \| = \| σ(m + 1) − σ(m) \notag \\ \| = \| \dfloor{p m + b + p} − \dfloor{p m + b} \notag \\ \| = \| \dfloor{\dfloor{p m + b} + \dmod{p m + b} + p} − \dfloor{p m + b} \notag \\ \| = \| \dfloor{p m + b} + \dfloor{\dmod{p m + b} + p} − \dfloor{p m + b} \qquad ∵ \dfloor{p m + b} ∥ 1 \notag \\ \| = \| \dfloor{\dmod{p m + b} + p} \label{eq:Lnoi} \\ \| = \| \dfloor{\dmod{q m + ψ m + b} + q + ψ} \notag \\ \| = \| q + \dfloor{\dmod{ψ m + b} + ψ} \qquad ∵ q ∥ 1 \notag \\ \| = \| q + \dfloor{\dmod{ψ m + b}} + \dfloor{ψ} + \iverson{\dmod{ψ m + b} + \dmod{ψ} ≥ 1} \eqvide{eq:floor(x+y)i} \notag \\ \| = \| q + \iverson{\dmod{ψ m + b} + ψ ≥ 1} \qquad ∵ 0 ≤ ψ, \dmod{•} \lt 1 \label{eq:Li} \end{eqnarray}
Elke maand is \( q \) of \( q + 1 \) dagen lang. Maand \( m \) is lang (met \( q + 1 \) dagen) als \( \dmodp{ψ x + b}{1} ≥ 1 − ψ \). Gemiddeld is er een lange maand na elke
\begin{equation} Q = \frac{1}{ψ} \label{eq:Q} \end{equation}
maanden, maar dat is niet altijd een heel getal, dus in de praktijk is het aantal maanden tussen twee opeenvolgende lange maanden gelijk aan \( ⌊Q⌋ \) of \( ⌈Q⌉ \).
Hiermee krijgen we een bepaald patroon van lange en korte maanden. Stel dat dat precies het patroon is dat we willen, behalve dat het \( \D m \) maanden verschoven moet worden. Dus als \( L_*, σ_*, b_* \) bij de oude kalender horen, en \( L, σ, b \) bij de nieuwe kalender, dan willen we dat voor alle waarden van \( m \) geldt dat
\begin{equation} L(m + \D m) = L_*(m) \end{equation}
dus
\begin{equation} \dfloor{\dmod{p m + b + p\D m} + p} = \dfloor{\dmod{p m + b_*} + p} \eqvide{eq:Lnoi} \end{equation}
dus we krijgen wat we willen als
\begin{equation} b = \dmod{b_* − p\D m} = \dmod{b_* − ψ\D m} \end{equation}
\({m}\) | \({pm+b}\) | \({σ}\) | \({L}\) |
---|---|---|---|
0 | 0 | 0 | 17 |
1 | 17.2 | 17 | 17 |
2 | 34.4 | 34 | 17 |
3 | 51.6 | 51 | 17 |
4 | 68.8 | 68 | 18 |
5 | 86 | 86 | 17 |
6 | 103.2 | 103 | 17 |
7 | 120.4 | 120 | 17 |
8 | 137.6 | 137 | 17 |
9 | 154.8 | 154 | 18 |
10 | 172 | 172 | |
We zien dan maandlengtes van 17 dagen, met elke 5 maanden een maandlengte van 18 dagen, met de eerste lange maand als \( m = 4 \). Stel dat we die eerste lange maand liever op \( m = 3 \) hebben, dus 1 maand eerder. Dat krijgen we voor elkaar met
$$ b = \dmod{0 − 0.2×−1} = \dmod{0.2} = 0.2 $$
Met \( p = 17.2, b = 0.2 \) vinden we
\({m}\) | \({pm+b}\) | \({σ}\) | \({L}\) |
---|---|---|---|
0 | 0.2 | 0 | 17 |
1 | 17.4 | 17 | 17 |
2 | 34.6 | 34 | 17 |
3 | 51.8 | 51 | 18 |
4 | 69 | 69 | 17 |
5 | 86.2 | 86 | 17 |
6 | 103.4 | 103 | 17 |
7 | 120.6 | 120 | 17 |
8 | 137.8 | 137 | 18 |
9 | 155 | 155 | 17 |
10 | 172.2 | 172 | |
We gaan van lopende maandnummer \( m \) en dagnummer \( d \) in de maand naar lopende dagnummer \( s \) via een formule zoals
\begin{equation} s = \dfloor{p m + v} + d = σ + d \label{eq:sv} \end{equation}
waar \( v \) een willekeurige vaste waarde heeft. Als \( v = b \) dan is formule \eqref{eq:s} gelijk aan formule \eqref{eq:sv}.
De formule om \( m \) uit te rekenen uit \( s \) moet dan zoiets zijn als
\begin{equation} m = f\dparen{\dfrac{s + u}{p}} \end{equation}
waarbij \( u \) een vaste waarde is en \( f(x) \) een geschikte afrondfunctie is waarvoor
\begin{align} \| f(x) ∥ 1 \\ \| x ∥ 1 ⇒ f(x + y) = x + f(y) \end{align}
Dan
\begin{eqnarray} m \| = \| f\dparen{\dfrac{\dfloor{p m + v} + d + u}{p}} \| \eqvide{eq:sv} \notag \\ \| = \| f\dparen{\dfrac{p m + v − \dmod{p m + v} + d + u}{p}} \| \eqvide{eq:dmodp} \notag \\ \| = \| f\dparen{m + \dfrac{v + u + d − \dmod{p m + v}}{p}} \notag \\ \| = \| m + f\dparen{\dfrac{v + u + d − \dmod{p m + v}}{p}} \end{eqnarray}
dus we moeten hebben dat
\begin{equation} f(ξ) = 0 \end{equation}
voor
\begin{equation} ξ = \dfrac{v + u + d − \dmod{p m + v}}{p} \end{equation}
voor alle waarden van \( m \) en voor alle toegestane \( d \) voor die \( m \). Dat betekent voor tenminste alle \( d \) waarvoor \( 0 \le d \le L(m) − 1 \), maar het zou fijn zijn als ook niet-hele waarden van \( d \) tot net onder \( L(m) \) toegelaten kunnen worden, want dan kunnen we ook niet-hele waarden van \( s \) behandelen.
De eerste dag van de maand begint als \( d = 0 \). Als de voorgaande dag ten onrechte tot de huidige maand gerekend wordt dan is daarvoor \( d = −1 \). Dus we willen dat \( f(ξ) = 0 \) als \( d = 0 \), en \( f(ξ) ≠ 0 \) als \( d = −1 \), voor alle \( m \).
Er geldt \( 0 \le \dmod{•} \lt 1 \) dus voor vaste \( d \) maar wisselende \( m \) varieert de waarde van \( ξ \) zodat
\begin{equation} \dfrac{v + u + d − 1}{p} \lt ξ \le \dfrac{v + u + d}{p} \label{eq:ξneed} \end{equation}
Als \( f(x) ≡ \dfloor{x} \) dan geldt dat \( f(x) = 0 \) voor \( 0 ≤ x \lt 1 \). Dat past niet bij formule \eqref{eq:ξneed}, omdat dan de ondergrens wel maar de bovengrens niet in het interval zit terwijl wij juist het tegenovergestelde nodig hebben.
Als \( f(x) ≡ \dceil{x} \) dan geldt dat \( f(x) = 0 \) voor \( −1 \lt x ≤ 0 \). Dat past bij formule \eqref{eq:ξneed}, als
\begin{align} \| \dfrac{v + u − 1}{p} = −1 \\ \| u = 1 − v − p \end{align}
dus
\begin{eqnarray} m \| = \| \dceilratio{s + 1 − v − p}{p} = \dceilratio{s + 1 − v}{p} − 1 \label{eq:svtom} \\ ξ \| = \| \dceilratio{1 − p + d − \dmod{p m + v}}{p} \end{eqnarray}
De laatste dag van de maand begint als \( d = L(m) − 1 \) en loopt tot (maar niet tot en met) \( d = L(m) \). Dus we willen dat \( f(ξ) = 0 \) als \( d = L(m) − 1 \), en \( f(ξ) ≠ 0 \) als \( d = L(m) \), voor alle \( m \).
We kunnen \( L(m) \) omrekenen tot
\begin{eqnarray} L(m) \| = \| \dfloor{p m + v + p} − \dfloor{p m + v} \notag \\ \| = \| \dparen{p m + v + p − \dmod{p m + v + p}} − \dparen{p m + v − \dmod{p m + v}} \notag \\ \| = \| p + \dmod{p m + v} − \dmod{p m + v + p} \end{eqnarray}
Dan geldt voor \( d = L(m) − 1 \) dat
\begin{eqnarray} ξ \| = \| \dceilratio{1 − p + L(m) − 1 − \dmod{p m + v}}{p} \notag \\ \| = \| \dceilratio{1 − p + p + \dmod{p m + v} − \dmod{p m + v + p} − 1 − \dmod{p m + v}}{p} \notag \\ \| = \| \dceilratio{−\dmod{p m + v + p}}{p} \notag \\ \| = \| 0 \qquad (p \gt 1) \end{eqnarray}
zoals gewenst, en voor \( d = L(m) \) dat
\begin{eqnarray} ξ \| = \| \dceilratio{1 − p + L(m) − \dmod{p m + v}}{p} \notag \\ \| = \| \dceilratio{1 − \dmod{p m + v + p}}{p} \notag \\ \| = \| 1 \qquad (p \gt 1) \end{eqnarray}
wat ongelijk aan 0 is, zoals gewenst.
Voor \( L(m) − 1 \lt d \lt L(m) \) geldt niet altijd dat \( f(ξ) = 0 \), dus als we formule \eqref{eq:svtom} gebruiken voor een waarde van \( s \) die niet een heel getal is dan kunnen we een verkeerd resultaat krijgen als die \( s \) een moment in maar na het begin van de laatste dag van de maand aanduidt.
\[ s = \dfloor{p m + b} + d = \dfloor{30.6 m} + d \]
en dus dat maand \( m = 2 \) begint op dag
\[ s = \dfloor{30.6×2} + 0 = \dfloor{61.2} = 61 \]
Van dag \( s \) naar maand \( m \) gaat via
\[ m = \dceilratio{s + 1 − b − p}{p} = \dceilratio{s − 29.6}{30.6} \]
Dat geeft, voor een paar momenten tussen \( s = 60 \) en \( s = 61 \):
\({s}\) | \({\dfrac{s−29.6}{30.6}}\) | \({m}\) |
---|---|---|
60 | 0.99346405 | 1 |
60.19 | 0.99967320 | 1 |
60.2 | 1. | 1 |
60.21 | 1.0003268 | 2 |
61 | 1.0261438 | 2 |
dus voor \( s \) gelijk aan of net onder 60.2 vinden we \( m = 1 \) zoals gewenst, maar voor \( s \) groter dan 60.2 en kleiner dan 61 vinden we al \( m = 2 \) terwijl ook dat deel van dag \( s = 60 \) helemaal in maand \( m = 1 \) hoort. Dus om altijd het juiste maandnummer te vinden moet \( s \) een heel getal zijn.
En dan kunnen we ook \( d \) vinden.
\begin{eqnarray} p m \| = \| \dceilp{s + 1 − v}{p} − p \notag \\ \| = \| s + 1 − v − p + \ddomp{s + 1 − v}{p} \| \eqvide{eq:ddomp} \\ d \| = \| s − \dfloor{p m + v} \notag \\ \| = \| s − \dfloor{s + 1 − p + \ddomp{s + 1 − v}{p}} \notag \\ \| = \| −\dfloor{1 − p + \ddomp{s + 1 − v}{p}} \| \qquad (s ∥ 1) \notag \\ \| = \| \dceil{p − 1 − \ddomp{s + 1 − v}{p}} \| \eqvide{eq:ceil(−x)} \end{eqnarray}
Dus als we \( s + 1 − v \) scheiden in
\begin{equation} s + 1 − v = p μ − δ = p\dceilratio{s + 1 − v}{p} − \ddomp{s + 1 − v}{p} \end{equation}
dan
\begin{align} m \| = μ − 1 \label{eq:mviaμ} \\ d \| = \dceil{p − 1 − δ} \label{eq:dviaδ} \end{align}
We kunnen dit omschrijven voor gebruik met de \( \Div \)-functie, via
\begin{equation} \{ −μ, δ \} = \Div(−(s + 1 − v), p) \end{equation}
Voor de simpele kalender is \( v = b \) dus dan
\begin{align} \{ −μ, δ \} \| = \Div(−(s + 1 − b), p) \\ m \| = μ − 1 = \dceilratio{s + 1 − b}{p} − 1 \label{eq:ynaarx} \\ d \| = \dceil{p − 1 − δ} = \dceil{p − 1 − \ddomp{s + 1 − b}{p}} \end{align}
\begin{align*} σ \| = \dfloor{p m + b} = \dfloor{30.6 m} \\ L(m) \| = q + C\dparen{\dmodp{ψ m + b}{1} + ψ ≥ 1} = 30 + C\dparen{\dmodp{0.6 m}{1} ≥ 0.4} \\ μ \| = \dceilratio{s + 1 − b}{p} = \dceilratio{s + 1}{30.6} \\ m \| = μ − 1 = \dceilratio{s − 29.6}{30.6} \\ δ \| = \ddomp{s + 1 − b}{p} = \ddomp{s + 1}{30.6} \\ d \| = \dceil{p − 1 − δ} = \dceil{29.6 − δ} = \dceil{29.6 − \ddomp{s + 1}{30.6}} \end{align*}
En dan voor de eerste paar maanden
\({m}\) | \({pm}\) | \({σ(m)}\) | \({L(m)}\) |
---|---|---|---|
−1 | −30.6 | −31 | 31 |
0 | 0 | 0 | 30 |
1 | 30.6 | 30 | 31 |
2 | 61.2 | 61 | 30 |
3 | 91.8 | 91 | 31 |
4 | 122.4 | 122 | 31 |
5 | 153 | 153 | 30 |
6 | 183.6 | 183 | 31 |
7 | 214.2 | 214 | 30 |
8 | 244.8 | 244 | 31 |
9 | 275.4 | 275 | 31 |
10 | 306 | 306 | |
Omdat \( 5 p = 153 \) een heel getal is herhaalt het patroon van maandlengtes zich na 5 maanden. We zien hier het patroon 31-30-31-30-31 dat in de Gregoriaanse kalender de maanden maart - juli en augustus - december beschrijft.
Nu gaan we de andere kant op voor een paar lopende dagnummers:
\({s}\) | \({μ}\) | \({δ}\) | \({m}\) | \({d}\) |
---|---|---|---|---|
−2 | 0 | 1. | −1 | 29 |
−1 | 0 | 0. | −1 | 30 |
0 | 1 | 29.6 | 0 | 0 |
1 | 1 | 28.6 | 0 | 1 |
90 | 3 | 0.8 | 2 | 29 |
91 | 4 | 30.4 | 3 | 0 |
120 | 4 | 1.4 | 3 | 29 |
121 | 4 | 0.4 | 3 | 30 |
122 | 5 | 30. | 4 | 0 |
123 | 5 | 29. | 4 | 1 |
Rekenmachines en computers rekenen meestal met een beperkt aantal cijfers achter de komma, dus kun je last krijgen van afrondingsfouten. Als \( (s + 1 − b)/p = 6.99999999998 \) maar door een hele kleine afrondfout denkt je rekenmachine dat \( (s + 1 − b)/p = 7.00000000001 \), dan vindt je rekenmachine dat \( \dceil{(s + 1 − b)/p} = 7 \) in plaats van 6, en dan vind je de verkeerde maand.
Het omvormen van formules met \( ⌈•⌉ \) of \( ⌈•⌋_1 \) naar formules met \( ⌊•⌋ \) of \( ⌊•⌉_1 \) of \( \Div \) is gemakkelijker als alleen hele getallen worden gebruikt, want voor willekeurige hele getallen \( x \) en \( y \) (\( y \gt 0 \)) geldt
\begin{eqnarray} \dceilratio{x}{y} \| = \| \dfloorratio{x − 1}{y} + 1 \| \eqvide{eq:ceil2floor(x−1)} \\ \ddomp{x}{y} \| = \| y − 1 − \dmodp{x − 1}{y} \| \eqvide{eq:dom2mod(x−1)} \end{eqnarray}
Als de gemiddelde lengte \( p \) een breuk is, dan kunnen we afrondingsfouten ontlopen door de formules om te schrijven tot formules met breuken. We stellen
\begin{align} p \| = \dfrac{f}{g} = q + \dfrac{h}{g} \\ q \| = \dfloorratio{f}{g} \\ h \| = \dmodp{f}{g} \end{align}
met \( f \), \( g \) hele getallen groter dan nul. Dan vinden we, voor een willekeurige waarde \( x \).
\begin{equation} \dmodp{x}{f/g} = \dmodp{x}{p} = p\dmod{\dfrac{x}{p}} = \dfrac{f \dmod{\dfrac{gx}{f}}}{g} = \dfrac{\dmodp{gx}{f}}{g} \label{eq:gmodp} \end{equation}
en net zo
\begin{equation} \ddomp{x}{f/g} = \dfrac{\ddomp{gx}{f}}{g} \label{eq:gdomp} \end{equation}
Van maand \( m \) en dag \( d \) naar lopende dagnummer \( s \) gaat dan via
\begin{equation} t ≝ vg \end{equation}
\begin{align} s \| = \dfloor{p m + v} + d \notag \\ \| = \dfloor{\dfrac{f m + v g}{g}} + d \notag \\ \| = \dfloor{\dfrac{f m + t}{g}} + d \end{align}
waarbij we eisen dat ook \( t \) een heel getal is. Als \( v \) een breuk is kun je dat altijd voor elkaar krijgen door de juiste keuze van \( g \).
Voor de lengte van de maand vinden we
\begin{equation} L(m) = q + \iverson{\dmodp{h m + t}{g} ≥ g − h} \end{equation}
Voor de berekening van \( m \) en \( d \) uit \( s \) vinden we:
\begin{eqnarray} m \| = \| \dceilratio{s + 1 − v}{p} − 1 = \dceilratio{g s + g − t}{f} − 1 \notag \\ \| = \| \dfloorratio{gs + g − t − 1}{f} \| (t, g, s, f ∥ 1) \eqvide{eq:ceil2floor(x−1)} \label{eq:ynaarx2} \\ d \| = \| \dceil{p − 1 − \ddomp{s + 1 − v}{p}} \notag \\ \| = \| \dceilratio{f − g − \ddomp{g s + g − t}{f}}{g} \| \eqvide{eq:gdomp} \notag \\ \| = \| \dfloorratio{f − g − \ddomp{g s + g − t}{f} − 1}{g} + 1 \| (t, g, s, f ∥ 1) \eqvide{eq:ceil2floor(x−1)} \notag \\ \| = \| \dfloorratio{f − g − (f − 1 − \dmodp{g s + g − t − 1}{f}) − 1}{g} + 1 \| \eqvide{eq:dom2mod(x−1)} \notag \\ \| = \| \dfloorratio{\dmodp{g s + g − t − 1}{f}}{g} \| \eqvide{eq:dom2mod(x−1)} \end{eqnarray}
Samenvattend, van lopende maandnummer \( m \) en dagnummer \( d \) in de maand naar lopende dagnummer \( s \):
\begin{equation} s = \dfloorratio{fm + t}{g} + d \end{equation}
en van \( s \) naar \( m \) en \( d \):
\begin{align} w \| = g s + g − t − 1 \\ m \| = \dfloorratio{w}{f} \\ d \| = \dfloorratio{\dmodp{w}{f}}{g} \end{align}
wat ook kan worden geschreven als
\begin{align} \{ m, ω \} \| = \Div(g s + g − t − 1, f) \label{eq:ynaarxr} \\ d \| = \dfloorratio{ω}{g} \end{align}
Nu kun je alle berekeningen doen met breuken, die geen cijfers achter de komma hebben en dus geen afrondfouten geven.
\begin{align*} s \| = \dfloorratio{153 m}{5} + d \\ w \| = 5s + 4 \\ m \| = \dfloorratio{5 s + 4}{153} \\ d \| = \dfloorratio{\dmodp{5 s + 4}{153}}{5} \end{align*}
en voor het begin van de eerste paar maanden
\({m}\) | \({σ}\) | \({L(m)}\) |
---|---|---|
0 | 0 | 30 |
1 | 30 | 31 |
2 | 61 | 30 |
3 | 91 | 31 |
4 | 122 | 31 |
5 | 153 | 30 |
6 | 183 | 31 |
7 | 214 | 30 |
8 | 244 | 31 |
9 | 275 | 31 |
10 | 306 | 30 |
11 | 336 | 31 |
12 | 367 | |
Nu gaan we de andere kant op voor een paar lopende dagnummers:
\({s}\) | \({w}\) | \({m}\) | \({\dmodp{w}{f}}\) | \({d}\) |
---|---|---|---|---|
−2 | −6 | −1 | 147 | 29 |
−1 | −1 | −1 | 152 | 30 |
0 | 4 | 0 | 4 | 0 |
1 | 9 | 0 | 9 | 1 |
120 | 604 | 3 | 145 | 29 |
121 | 609 | 3 | 150 | 30 |
122 | 614 | 4 | 2 | 0 |
123 | 619 | 4 | 7 | 1 |
Hierboven namen we aan dat een lange maand maar één dag langer was dan een korte maand, maar dat verschil mag best groter zijn. Stel dat korte maanden \( q \) dagen lang zijn en dat lange maanden \( q + r \) dagen lang zijn, met \( q \), \( r \) hele getallen groter dan nul, en dat een fractie \( ψ \) (tussen 0 en 1) van de maanden lang is. Dan is de gemiddelde lengte van een maand gelijk aan
\begin{equation} p = q + rψ \end{equation}
dagen. De formule om het doorlopende dagnummer \( σ \) van de eerste dag van maand \( m \) uit te rekenen is dan
\begin{equation} σ = q m + r\dfloor{ψ m + b} \label{eq:sm2} \end{equation}
Als we daarin \( r = 1 \) invullen dan krijgen we
\begin{eqnarray} σ \| = \| q m + \dfloor{ψ m + b} \notag \\ \| = \| \dfloor{(q + ψ) m + b} \notag \\ \| = \| \dfloor{p m + b} \end{eqnarray}
dus hetzelfde als formule \eqref{eq:sm}.
Met formule \eqref{eq:sm2} is de lengte \( L(m) \) van maand \( m \)
\begin{eqnarray} L(m) \| = \| σ(m + 1) − σ(m) \label{eq:L} \\ \| = \| q(m + 1) + r\dfloor{ψ(m + 1) + b} − (q m + r\dfloor{ψ m + b}) \notag \\ \| = \| q + r\iverson{\dfloor{ψ m + ψ + b} − \dfloor{ψ m + b}} \notag \\ \| = \| q + r\iverson{\ddom{ψ m + b} + ψ ≥ 1} \eqavide{eq:floor(x+y)i} \end{eqnarray}
dus de lange maanden zijn de maanden waarvoor \(\ddomp{ψ m + b}{1} + ψ ≥ 1\), net als eerder bij de simpele kalender.
De formule om het doorlopende dagnummer \( s \) te berekenen uit maandnummer \( m \) en dagnummer-in-de-maand \( d \) is dan
\begin{eqnarray} s \| = \| σ + d \notag \\ \| = \| q m + r\dfloor{ψ m + b} + d \label{eq:xnaary3} \end{eqnarray}
Hoe gaan we nu de andere kant op? Daartoe vergelijken we het doorlopende dagnummer dat uit vergelijking \eqref{eq:xnaary3} komt voor de eerste dag (\( d = 0 \)) van maand \( m \) met het doorlopende dagnummer dat voor dezelfde \( m \) komt uit de meest vergelijkbare simpelste kalender. We schrijven de uitkomst voor de gewenste kalender als \( σ \), en voor de simpelere vergelijkingskalender als \( σ_* \).
\begin{align} σ \| = q m + r\dfloor{ψ m + b} \\ σ_* \| = q m + \dfloor{r(ψ m + b)} = \dfloor{p m + v} \label{eq:σ*} \\ p \| ≝ q + r ψ \\ v \| ≝ r b \\ \D σ ≝ σ_* − σ \| = \dfloor{r(ψ m + b)} − r\dfloor{ψ m + b} \label{eq:∆σ} \\ \| = \dfloor{r\dmod{ψ m + b}} \| \eqvide{eq:floor(nx)−nfloor(x)} \end{align}
Voor dit verschil geldt
\begin{equation} 0 \le σ_* − σ \le r − 1 \end{equation}
dus het begin van maand \( m \) in de doelkalender is tussen \( 0 \) en \( r − 1 \) dagen (inclusief) voor het begin van maand \( m \) in de simpele kalender.
\({m}\) | \({σ_*}\) | \({σ}\) | \({σ_* − σ}\) | \({ψm + b}\) | \({r\dmod{ψm + b}}\) |
---|---|---|---|---|---|
0 | 0 | 0 | 0 | 0.1 | 0.5 |
1 | 31 | 30 | 1 | 0.22 | 1.1 |
2 | 61 | 60 | 1 | 0.34 | 1.7 |
3 | 92 | 90 | 2 | 0.46 | 2.3 |
4 | 122 | 120 | 2 | 0.58 | 2.9 |
5 | 153 | 150 | 3 | 0.7 | 3.5 |
6 | 184 | 180 | 4 | 0.82 | 4.1 |
7 | 214 | 210 | 4 | 0.94 | 4.7 |
8 | 245 | 245 | 0 | 1.06 | 0.3 |
9 | 275 | 275 | 0 | 1.18 | 0.9 |
en \( σ_* − σ \) varieert tussen 0 en \( r − 1 = 5 − 1 = 4 \) zoals verwacht.
Voor die simpelere kalender gebaseerd op \( σ_* \) hebben we formule \eqref{eq:svtom} om het maandnummer uit te rekenen uit het lopende dagnummer:
\[ m_*(s) = \dceilratio{s + 1 − v}{p} − 1 \]
Dat betekent dat
\begin{equation} m_↑ = m_*(s + \max(\D σ)) = \dceilratio{s + \max(\D σ) + 1 − v}{p} − 1 \end{equation}
groter of gelijk is aan het goede maandnummer. En
\begin{equation} m_↓ = m_*(s + \min(\D σ)) = \dceilratio{s + \min(\D σ) + 1 − v}{p} − 1 \end{equation}
is kleiner of gelijk is aan het goede maandnummer:
\begin{equation} m_↓ ≤ m ≤ m_↑ \end{equation}
Voor ons huidige probleem is \( \min(\D σ) = 0 \) en \( \max(\D σ) = r − 1 \), dus
\begin{eqnarray} m_↑ \| = \| \dceilratio{s + r − v}{p} − 1 \\ m_↓ \| = \| \dceilratio{s + 1 − v}{p} − 1 = m_* \end{eqnarray}
maar voor later gebruik is het gunstig om \( \min(\D σ)\) en \( \max(\D σ) \) te laten staan.
Met \( m_↑ \) vinden we
\begin{equation} d_↑ = s − σ(m_↑) \end{equation}
Als \( d_↑ \lt 0 \) dan is \( m_↑ \) te groot. Als \( d_↑ \ge 0 \) dan hebben we het juiste maandnummer gevonden, maar die \( d_↑ \) is waarschijnlijk niet het juiste dagnummer.
Kunnen we een recept vinden om \( d \) uit te rekenen met een vast aantal stappen? Zoiets als
\begin{align} m_↑ \| ≡ \dceilratio{s + \max(\D σ) + 1 − v}{p} − 1 \\ d_↑ \| = s − σ(m_↑) \\ m \| = m_↑ + ξ \\ d \| = s − σ(m) \end{align}
waar \( ξ \) de correctie is die we moeten toepassen op \( m_↑ \) om \( m \) te vinden. We kunnen niet in alle gevallen \( ξ \) in één keer vinden, maar soms wel als \( ξ = 0 \) of \( ξ = 1 \), dus als het verschil tussen \( m_↑ \) en \( m \) hooguit 1 is.
We moeten dan hebben dat \( ξ = 0 \) als \( d_↑ ≥ 0 \) en dat \( ξ = −1 \) als \( d_↑ \lt 0 \). Dat suggereert zoiets als
\begin{equation} ξ = \dfloorratio{d_↑}{Ξ} \end{equation}
want dat geeft \( ξ = 0 \) als \( 0 \le d_↑ \lt Ξ \) en geeft \( ξ = −1 \) als \( −Ξ \le d_↑ \lt 0 \). Wat voor waarde moeten we dan gebruiken voor \( Ξ \)? Dat hangt af van de grootste en kleinste waarden die \( d_↑ \) kan hebben, dus laten we die afleiden.
\begin{align} s \| = σ(m) + d \notag \\ \| = σ_*(m) − \D σ(m) + d \notag \\ \| = \dfloor{p m + v} − \D σ(m) + d \notag \\ \| = p m + v − \dmod{p m + v} − \D σ(m) + d \end{align}
dus
\begin{align} m_↑ − m \| = \dceilratio{s + \max(\D σ) + 1 − v}{p} − 1 − m \notag \\ \| = \dceilratio{p m + v − \dmod{p m + v} − \D σ(m) + d + \max(\D σ) + 1 − v}{p} − 1 − m \notag \\ \| = \dceilratio{1 − \dmod{p m + v} + \max(\D σ) − \D σ(m) + d}{p} − 1 \end{align}
Altijd geldt \( 0 \lt 1 − \dmodp{•}{1} \le 1 \) en \( \max(\D σ) − \D σ(m) \ge 0 \) en \( d ≥ 0 \) dus is het stuk in \( \dceil{•} \) altijd groter dan 0, dus \( m_↑ − m ≥ 0 \) zoals gewenst. Wanneer is zeker \( m_↑ − m ≤ 1 \)? Dan moet
\begin{align*} \dceilratio{1 − \dmod{p m + v} + \max(\D σ) − \D σ(m) + d}{p} ≤ 2 \\ 1 − \dmod{p m + v} + \max(\D σ) − \D σ(m) + d ≤ 2p \end{align*}
De grootste waarde die \( d \) kan hebben is \( \max(L) − 1 \), dus we hebben zeker \( m_↑ − m \le 1 \) als
\begin{equation} ρ ≡ \max(\D σ) − \min(\D σ) + \max(L) − 2 p ≤ 0 \label{eq:singlepass} \end{equation}
Als \( m_↑ = m \) dan is de kleinste waarde van \( d_↑ \) gelijk aan 0 en de grootste gelijk aan \( \max(L) − 1 \).
Als \( m_↑ = m + 1 \) dan
\begin{eqnarray} d_↑ \| = \| s − σ(m_↑) \notag \\ \| = \| s − σ(m + 1) \notag \\ \| = \| \dparen{p m + v − \dmod{p m + v} − \D σ(m) + d} \notag \\ \| \| − \dparen{p m + v + p − \dmod{p m + v + p} − \D σ(m + 1)} \notag \\ \| = \| d − p + \dparen{\dmod{p m + v + p} − \dmod{p m + v}} + \D σ(m + 1) − \D σ(m) \notag \\ \| \gt \| 0 − p + \min\dparen{\dmod{p m + v + p} − \dmod{p m + v}} + \min(\D σ(m + 1) − \D σ(m)) \notag \\ \| = \| −p + (\dmod{p} − 1) + \min(\D σ(m + 1) − \D σ(m)) \eqvide{eq:ddomp} \notag \\ \| = \| −p + \dmod{p} − 1 + \min(L_*(m) − L(m)) \vide{\eqref{eq:∆σ}, \eqref{eq:L}} \notag \\ \| = \| −\dfloor{p} − 1 + \min(L_*(m) − L(m)) \eqvide{eq:dmodp} \notag \\ \| ≥ \| −\dfloor{p} − 1 + \min(L_*) − \max(L) \notag \\ \| = \| −\dfloor{p} − 1 + \dfloor{p} − \max(L) \notag \\ \| = \| −1 − \max(L) \notag \\ d_↑ \| \gt \| −1 − \max(L) \\ d_↑ \| ≥ \| −\max(L) \end{eqnarray}
dus
\begin{equation} −\max(L) ≤ d_↑ ≤ \max(L) − 1 \end{equation}
Voor
\[ ξ = \dfloorratio{d_↑}{Ξ} \]
hebben we dan nodig dat aan allebei de volgende eisen is voldaan:
\begin{align*} \dfloorratio{−\max(L)}{Ξ} = −1 \\ \dfloorratio{\max(L) − 1}{Ξ} = 0 \end{align*}
Aan allebei die eisen is voldaan als
\begin{equation} Ξ ≥ \max(L) \end{equation}
Dus als we
\begin{equation} Ξ = \max(L) \end{equation}
gebruiken (of een grotere waarde) dan voldoen we aan beide voorwaarden.
Samengevat, als
\[ ρ = \max(\D σ) − \min(\D σ) + \max(L) − 2 p ≤ 0 \]
dan
\begin{align} m_↑ \| = \dceilratio{s + \max(\D σ) + 1 − v}{p} − 1 \\ d_↑ \| = s − σ_↑ = s − σ(m_↑) \\ ξ \| = \dfloorratio{d_↑}{\max(L)} \\ m \| = m_↑ + ξ \\ d \| = s − σ(m) \end{align}
Met
\begin{align*} v \| = r b \\ \max(\D σ) \| = r − 1 \\ \min(\D σ) \| = 0 \\ \max(L) \| = q + r \\ p \| = q + r ψ \end{align*}
vinden we
\begin{align} m_↑ \| = \dceilratio{s + r − r b}{p} − 1 \label{eq:ynaarx3} \\ d_↑ \| = s − σ_↑ = s − σ(m_↑) \\ ρ \| = 2 r(1 − ψ) − 1 − q \\ ξ \| = \dfloorratio{d_↑}{q + r} \\ m \| = m_↑ + ξ \\ d \| = s − σ(m) \end{align}
dus \( ρ ≤ 0 \) komt overeen met
\begin{equation} r ≤ \dfrac{1}{2} \dfrac{q + 1}{1 − ψ} ≥ q + 1 \end{equation}
Als \( ρ \gt 0 \) dan werkt bovenstaand recept niet altijd dus dan is dat recept niet geschikt. Zie dan hoofdstuk 13.9.
\begin{align*} m_↑ \| = \dceilratio{s + r − r b}{p} − 1 = \dceilratio{s − 26.1}{30.6} \\ ρ \| = 2 r(1 − ψ) − q − 1 = 2×5×(1 − 0.12) − 1 − 30 = −22.2 ≤ 0 \end{align*}
Omdat \( ρ ≤ 0 \) kunnen we het recept met het vaste aantal stappen gebruiken.
\({s}\) | \({m}\) | \({\dfrac{s-26.1}{30.6}}\) | \({m_↑}\) | \({m_↑-m}\) | \({d_↑}\) | \({ξ}\) | \({m}\) | \({d}\) |
---|---|---|---|---|---|---|---|---|
−5 | −1 | −1.0163399 | −1 | 0 | 30 | 0 | −1 | 30 |
−4 | −1 | −0.98366013 | 0 | 1 | −4 | −1 | −1 | 31 |
0 | 0 | −0.85294118 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 0 | −0.82026144 | 0 | 0 | 1 | 0 | 0 | 1 |
29 | 0 | 0.094771242 | 1 | 1 | −1 | −1 | 0 | 29 |
30 | 1 | 0.12745098 | 1 | 0 | 0 | 0 | 1 | 0 |
59 | 1 | 1.0751634 | 2 | 1 | −1 | −1 | 1 | 29 |
60 | 2 | 1.1078431 | 2 | 0 | 0 | 0 | 2 | 0 |
89 | 2 | 2.0555556 | 3 | 1 | −1 | −1 | 2 | 29 |
90 | 3 | 2.0882353 | 3 | 0 | 0 | 0 | 3 | 0 |
119 | 3 | 3.0359477 | 4 | 1 | −1 | −1 | 3 | 29 |
120 | 4 | 3.0686275 | 4 | 0 | 0 | 0 | 4 | 0 |
148 | 4 | 3.9836601 | 4 | 0 | 28 | 0 | 4 | 28 |
149 | 4 | 4.0163399 | 5 | 1 | −1 | −1 | 4 | 29 |
150 | 5 | 4.0490196 | 5 | 0 | 0 | 0 | 5 | 0 |
153 | 5 | 4.1470588 | 5 | 0 | 3 | 0 | 5 | 3 |
154 | 5 | 4.1797386 | 5 | 0 | 4 | 0 | 5 | 4 |
209 | 6 | 5.9771242 | 6 | 0 | 29 | 0 | 6 | 29 |
210 | 7 | 6.0098039 | 7 | 0 | 0 | 0 | 7 | 0 |
214 | 7 | 6.1405229 | 7 | 0 | 4 | 0 | 7 | 4 |
215 | 7 | 6.1732026 | 7 | 0 | 5 | 0 | 7 | 5 |
en daar is inderdaad \( m_↑ ≥ m\).
Als \( p = \dfrac{f}{g} \), \( ψ = \dfrac{h}{g}\) en \( b = \dfrac{t}{g} \) breuken zijn (\( f, g, h, t \) zijn hele getallen met \( f \gt g \gt 0 \), \( 0 \le h, t \lt g \)) dan vinden we
\begin{align} s \| = σ + d = q m + r\dfloorratio{h m + t}{g} + d \label{eq:xnaary3r} \\ m_↑ \| = \dceilratio{s + \max(\D σ) + 1 − v}{p} − 1 \notag \\ \| = \dceilratio{gs + g\max(\D σ) + g − gv}{f} − 1 \notag \\ \| = \dceilratio{gs + g\max(\D σ) + g − t}{f} − 1 \notag \\ \| = \dfloorratio{gs + g\max(\D σ) + g − t − 1}{f} \eqavide{eq:ceil2floor(x−1)} \\ ρ \| = 2 r\dparen{1 − \dfrac{h}{g}} − 1 − q \\ d_↑ \| = s − q m_↑ − r\dfloorratio{h m_↑ + t}{g} \\ ξ \| = \dfloorratio{d_↑}{q + r} \\ m \| = m_↑ + ξ \\ d \| = s − q m − r\dfloorratio{h m + t}{g} \end{align}
\begin{align*} σ \| = 30 m + 5\dfloorratio{6 m + 5}{50} \\ s \| = 30 m + 5\dfloorratio{6 m + 5}{50} + d \\ m_↑ \| = \dfloorratio{50 s + 50×4 + 50 − 5 − 1}{1530} = \dfloorratio{50 s + 244}{1530} \\ d_↑ \| = s − 30 m_↑ − 5\dfloorratio{6 m_↑ + 5}{50} \\ ξ \| = \dfloorratio{d_↑}{35} \\ m \| = m_↑ + ξ \\ d \| = s − 30 m − 5\dfloorratio{6 m + 5}{50} \end{align*}
\({m}\) | \({σ}\) |
---|---|
0 | 0 |
1 | 30 |
2 | 60 |
3 | 90 |
4 | 120 |
5 | 150 |
6 | 180 |
7 | 210 |
8 | 245 |
9 | 275 |
\({s}\) | \({m_↑}\) | \({d_↑}\) | \({ξ}\) | \({m}\) | \({d}\) |
---|---|---|---|---|---|
−5 | −1 | 30 | 0 | −1 | 30 |
−4 | 0 | −4 | −1 | −1 | 31 |
−1 | 0 | −1 | −1 | −1 | 34 |
0 | 0 | 0 | 0 | 0 | 0 |
1 | 0 | 1 | 0 | 0 | 1 |
148 | 4 | 28 | 0 | 4 | 28 |
149 | 5 | −1 | −1 | 4 | 29 |
150 | 5 | 0 | 0 | 5 | 0 |
209 | 6 | 29 | 0 | 6 | 29 |
210 | 7 | 0 | 0 | 7 | 0 |
Nu laten we toe dat er nog meer verschillende maandsoorten zijn met verschillende lengtes. In formule \eqref{eq:xnaary3} gaf \( \dfloor{ψm + b} \) het patroon van lange maanden (met verschuiving naar wens). We laten nu een willekeurig aantal van die patronen toe, elk met hun eigen lengteverschil \( r_i \) (dat positief of negatief mag zijn), voorkomstfractie \( 0 \lt ψ_i \lt 1 \) en verschuiving \( b_i \). Dan vinden we
\begin{align} σ \| = q m + \sum_{i}r_i \dfloor{ψ_i m + b_i} \\ s = σ + d \| = q m + \sum_{i} r_i \dfloor{ψ_i m + b_i} + d \label{eq:xnaary4} \end{align}
De afleiding van de formule in omgekeerde richting gaat analoog aan die van formule \eqref{eq:ynaarx3}. We vinden
\begin{eqnarray} σ_* \| = \| q m + \dfloor{\sum_i r_i (ψ_i m + b_i)} \notag \\ \| = \| \dfloor{p m + \sum_i r_i b_i} \notag \\ \| = \| p m + \sum_i r_i b_i − \dmod{\sum_i r_i \dparen{ψ_i m + b_i}} \label{eq:σ*∑} \eqvide{eq:dmodp} \\ \D σ = σ_* − σ \| = \| \dfloor{\sum_i r_i (ψ_i m + b)} − \sum_i r_i\dfloor{ψ_i m + b_i} \notag \\ \| = \| \dfloor{\sum_i r_i \dmod{ψ_i m + b_i}} \eqvide{eq:floor(sumnx)−sumnfloor(x)} \end{eqnarray}
dus
\begin{align} v \| = \sum_i r_i b_i \\ \max(L) \| ≤ q + \sum_{r_i \gt 0} r_i \\ \max(\D σ) \| ≤ \dparen{\sum_{r_i \gt 0} r_i} − 1 \\ \min(\D σ) \| ≥ \sum_{r_i \lt 0} r_i \\ ρ \| = \max(\D σ) − \min(\D σ) + \max(L) − 2 p \notag \\ \| ≤ 2\dparen{\sum_{r_i \gt 0} r_i} − \dparen{\sum_{r_i \lt 0} r_i} − q − 1 − 2\dparen{\sum_i r_i ψ_i} \end{align}
We mogen voor \( \max(L) \) in onderstaande formules best een hogere waarde invullen, zoals de waarde die hierboven aan de rechterkant van \( \max(L) ≤ \) staat, en net zo voor de andere ongelijkheden. We doen daarom hieronder voor het gemak alsof die ongelijkheden gelijkheden zijn.
En dus
\begin{align} m_↑ \| = \dceilratio{s + \max(\D σ) + 1 − v}{p} − 1 \notag \\ \| = \dceilratio{s + \dparen{\sum_{r_i \gt 0} r_i} − \sum_i r_i b_i}{p} − 1 \label{eq:ynaarx4} \\ d_↑ \| = s − q m_↑ − \sum_i r_i\dfloor{ψ_i m_↑ + b_i} \\ ρ \| = 2\dparen{\sum_{r_i \gt 0} r_i} − \dparen{\sum_{r_i \lt 0} r_i} − q − 1 − 2\dparen{\sum_i r_i ψ_i} \end{align}
Als \( ρ ≤ 0 \) dan schelen \( m \) en \( m_↑ \) hooguit 1. Die eis komt overeen met
\begin{align} 2\dparen{\sum_{r_i \gt 0} r_i} \| − \dparen{\sum_{r_i \lt 0} r_i} − q − 1 − 2\dparen{\sum_i r_i ψ_i} ≤ 0 \notag \\ \dparen{\sum_{r_i \gt 0} r_i} \| + \dparen{\sum_{r_i \gt 0} r_i} − \dparen{\sum_{r_i \lt 0} r_i} − q − 1 − 2\dparen{\sum_i r_i ψ_i} ≤ 0 \notag \\ \dparen{\sum_{r_i \gt 0} r_i} \| + \dparen{\sum_{i} |r_i|} − q − 1 − 2\dparen{\sum_i r_i ψ_i} ≤ 0 \notag \\ \sum_{r_i \gt 0} r_i \| ≤ q + 1 + 2\dparen{\sum_i r_i ψ_i} − \dparen{\sum_{i} |r_i|} \eqavide{eq:singlepass} \end{align}
Dan
\begin{align} ξ \| = \dfloorratio{d_↑}{q + \sum_{r_i \gt 0} r_i} \\ m \| = m_↑ + ξ \label{eq:xζ4} \\ d \| = s − q m − \sum_i r_i\dfloor{ψ_i m + b_i} \end{align}
Als alle \( ψ_i = h_i/g_i \) en \( b_i = t_i/g_i \), en als aan eis \eqref{eq:singlepass} is voldaan
\begin{align} p \| = q + \sum_i r_iψ_i = q + \sum_i \dfrac{r_i h_i}{g_i} \\ g \| = \lcm(g_i) \\ γ_i \| = \dfrac{g}{g_i} \\ f \| = p g = g q + \sum_i γ_i r_i h_i \\ s \| = q m + \sum_i r_i\dfloorratio{h_i m + t_i}{g_i} + d \label{eq:xnaary4r} \\ m_↑ \| = \dceilratio{s + \dparen{\sum_{r_i \gt 0} r_i} − \dparen{\sum_i r_i b_i}}{f/g} − 1 \notag \\ \| = \dceilratio{g s + g\dparen{\sum_{r_i \gt 0} r_i} − \dparen{\sum_i γ_i r_i t_i}}{f} − 1 \notag \\ \| = \dfloorratio{g s + g\dparen{\sum_{r_i \gt 0} r_i} − \dparen{\sum_i γ_i r_i t_i} − 1}{f} \label{eq:ynaarx4r} \\ d_↑ \| = s − q m_↑ − \sum_i r_i\dfloorratio{h_i m_↑ + t_i}{g_i} \\ ρ \| = 2\dparen{\sum_{r_i \gt 0} r_i} − \dparen{\sum_{r_i \lt 0} r_i} − q − 1 − 2\dparen{\sum_i \dfrac{r_i h_i}{g_i}} \\ ξ \| = \dfloorratio{d_↑}{q + \sum_{r_i \gt 0} r_i} \\ m \| = m_↑ + ξ \\ d \| = s − q m − \sum_i r_i\dfloorratio{h_i m + t_i}{g_i} \end{align}
\( g \) is het kleinste gemene veelvoud van de noemers van alle \( ψ_i \) en \( b_i \).
Dan hebben we \( q = 17 \) en
\({i}\) | \({r_i}\) | \({ψ_i}\) | \({g_i}\) | \({h_i}\) | \({t_i}\) | \({γ_i}\) |
---|---|---|---|---|---|---|
1 | 2 | 1/3 | 3 | 1 | 0 | 5 |
2 | 3 | 1/5 | 5 | 1 | 0 | 3 |
en \( g = 15 \) (het product van noemers 3 en 5). Dan is
\begin{align*} p \| = 17 + 2×\dfrac{1}{3} + 3×\dfrac{1}{5} = 18 + \dfrac{4}{15} \\ f \| = p g = 15×\dparen{18 + \dfrac{4}{15}} = 274 = 15×17 + 5×2×1 + 3×3×1 \\ s \| = 17 m + 2\dfloorratio{m}{3} + 3\dfloorratio{m}{5} \\ m_↑ \| = \dfloorratio{15 s + 15×5 − 0 − 1}{274} = \dfloorratio{15 s + 74}{274} \\ d_↑ \| = s − 17 m_↑ − 2\dfloorratio{m_↑}{3} − 3\dfloorratio{m_↑}{5} \\ ρ \| = 2×5 − 0 − 17 − 1 − 2×\dparen{\dfrac{2×1}{3} + \dfrac{3×1}{5}} = −10 − \dfrac{8}{15} \\ ξ \| = \dfloorratio{d_↑}{22} \\ m \| = m_↑ + ξ \\ d \| = s − 17 m − 2\dfloorratio{m}{3} − 3\dfloorratio{m}{5} \end{align*}
De volgende tabel toont de resultaten die je krijgt als je voor bepaalde kalenderdata \( m \), \( d \) de bijbehorende lopende dagnummers \( s \) uitrekent, en als je daarna uit die \( s \) weer het maandnummer \( m \) uitrekent.
\({m}\) | \({d}\) | \({s}\) | \({m_↑}\) | \({d_↑}\) | \({ξ}\) | \({m_↑+ξ}\) |
---|---|---|---|---|---|---|
0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 16 | 16 | 1 | −1 | −1 | 0 |
1 | 0 | 17 | 1 | 0 | 0 | 1 |
1 | 16 | 33 | 2 | −1 | −1 | 1 |
2 | 0 | 34 | 2 | 0 | 0 | 2 |
2 | 18 | 52 | 3 | −1 | −1 | 2 |
3 | 0 | 53 | 3 | 0 | 0 | 3 |
3 | 16 | 69 | 4 | −1 | −1 | 3 |
4 | 0 | 70 | 4 | 0 | 0 | 4 |
4 | 19 | 89 | 5 | −1 | −1 | 4 |
5 | 0 | 90 | 5 | 0 | 0 | 5 |
5 | 18 | 108 | 6 | −1 | −1 | 5 |
6 | 0 | 109 | 6 | 0 | 0 | 6 |
6 | 16 | 125 | 7 | −1 | −1 | 6 |
7 | 0 | 126 | 7 | 0 | 0 | 7 |
7 | 16 | 142 | 8 | −1 | −1 | 7 |
8 | 0 | 143 | 8 | 0 | 0 | 8 |
8 | 18 | 161 | 9 | −1 | −1 | 8 |
9 | 0 | 162 | 9 | 0 | 0 | 9 |
9 | 19 | 181 | 10 | −1 | −1 | 9 |
10 | 0 | 182 | 10 | 0 | 0 | 10 |
10 | 16 | 198 | 11 | −1 | −1 | 10 |
11 | 0 | 199 | 11 | 0 | 0 | 11 |
11 | 18 | 217 | 12 | −1 | −1 | 11 |
12 | 0 | 218 | 12 | 0 | 0 | 12 |
12 | 16 | 234 | 13 | −1 | −1 | 12 |
13 | 0 | 235 | 13 | 0 | 0 | 13 |
13 | 16 | 251 | 14 | −1 | −1 | 13 |
14 | 0 | 252 | 14 | 0 | 0 | 14 |
14 | 21 | 273 | 15 | −1 | −1 | 14 |
15 | 0 | 274 | 15 | 0 | 0 | 15 |
15 | 16 | 290 | 16 | −1 | −1 | 15 |
Voorgaande methoden voor het berekenen van de kalenderdatum uit het doorlopende dagnummer voor kalenders met erg ongelijke maanden gingen er van uit dat de variatie in maandlengtes voldoende klein is dan het maandnummer berekend met de overeenkomstige simpele kalender hooguit eentje fout is: \( 2\dparen{\sum_{r_i \gt 0} r_i} − \dparen{\sum_{r_i \lt 0} r_i} − q − 1 − 2\dparen{\sum_i r_iψ_i} ≤ 0 \). Wat nu als aan die voorwaarde niet voldaan is?
In dat geval zul je de juiste maand moeten vinden door te zoeken. Probeer eerst maandnummer \( m_↑ \) en reken de bijbehorende \( d_↑\) en \( ξ \) uit. Is deze \( ξ \lt 0 \)? Trek dan 1 af van \( m_↑ \) en probeer opnieuw, net zo lang tot \( ξ = 0 \): dan heb je de juiste \( m \) gevonden.
Pas op! In eerdere hoofdstukken telden we \( ξ \) op bij \( m_↑ \) om het maandnummer te corrigeren, maar hier zijn we er niet zeker van dat we dan nooit een te klein maandnummer vinden. Een te groot maandnummer is eenvoudig te herkennen (dan is \( d_↑ \lt 0 \)) maar een te klein maandnummer niet. Dus hier moeten we niet \( ξ \) erbij tellen. Als \( ξ \lt 0 \), trek dan 1 af van het maandnummer en probeer het met dat nieuwe maandnummer, net zo lang tot \( ξ = 0 \).
\begin{align*} m_↑ \| = \dfloorratio{3 s + 20}{16} \\ σ \| = 3 m + 7\dfloorratio{m}{3} \end{align*}
We vinden
\({s}\) | \({m_↑}\) | \({σ_↑}\) | \({d₁}\) | \({ξ₁}\) | \({m₂}\) | \({σ₂}\) | \({d₂}\) | \({ξ₂}\) | \({m₃}\) | \({σ₃}\) | \({d₃}\) | \({ξ₄}\) | \({m}\) | \({d}\) |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 1 | 3 | −3 | −1 | 0 | 0 | 0 | 0 | 0 | 0 | ||||
1 | 1 | 3 | −2 | −1 | 0 | 0 | 1 | 0 | 0 | 1 | ||||
2 | 1 | 3 | −1 | −1 | 0 | 0 | 2 | 0 | 0 | 2 | ||||
3 | 1 | 3 | 0 | 0 | 1 | 0 | ||||||||
4 | 2 | 6 | −2 | −1 | 1 | 3 | 1 | 0 | 1 | 1 | ||||
5 | 2 | 6 | −1 | −1 | 1 | 3 | 2 | 0 | 1 | 2 | ||||
6 | 2 | 6 | 0 | 0 | 2 | 0 | ||||||||
7 | 2 | 6 | 1 | 0 | 2 | 1 | ||||||||
8 | 2 | 6 | 2 | 0 | 2 | 2 | ||||||||
9 | 2 | 6 | 3 | 0 | 2 | 3 | ||||||||
10 | 3 | 16 | −6 | −1 | 2 | 6 | 4 | 0 | 2 | 4 | ||||
11 | 3 | 16 | −5 | −1 | 2 | 6 | 5 | 0 | 2 | 5 | ||||
12 | 3 | 16 | −4 | −1 | 2 | 6 | 6 | 0 | 2 | 6 | ||||
13 | 3 | 16 | −3 | −1 | 2 | 6 | 7 | 0 | 2 | 7 | ||||
14 | 3 | 16 | −2 | −1 | 2 | 6 | 8 | 0 | 2 | 8 | ||||
15 | 4 | 19 | −4 | −1 | 3 | 16 | −1 | −1 | 2 | 6 | 9 | 0 | 2 | 9 |
16 | 4 | 19 | −3 | −1 | 3 | 16 | 0 | 0 | 3 | 0 | ||||
Bijvoorbeeld: voor \( s = 11 \) vinden we
\begin{align*} m_1 \| = m_↑ = \dfloorratio{3×11 + 20}{16} = 3 \\ σ_1 \| = σ(m_1) = 3×3 + 7\dfloorratio{3}{3} = 16 \\ d_1 \| = s − σ_1 = 11 − 16 = −5 \end{align*}
Die \( d_1 \) is kleiner dan nul, dus verlagen we \( m \) met één (\( m_2 = m_1 − 1 = 2 \)) en proberen we het opnieuw. Met die nieuwe \( m \) vinden we
\begin{align*} σ_2 \| = 3×2 + 7\dfloorratio{2}{3} = 6 \\ d_2 \| = s − σ_2 = 11 − 6 = 5 \end{align*}
en dat is niet meer negatief, dus zijn we klaar. Voor \( s = 11 \) is \( m = 2 \) en \( d = 5 \).
Je kunt deze procedure desgewenst ook gebruiken als wel aan eis \eqref{eq:singlepass} is voldaan.
Het grootste aantal maandnummers dat je misschien moet nakijken voordat je de goede gevonden hebt is gelijk aan de maximale waarde die \( m_↑ − m_↓ \) kan bereiken, plus 1.
\begin{align} m_↑ − m_↓ \| = \dceilratio{s + \max(\D σ) + 1 − v}{p} − \dceilratio{s + \min(\D σ) + 1 − v}{p} \\ \| ≤ \dceilratio{\max(\D σ) − \min(\D σ)}{p} \eqavide{eq:ceil(x−y)i} \end{align}
dus het aantal maanden dat je hooguit hoeft te proberen is ten hoogste
\begin{equation} N = \dceilratio{\max(\D σ) − \min(\D σ)}{p} + 1 \end{equation}
Voor een kalender met twee maandlengtes wordt dat
\begin{equation} N = \dceilratio{r − 1}{p} + 1 \end{equation}
en voor een kalender met meer maandlengtes
\begin{align} N \| ≤ \dceilratio{\dparen{\sum_{r_i \gt 0} r_i} − \dparen{\sum_{r_i \lt 0} r_i}}{p} + 1 \notag \\ \| = \dceilratio{\sum_i |r_i|}{p} + 1 \end{align}
In het voorgaande beschouwden we kalenders waarvan de maandlengtes uit te drukken zijn als de som van verschillende patronen, bijvoorbeeld met elke tweede maand een dag extra en bovendien elke derde maand nog eens twee dagen extra, zodat elke zesde maand in totaal drie dagen extra krijgt. Maar wat nu als de maandlengtes zichzelf na een bepaald aantal herhalen maar er verder geen patroon in te ontdekken valt?
\({s}\) | \({m}\) | \({d}\) |
---|---|---|
0 | 0 | 0 |
1 | 0 | 1 |
6 | 0 | 6 |
7 | 1 | 0 |
19 | 1 | 12 |
20 | 2 | 0 |
24 | 2 | 4 |
25 | 3 | 0 |
35 | 3 | 10 |
36 | 4 | 0 |
39 | 4 | 3 |
De kalender heeft \( f \) dagen in \( g \) maanden, met een gemiddelde maandlengte gelijk aan \( p = f/g \) dagen. Het verband tussen het lopende dagnummer \( s \) en het lopende maandnummer \( m \) is een trapfunctie: na een (wisselend) aantal dagen neemt het maandnummer toe met één. Zo'n trede van één die gebeurt net vóór dag \( a \) en zich elke \( f \) dagen weer herhaalt krijgen we met een functie
\begin{equation} \dfloorratio{s − a}{f} + 1 = \dfloorratio{s + f − a}{f} \end{equation}
De \( + 1 \) zorgt ervoor dat de uitkomst 0 is voor \( s \lt a \) en 1 voor \( s ≥ a \).
\[ m = \dfloorratio{s − 7}{40} + 1 = \dfloorratio{s + 33}{40} \]
\({s}\) | \({s−7}\) | \({m}\) |
---|---|---|
0 | −7 | 0 |
1 | −6 | 0 |
6 | −1 | 0 |
7 | 0 | 1 |
8 | 1 | 1 |
46 | 39 | 1 |
47 | 40 | 2 |
48 | 41 | 2 |
Als er \( g \) maanden zijn, elk met hun eigen \( a_i \) (voor \( i \) van 0 tot en met \( g − 1 \)), dan is hun gecombineerde effect
\begin{equation} \sum_{i=0}^{g−1} \dparen{\dfloorratio{s − a_i}{f} + 1} = g + \sum_{i=0}^{g−1} \dfloorratio{s − a_i}{f} = \sum_{i=0}^{g−1} \dfloorratio{s + f − a_i}{f} \end{equation}
We willen zoals gewoonlijk dat maand \( m = 0 \) begint als \( s = 0 \), dus dan moet \( a_0 = 0 \) zijn.
Als de opeenvolgende maandlengtes gelijk zijn aan \( L_i \), dan zit de eerste trede bij \( a_0 = 0 \), de tweede bij \( a_1 = a_0 + L_0 = L_0 \), de derde bij \( a_2 = a_1 + L_1 = L_0 + L_1 \), en in het algemeen
\begin{equation} a_i = \sum_{j=0}^{i-1} L_j \end{equation}
Daarmee is
\begin{equation} m = \sum_{i=0}^{g − 1} \dfloorratio{s + f − \sum_{j=0}^{i − 1} L_j}{f} \label{eq:willekeurigynaarx} \end{equation}
\({i}\) | \({L_i}\) | \({a_i}\) |
---|---|---|
1 | 7 | 0 |
2 | 13 | 7 |
3 | 5 | 20 |
4 | 11 | 25 |
5 | 4 | 36 |
en daarmee
\begin{align*} m \| = \dfloorratio{s + 40 − 0}{40} + \dfloorratio{s + 40 − 7}{40} + \dfloorratio{s + 40 − 20}{40} + \dfloorratio{s + 40 − 25}{40} + \dfloorratio{s + 40 − 36}{40} \\ \| = \dfloorratio{s + 40}{40} + \dfloorratio{s + 33}{40} + \dfloorratio{s + 20}{40} + \dfloorratio{s + 15}{40} + \dfloorratio{s + 4}{40} \end{align*}
Bijvoorbeeld, als \( s = 21 \) dan
\[ m = \dfloorratio{61}{40} + \dfloorratio{54}{40} + \dfloorratio{41}{40} + \dfloorratio{36}{40} + \dfloorratio{25}{40} = 1 + 1 + 1 + 0 + 0 = 3 \]
De andere kant op hebben we ook treden, maar nu wisselen dagen en maanden van rol als lengte en hoogte van de treden. Daarmee wordt de formule voor het lopende dagnummer \( σ \) van de eerste dag van maand \( m \):
\begin{equation} σ = \sum_{i=0}^{g − 1} L_i \dfloorratio{m + g − 1 − i}{g} \end{equation}
\[ σ = 7 \dfloorratio{m + 4}{5} + 13 \dfloorratio{m + 3}{5} + 5 \dfloorratio{m + 2}{5} + 11 \dfloorratio{m + 1}{5} + 4 \dfloorratio{m}{5} \]
\({x}\) | \({7⌊(x+4)/5⌋}\) | \({{13⌊(x+3)/5⌋}}\) | \({5⌊(x+2)/5⌋}\) | \({11⌊(x+1)/5⌋}\) | \({4⌊x/5⌋}\) | \({c}\) |
---|---|---|---|---|---|---|
0 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 7 | 0 | 0 | 0 | 0 | 7 |
2 | 7 | 13 | 0 | 0 | 0 | 20 |
3 | 7 | 13 | 5 | 0 | 0 | 25 |
4 | 7 | 13 | 5 | 11 | 0 | 36 |
5 | 7 | 13 | 5 | 11 | 4 | 40 |
De formule om van het lopende maandnummer \( m \) en het dagnummer-in-de-maand \( d \) te gaan naar lopende dagnummer \( s \) (allen beginnend bij 0) is dan (met \( i \) die loopt van 0 tot en met \( g − 1 \))
\begin{equation} s = σ + d = \sum_{i=0}^{g − 1} m_i \dfloorratio{m + g − 1 − i}{g} + d \label{willekeurigxnaary} \end{equation}
Deze formules zijn (als je de sommaties uitschrijft) een stuk langer dan de formules die we eerder afleidden voor kalenders met interne patronen, dus het is voordelig als je voor een kalender zulke interne patronen herkent, maar lang niet alle kalenders hebben zulke patronen.
De simpele kalender uit hoofdstuk 13.5 heeft \( s = \dfloor{p m + b} + d \). Om die kalender het begin van maand \( m \) op lopende dag \( s \) te laten leggen moeten we dus hebben \( s = \dfloor{p m + b} \) waaruit volgt dat \( s ≤ p m + b \lt s + 1 \) ofwel (voor \( m \gt 0 \)) \( (s − b)/m ≤ p \lt (s + 1 − b)/m \). We weten dat \( 0 ≤ b \lt 1 \), dus
\[ \frac{s − 1}{m} \lt \frac{s − b}{m} \le p \lt \frac{s + 1 − b}{p} \le \frac{s + 1}{p} \]
dus
\begin{equation} \frac{s − 1}{m} \lt p \lt \frac{s + 1}{m} \label{eq:beperkp} \end{equation}
Niet elke \( p \) die hieraan voldoet geeft een simpele kalender, maar als een \( p \) hieraan niet voldoet voor tenminste één van de maanden dan is er zeker geen simpele kalender voor deze maandlengtes.
Met formule \eqref{eq:beperkp} kunnen we het ook zien. De eerste dag van maand \( m = 1 \) heeft \( s = 7 \), dus moet \( 6 \lt p \lt 8 \). De eerste dag van maand \( m = 2 \) heeft \( s = 20 \) dus moet \( 9\frac{1}{2} = 19/2 \lt p \lt 21/2 = 10\frac{1}{2} \), en nu gaat het al fout, want om het begin van maand \( m = 1 \) goed te plaatsen moet \( p \) kleiner zijn dan 8, maar om het begin van maand \( m = 2 \) goed te plaatsen moet \( p \) groter zijn dan 9½, en dat kan niet allebei tegelijk.
Het is zeldzaam dat een kalender volledig bepaald is door alleen één periode \( p \), dus meestal moet je verschillende perioden combineren. Stel we hebben formules voor twee perioden:
\begin{align} y_1 \| = D_1(\{ x_1, z_1 \}) \\ y_2 \| = D_2(\{ x_2, z_2 \}) \end{align}
We gebruiken hier geen \( m \), \( d \) en \( s \) omdat we de vrijheid willen hebben om andere kalendereenheden dan maanden en dagen te gebruiken. \( x \) telt de grotere eenheid, en \( y \) en \( z \) tellen de kleinere eenheid. \( y \) is het lopende aantal van die kleinere eenheid, en \( z \) is het aantal van die kleinere eenheid sinds het begin van de meest recente grotere eenheid. Relatie \( D_1 \) zegt dat je \( y_1 \) uit kunt rekenen uit \( x_1 \) en \( z_1 \), en net zo voor \( D_2 \).
De andere kant op hebben we
\begin{align} \{ x_1, z_1 \} \| = U_1(y_1) \\ \{ x_2, z_2 \} \| = U_2(y_2) \end{align}
waar \( U \) en \( D \) elkaars inverse zijn:
\begin{align} y \| = D(U(y)) \\ \{ x, z \} \| = U(D(\{ x, z \})) \end{align}
Om van de kalenderdatum naar het lopende dagnummer te gaan passen we eerst \( D_1 \) toe en dan \( D_2 \). Er zijn twee manieren om deze te combineren: We kunnen de \( y_1 \) gelijk stellen aan \( z_2 \), of aan \( x_2 \). In het eerste geval hebben de twee relaties dezelfde schrikkeleenheden, bijvoorbeeld dagen. In het tweede geval hebben de twee perioden verschillende schrikkeleenheden (bijvoorbeeld soms een extra dag voor de eerste, en soms een extra maand voor de tweede). Als de grotere periode helemaal geen schrikkeleenheden nodig heeft, dan mag je kiezen welke combinatiemethode je wilt gebruiken.
Laten we het eerste geval de "vlakke" combinatie noemen, omdat de schrikkeleenheid hetzelfde blijft, en het tweede geval de "getrapte" combinatie, omdat de schrikkeleenheid een trapje hoger gaat.
De combinatie van maanden en jaren is in de meeste (misschien alle?) zonnekalenders (zoals de Gregoriaanse kalender, de Juliaanse kalender en de Egyptische kalender) vlak, dus van de eerste soort. Een maand kan een dagje korter of langer zijn dan een andere maand (en precies één maand kan veel korter zijn), en een jaar kan een dagje korter of langer zijn dan een ander jaar. De lengte van een jaar hangt niet af van de lengte van de maanden, want de regels voor de lengte van het jaar hangen af van het jaartal maar niet van een maandnummer.
De combinatie van maanden en jaren in een zongebonden maankalender (zoals de Joodse en Babylonische kalenders) kan vlak zijn met erg ongelijke jaarlengtes (\( r \gt 1 \)), of getrapt (dan meestal met \( r = 1 \)). Een maand kan een dagje korter of langer zijn dan een andere maand, en een jaar kan een maand korter of langer zijn dan een ander jaar. (Voor de vlakke combinatie kan één maand van het jaar een stuk korter zijn.) Op deze manier kun je twee afzonderlijke (astronomische) verschijnselen volgen: de beweging van de Zon (met het jaar), en de beweging van de Maan (met de maand). Als de combinatie getrapt is dan hangt de lengte van een jaar af van de lengte van de maanden, want de lengte van het jaar is dan een bepaald aantal maanden, niet een bepaald aantal dagen.
Niet-zongebonden maankalenders (zoals de administratieve Islamitische kalender) doen meestal niet aan schrikkeljaren, dus dan werken allebei de combinatiemethoden.
Als een kalender meer dan twee belangrijke grote perioden heeft met schrikkelregels (bijvoorbeeld niet alleen voor de maand en het jaar, maar ook voor de eeuw), dan is het mogelijk dat sommige combinaties vlak zijn en andere combinaties getrapt.
Als we met meer dan één periode rekening moeten houden dan is het voor het omrekenen van een doorlopend dagnummer naar een kalenderdatum rekentechnisch belangrijk dat de nummering binnen elk zulke periode begint bij 0.
\begin{align*} y_1 \| = \dfloorratio{7 x_1}{3} + z_1 = σ_1 + z_1 \\ x_1 \| = \dfloorratio{3 y_1 + 2}{7} \\ z_1 \| = \dfloorratio{\dmod{3 y_1 + 2}{7}}{3} \end{align*}
\begin{align*} y_2 \| = \dfloorratio{37 x_2}{5} + z_2 = σ_2 + z_2 \\ x_2 \| = \dfloorratio{5 y_2 + 4}{37} \\ z_2 \| = \dfloorratio{\dmodp{5y_2 + 4}{37}}{5} \end{align*}
en ook
\begin{align*} \{ x_1, r_1 \} \| = \Div(3 y_1 + 2, 7) \\ z_1 \| = \dfloorratio{r_1}{3} \\ \{ x_2, r_2 \} \| = \Div(5 y_2 + 4, 37) \\ z_2 \| = \dfloorratio{r_2}{5} \end{align*}
In dit geval is \( z_2 = y_1 \), dus we vinden
\begin{align} y_1 \| = D_1\dparen{\{ x_1, z_1 \}} \\ y_2 \| = D_2\dparen{\{ x_2, z_2 \}} = D_2\dparen{\{ x_2, D_1\dparen{\{ x_1, z_1 \}} \}} \label{eq:vlak} \end{align}
en omgekeerd
\begin{align} \{ x_2, z_2 \} \| = U_2(y_2) \label{eq:vlakr} \\ \{ x_1, z_1 \} \| = U_1(z_2) \end{align}
of, schematisch
x₂ ──────────┐ x₁ ┐ │ z₁ ┴ y₁ = z₂ ┴ y₂
De onderste rij heeft de kleinste kalendereenheid, meestal dagen. Steeds hogere rijen hebben steeds grotere tijdseenheden, bijvoorbeeld maanden en jaren. \( x_2 \) zou dan bijvoorbeeld het jaartal zijn, \( x_1 \) het maandnummer in het jaar, \( z_1 \) het dagnummer in de maand, \( y_1 \) het dagnummer in het jaar, en \( y_2 \) het lopende dagnummer.
Voor het berekenen van de kalenderdatum uit het doorlopende dagnummer moeten we eerst de grotere periode berekenen (\( x_2 \), \( z_2 \)), en daarna de kleinere (\( x_1 \), \( z_1 \)).
\({y_2}\) | \({x_2}\) | \({r_2}\) | \({z_2=y_1}\) | \({x_1}\) | \({r_1}\) | \({z_1}\) | \({\{x_2,x_1,z_1\}}\) |
---|---|---|---|---|---|---|---|
0 | 0 | 4 | 0 | 0 | 2 | 0 | {0, 0, 0} |
1 | 0 | 9 | 1 | 0 | 5 | 1 | {0, 0, 1} |
2 | 0 | 14 | 2 | 1 | 1 | 0 | {0, 1, 0} |
3 | 0 | 19 | 3 | 1 | 4 | 1 | {0, 1, 1} |
4 | 0 | 24 | 4 | 2 | 0 | 0 | {0, 2, 0} |
5 | 0 | 29 | 5 | 2 | 3 | 1 | {0, 2, 1} |
6 | 0 | 34 | 6 | 2 | 6 | 2 | {0, 2, 2} |
7 | 1 | 2 | 0 | 0 | 2 | 0 | {1, 0, 0} |
8 | 1 | 7 | 1 | 0 | 5 | 1 | {1, 0, 1} |
9 | 1 | 12 | 2 | 1 | 1 | 0 | {1, 1, 0} |
10 | 1 | 17 | 3 | 1 | 4 | 1 | {1, 1, 1} |
11 | 1 | 22 | 4 | 2 | 0 | 0 | {1, 2, 0} |
12 | 1 | 27 | 5 | 2 | 3 | 1 | {1, 2, 1} |
13 | 1 | 32 | 6 | 2 | 6 | 2 | {1, 2, 2} |
14 | 2 | 0 | 0 | 0 | 2 | 0 | {2, 0, 0} |
15 | 2 | 5 | 1 | 0 | 5 | 1 | {2, 0, 1} |
16 | 2 | 10 | 2 | 1 | 1 | 0 | {2, 1, 0} |
17 | 2 | 15 | 3 | 1 | 4 | 1 | {2, 1, 1} |
18 | 2 | 20 | 4 | 2 | 0 | 0 | {2, 2, 0} |
19 | 2 | 25 | 5 | 2 | 3 | 1 | {2, 2, 1} |
Doorlopend dagnummer \( y_2 = 16 \) komt overeen met dag \( z_1 = 0 \) van maand \( x_1 = 1 \) van jaar \( x_2 = 2 \).
In dit geval is \( x_2 = y_1 \), dus we vinden
\begin{align} y_1 \| = D_1\dparen{\{ x_1, z_1 \}} \\ y_2 \| = D_2\dparen{\{ x_2, z_2 \}} = D_2\dparen{D_1\dparen{\{ x_1, z_1 \}, z_2}} \end{align}
en omgekeerd
\begin{align} \{ x_2, z_2 \} \| = U_2(y_2) \\ \{ x_1, z_1 \} \| = U_1(x_2) \end{align}
of, schematisch
x₁ ┐ z₁ ┴ y₁ = x₂ ┐ z₂ ──────────┴ y₂
Hier kan bijvoorbeeld \( x_1 \) het jaartal zijn, \( z_1 \) het maandnummer in het jaar, \( z_2 \) het dagnummer in de maand, \( y_1 \) het doorlopende maandnummer, en \( y_2 \) het doorlopende dagnummer.
\({y_2}\) | \({x_2=y_1}\) | \({r_2}\) | \({z_2}\) | \({x_1}\) | \({r_1}\) | \({z_1}\) | \({\{x_1,z_1,z_2\}}\) |
---|---|---|---|---|---|---|---|
0 | 0 | 4 | 0 | 0 | 2 | 0 | {0, 0, 0} |
1 | 0 | 9 | 1 | 0 | 2 | 0 | {0, 0, 1} |
2 | 0 | 14 | 2 | 0 | 2 | 0 | {0, 0, 2} |
3 | 0 | 19 | 3 | 0 | 2 | 0 | {0, 0, 3} |
4 | 0 | 24 | 4 | 0 | 2 | 0 | {0, 0, 4} |
5 | 0 | 29 | 5 | 0 | 2 | 0 | {0, 0, 5} |
6 | 0 | 34 | 6 | 0 | 2 | 0 | {0, 0, 6} |
7 | 1 | 2 | 0 | 0 | 5 | 1 | {0, 1, 0} |
8 | 1 | 7 | 1 | 0 | 5 | 1 | {0, 1, 1} |
9 | 1 | 12 | 2 | 0 | 5 | 1 | {0, 1, 2} |
10 | 1 | 17 | 3 | 0 | 5 | 1 | {0, 1, 3} |
11 | 1 | 22 | 4 | 0 | 5 | 1 | {0, 1, 4} |
12 | 1 | 27 | 5 | 0 | 5 | 1 | {0, 1, 5} |
13 | 1 | 32 | 6 | 0 | 5 | 1 | {0, 1, 6} |
14 | 2 | 0 | 0 | 1 | 1 | 0 | {1, 0, 0} |
15 | 2 | 5 | 1 | 1 | 1 | 0 | {1, 0, 1} |
16 | 2 | 10 | 2 | 1 | 1 | 0 | {1, 0, 2} |
17 | 2 | 15 | 3 | 1 | 1 | 0 | {1, 0, 3} |
18 | 2 | 20 | 4 | 1 | 1 | 0 | {1, 0, 4} |
19 | 2 | 25 | 5 | 1 | 1 | 0 | {1, 0, 5} |
Doorlopend dagnummer \( y_2 = 16 \) komt overeen met dag \( z_2 = 2 \) van maand \( z_1 = 0 \) van jaar \( x_1 = 1 \).
In de meeste kalenders zijn er hogere en lagere perioden, en verandert het nummer van een hogere periode veel minder vaak dan het nummer van een lagere periode. Op de 7e dag van de 3e maand volgt de 8e dag van de 3e maand − het maandnummer verandert veel minder vaak dan het dagnummer.
Sommige kalenders hebben verschillende perioden die gelijktijdig oplopen. Ook de meestgebruikte kalenders hebben vaak zo'n geval, in de vorm van weekdagen en dagen van de maand. Als het een dag later wordt, dan verandert het dagnummer in de maand en ook de weekdag. Op maandag de 7e volgt dinsdag de 8e − het dagnummer en de weekdag veranderen even snel.
We hebben de weekdag niet nodig om een bepaalde dag uniek aan te wijzen (30 augustus 2011 wijst precies één dag aan, daarvoor hoeven we niet te weten dat dat een dinsdag was), dus komt de weekdag vaak niet voor in kalenderberekeningen. Echter, er zijn ook kalenders (bijvoorbeeld de kalenders van Midden-Amerika) waarin gelijktijdige perioden wel gebruikt worden om een bepaalde dag aan te wijzen. Hieronder bekijken we zulke gevallen.
Stel, een kalender gebruikt gelijktijdig perioden \( p_i \) (allemaal hele getallen groter dan 1) voor \( i \) van 1 tot en met \( n \). Het dagnummer in elke periode begint bij 0. We schrijven een datum in die kalender als \( \{ x \} = \{ x_1, x_2, …, x_n \} \), waarin \( x_i \) het dagnummer uit periode \( i \) is. Als \( x_i \) gelijk is aan \( p_i − 1 \), dan heeft de volgende dag weer \( x_i = 0 \).
Om een doorlopend dagnummer \( s \) om te rekenen naar \( \{ x \} \) kunnen we dan de volgende formule gebruiken:
\begin{equation} x_i = \dmodp{s + a_i}{p_i} = (s + a_i) \bmod p_i \label{eq:cycli} \end{equation}
Hierin is \( a_i \) de waarde die \( x_i \) krijgt als \( s = 0 \). Die waarde hangt af van de kalender.
\begin{align*} x_1 = \dmodp{s + 11}{13} \\ x_2 = \dmodp{s + 8}{20} \end{align*}
Dag \( s = 11 \) komt dan overeen met
\begin{align*} x_1 \| = \dmodp{11 + 11}{13} = \dmodp{22}{13} = 9 \\ x_2 \| = \dmodp{11 + 8}{20} = \dmodp{19}{20} = 19 \end{align*}
dus de datum is \( \{ 9, 19 \} \).
Wat meer voorbeelden:
\({s}\) | \({x_1}\) | \({x_2}\) |
---|---|---|
0 | 11 | 8 |
1 | 12 | 9 |
2 | 0 | 10 |
3 | 1 | 11 |
10 | 8 | 18 |
11 | 9 | 19 |
12 | 10 | 0 |
13 | 11 | 1 |
Het is een stuk lastiger om de andere kant op te gaan. Dan moeten we een \( s \) vinden zodat voor alle \( i \) aan vergelijking \eqref{eq:cycli} voldaan is, ofwel
\begin{equation} s ≡ x_i − a_i \pmod{p_i} \end{equation}
We definiëren
\begin{equation} c_i = x_i − a_i \end{equation}
We bekijken eerst het geval \( n = 2 \). Dan moeten we \( s \) oplossen uit
\begin{align} s \| ≡ c_1 \pmod{p_1} \label{eq:c1} \\ s \| ≡ c_2 \pmod{p_2} \label{eq:c2} \end{align}
Er zijn alleen oplossingen als
\begin{equation} c_1 ≡ c_2 \pmod{g} \end{equation}
waar
\begin{equation} g = \gcd(p_1, p_2) \end{equation}
de grootste gemene deler van \( p_1 \) en \( p_2 \) is, dus we nemen aan dat hieraan voldaan is. Dan zijn er getallen \( n_1, n_2 \) te vinden waarvoor geldt
\begin{equation} g = n_1 p_1 + n_2 p_2 \end{equation}
en dan zijn de oplossingen
\begin{equation} s ≡ \dfrac{c_1 n_2 p_2 + c_2 n_1 p_1}{g} \pmod{\dfrac{p_1 p_2}{g}} \label{eq:cyclitoj} \end{equation}
De tellers van deze breuken bevatten een deler \( g \) dus deze delingen leveren altijd hele getallen op.
\[ 1 = 13 n_1 + 20 n_2 \]
Je kunt \( g, n_1, n_2 \) vinden met behulp van het Uitgebreide Algoritme van Euclides. Je kunt \( n_1, n_2 \) ook vinden door oplopende waarden van \( n_1 \) (of \( n_2 \)) te proberen tot je er eentje vindt waarvoor het klopt. Je hebt een juiste \( n_1 \) gevonden als
\[ \dmodp{13 n_1 − 1}{20} = 0 \]
Als je begint met \( n_1 = 1 \) en steeds eentje hoger gaat dan hoef je hooguit \( n_2 − 1 \) verschillende waarden te proberen.
\({n_1}\) | \({\dmodp{13n_1 − 1}{20}}\) |
---|---|
1 | 12 |
2 | 5 |
3 | 18 |
4 | 11 |
5 | 4 |
6 | 17 |
7 | 10 |
8 | 3 |
9 | 16 |
10 | 9 |
11 | 2 |
12 | 15 |
13 | 8 |
14 | 1 |
15 | 14 |
16 | 7 |
17 | 0 |
18 | 13 |
19 | 6 |
20 | 19 |
21 | 12 |
We zien dat \( n_1 = 17 \) een oplossing is. Dan is
\[ n_2 = \dfrac{1 − 13 n_1}{20} = \dfrac{1 − 13×17}{20} = −11 \]
dus
\[ 1 = 17×13 − 11×20 = 221 − 220 \]
Daarmee zijn de gevraagde lopende dagnummers
\begin{align*} s \| ≡ \dfrac{c_1n_2p_2 + c_2n_1p_1}{g} \pmod{\dfrac{p_1p_2}{g}} \\ \| ≡ \dfrac{(x_1 − 11)×(−220) + (x_2 − 8)×221}{1} \pmod{\dfrac{13×20}{1}} \\ \| ≡ −220 x_1 + 221 x_2 + 11×220 − 8×221 \\ \| ≡ −220 x_1 + 221 x_2 + 652 \pmod{260} \end{align*}
Omdat de voorgaande formule \( \pmod{260} \) is mag je bij elke term een willekeurig veelvoud van 260 optellen, dus als je geen negatieve getallen in de formule wilt dan kun je die omschrijven tot
\begin{align*} s \| ≡ (260 − 220) x_1 + 221 x_2 + (652 − 2×260) \\ \| ≡ 40 x_1 + 221 x_2 + 132 \pmod{260} \end{align*}
Voor datum \( \{ 9, 19 \} \) vinden we dan
\[ s ≡ 40×9 + 221×19 + 132 ≡ 4691 ≡ 11 \pmod{260} \]
dus dag \( s = 11 \) en elke 260 dagen eerder of later komen overeen met datum \( \{ 9, 19 \} \).
Let op! Formule \eqref{eq:cyclitoj} geeft alleen zinnige resultaten voor \( \{x\} \) die ook echt in de kalender voorkomen. Als \( g \) niet gelijk is aan 1, dan komen niet alle mogelijke \( \{x\} \) voor. Als je een \( \{x\} \) invult die niet in de kalender voorkomt, dan komt er toch een redelijk uitziend resultaat uit de formule, maar dat klopt dan niet.
\begin{align*} x_1 = \dmodp{s}{10} \\ x_2 = \dmodp{s}{15} \end{align*}
Een oplossing voor
\[ g = n_1 p_1 + n_2 p_2 \]
is
\[ 5 = −1×10 + 1×15 \]
dus
\[ s ≡ \dfrac{15x_1 − 10x_2}{5} ≡ 3x_1 − 2x_2 \pmod{30} \]
\({s}\) | \({x_1}\) | \({x_2}\) | \({3x_1−2x_2}\) | \({\dmodp{3x_1−2x_2}{30}}\) |
---|---|---|---|---|
0 | 0 | 0 | 0 | 0 |
9 | 9 | 9 | 9 | 9 |
10 | 0 | 10 | −20 | 10 |
14 | 4 | 14 | −16 | 14 |
15 | 5 | 0 | 15 | 15 |
19 | 9 | 4 | 19 | 19 |
20 | 0 | 5 | −10 | 20 |
29 | 9 | 14 | −1 | 29 |
30 | 0 | 0 | 0 | 0 |
Omdat \( g \) niet gelijk is aan 1 komen veel combinaties van \( x_1 \) en \( x_2 \) niet voor in deze kalender. Alleen combinaties waarvoor \( x_1 − x_2 \) deelbaar is door 5 komen voor in deze kalender. Bijvoorbeeld \( \{ 3, 7 \} \) komt niet voor. Als we daarop bovenstaande formule voor \( s \) toepassen dan vinden we \( s ≡ 3×3 − 2×7 ≡ −5 ≡ 25 \pmod{30} \), maar voor \( s = 25 \) vinden we \( x_1 = \dmodp{25}{10} = 5 \) en \( x_2 = \dmodp{25}{15} = 10 \), dus \( \{ 5, 10 \} \) en niet \( \{ 3, 7 \} \). Ook voor onmogelijke \( \{ x \} \) komt er een nette \( s \) uit de formule.
Met behulp van formule \eqref{eq:cyclitoj} komt uit \( s ≡ c_1 \pmod{p_1} \) en \( s ≡ c_2 \pmod{p_2} \) een andere formule \( s ≡ C_2 \pmod{P_2} \) met
\begin{align} C_2 \| ≡ \dfrac{c_1 n_2 p_2 + c_2 n_1 p_1}{\gcd(p_1, p_2)} \\ P_2 \| ≡ \dfrac{p_1 p_2}{\gcd(p_1, p_2)} \end{align}
Die formule heeft weer dezelfde vorm als de twee formules waar we mee begonnen, dus kunnen we die formule weer op dezelfde manier combineren met \( s ≡ c_3 \pmod{p_3} \), en zo door tot we alle \( p_i \) gehad hebben. Uiteindelijk vinden we een formule die weer diezelfde vorm heeft \( s ≡ C_n \pmod{P_n} \) en dat is dan de uiteindelijke oplossing.
De procedure is dan als volgt. Gegeven \( x_i \), \( p_i \), \( a_i \) voor \( i \) van 1 tot en met \( n \),
\begin{align*} C_1 \| = x_1 − a_1 \\ P_1 \| = p_1 \end{align*}
\[ g_i = n_i P_i + m_i p_i \]
\begin{align*} C_i \| = \dfrac{C_{i−1} m_i p_i + c_i n_i P_{i−1}}{g_i} \\ P_i \| = \dfrac{P_{i−1} p_i}{g_i} \end{align*}
\begin{equation} s ≡ C_n \pmod{P_n} \label{eq:cycle} \end{equation}
\({i}\) | \({p_i}\) | \({a_i}\) |
---|---|---|
1 | 4 | 3 |
2 | 5 | 1 |
3 | 6 | 2 |
Dan reken je als volgt om van doorlopend dagnummer \( s \) naar kalenderdatum \( \{x\} \):
\begin{align*} x_1 \| = \dmodp{s + 3}{4} \\ x_2 \| = \dmodp{s + 1}{5} \\ x_3 \| = \dmodp{s + 2}{6} \end{align*}
In de omgekeerde richting vinden we:
\begin{align*} P_1 \| = 4 \\ C_1 \| ≡ x_1 − 3 \pmod{P_1 = 4} \\ c_2 \| = x_2 − 1 \\ g_2 \| = \gcd(4, 5) = 1 = −1×4 + 1×5 = m_2P_1 + n_2p_2 \\ P_2 \| = \dfrac{P_1p_2}{g_2} = \dfrac{4×5}{1} = 20 \\ C_2 \| ≡ \dfrac{C_1 n_2 p_2 + c_2 m_2 P_1}{g_2} \\ \| ≡ 5 (x_1 − 3) − 4 (x_2 − 1) \\ \| ≡ 5 x_1 − 4 x_2 − 11 \\ \| ≡ 5 x_1 + 16 x_2 + 9 \pmod{P_2 = 20} \\ g_3 \| = \gcd(20, 6) = 2 = 1×20 − 3×6 = m_3P_2 + n_3p_3 \\ P_3 \| = \dfrac{P_2p_3}{g_3} = \dfrac{20×6}{2} = 60 \\ C_3 \| ≡ \dfrac{C_2 n_3 p_3 + c_3 m_3 P_2}{g_3} \\ \| ≡ −9 (5 x_1 + 16 x_2 + 9) + 10 (x_3 − 2) \\ \| ≡ −45 x_1 − 144 x_2 + 10 x_3 − 101 \\ \| ≡ 15 x_1 + 36 x_2 + 10 x_3 + 19 \pmod{P_3 = 60} \end{align*}
De oplossing is
\[ s ≡ C_3 ≡ 15 x_1 + 36 x_2 + 10 x_3 + 19 \pmod{60} \]
\({s}\) | \({x_1}\) | \({x_2}\) | \({x_3}\) | \({C_2}\) | \({C_3}\) |
---|---|---|---|---|---|
0 | 3 | 1 | 2 | 0 | 0 |
1 | 0 | 2 | 3 | 1 | 1 |
2 | 1 | 3 | 4 | 2 | 2 |
3 | 2 | 4 | 5 | 3 | 3 |
4 | 3 | 0 | 0 | 4 | 4 |
5 | 0 | 1 | 1 | 5 | 5 |
6 | 1 | 2 | 2 | 6 | 6 |
7 | 2 | 3 | 3 | 7 | 7 |
8 | 3 | 4 | 4 | 8 | 8 |
9 | 0 | 0 | 5 | 9 | 9 |
10 | 1 | 1 | 0 | 10 | 10 |
11 | 2 | 2 | 1 | 11 | 11 |
12 | 3 | 3 | 2 | 12 | 12 |
13 | 0 | 4 | 3 | 13 | 13 |
14 | 1 | 0 | 4 | 14 | 14 |
27 | 2 | 3 | 5 | 7 | 27 |
28 | 3 | 4 | 0 | 8 | 28 |
29 | 0 | 0 | 1 | 9 | 29 |
30 | 1 | 1 | 2 | 10 | 30 |
31 | 2 | 2 | 3 | 11 | 31 |
654 | 1 | 0 | 2 | 14 | 54 |
Bijvoorbeeld, als \( s = 654 \), dan \( x_1 = \dmodp{654 + 3}{4} = 1 \), \( x_2 = \dmodp{654 + 1}{5} = 0 \), \( x_3 = \dmodp{654 + 2}{6} = 2 \). En van \( \{x\} \) naar \( s \) vinden we
\[ s ≡ 15×1 + 36×0 + 10×2 + 19 ≡ 54 \pmod{60} \]
en dat klopt, want \( 54 ≡ 654 \pmod{60} \).
Omdat de datum \( \{ x \} \) gegeven is als een serie posities in zich herhalende kringlopen is er een oneindig aantal dagen die bij die datum passen. Voor het doorlopende dagnummer \( s \) dat overeenkomt met datum \( \{ x \} \) vonden we formule \eqref{eq:cycle}, die een oplossing geeft \( \bmod P_n \). Als je een dagnummer \( s \) gevonden hebt dat hoort bij datum \( \{ x \} \), dan kun je willekeurige veelvouden van \( P_n \) daar bijtellen of aftrekken en dan heb je weer een dagnummer dat hoort bij datum \( \{ x \} \). Hoe kiezen we de juiste?
Om de juiste oplossing te kiezen uit de oneindige verzameling van mogelijke oplossingen moeten we extra informatie gebruiken. Een toepasselijke manier is om de oplossing te zoeken die het dichtste bij een door ons gekozen datum \( s_0 \) ligt. Je kunt "het dichtste bij" hier op tenminste vier manieren uitleggen:
We bekijken die een voor een, voor \( s ≡ C_n \pmod{P_n} \).
We zoeken de laatste \( s \) op of voor \( s_0 \) die voldoet aan \( s ≡ C_n \pmod{P_n} \). Dan, met \( k \) een heel getal,
\begin{align} s_0 − P_n \| \lt s ≤ s_0 \\ s_0 − P_n \| \lt C_n + kP_n ≤ s_0 \\ \frac{s_0 − C_n}{P_n} − 1 \| \lt k ≤ \frac{s_0 − C_n}{P_n} \end{align}
Er is maar één heel getal \( k \) dat aan deze ongelijkheid voldoet, namelijk
\begin{equation} k = \dfloorratio{s_0 − C_n}{P_n} \end{equation}
en daarmee
\begin{align} s \| = C_n + P_n \dfloorratio{s_0 − C_n}{P_n} \notag \\ \| = C_n + P_n \dparen{\frac{s_0 − C_n}{P_n} − \mod1ratio{s_0 − C_n}{P_n}} \notag \\ \| = C_n + (s_0 − C_n) − P_n \mod1ratio{s_0 − C_n}{P_n} \notag \\ \| = s_0 − \dmodp{s_0 − C_n}{P_n} \notag \\ \| = s_0 − ((s_0 − C_n) \bmod P_n) \label{eq:nearestle} \end{align}
We vonden daar \( C_n = 15 x_1 + 36 x_2 + 10 x_3 + 19 \) en \( P_n = 60 \), dus \( C_n = 15×1 + 36×0 + 10×2 + 19 = 54 \). Met formule \eqref{eq:nearestle} vinden we dan \( s = 700 − \dmodp{700 − 54}{60} = 700 − \dmodp{646}{60} = 700 − 46 = 654 \) en dat klopt: 654 + 60 = 714 is groter dan 700, dus 654 is de laatste \( s \) die kleiner of gelijk is aan \( s_0 \) en die past bij datum \( \{ 1, 0, 2 \} \).
We moeten \( s = 654 \) vinden voor \( s_0 \) van 654 tot en met 654 + 60 − 1 = 713, en dat doen we ook:
\({s_0}\) | \({s_0−C_n}\) | \({\dmodp{s_0−C_n}{P_n}}\) | \({s}\) |
---|---|---|---|
653 | 599 | 59 | 594 |
654 | 600 | 0 | 654 |
712 | 658 | 58 | 654 |
713 | 659 | 59 | 654 |
714 | 660 | 0 | 714 |
We zoeken de eerste \( s \) op of na \( s_0 \) die voldoet aan \( s ≡ C_n \pmod{P_n} \). Dan, met \( k \) een heel getal,
\begin{align} s_0 \| ≤ s \lt s_0 + P_n \\ s_0 \| ≤ C_n + k P_n \lt s_0 + P_n \\ \dfrac{s_0 − C_n}{P_n} \| ≤ k \lt \dfrac{s_0 − C_n}{P_n} + 1 \end{align}
Er is maar één heel getal \( k \) dat aan deze ongelijkheid voldoet, namelijk
\begin{equation} k = \dceilratio{s_0 − C_n}{P_n} \end{equation}
en daarmee
\begin{align} s \| = C_n + P_n \dceilratio{s_0 − C_n}{P_n} \notag \\ \| = C_n + P_n \dparen{\dfrac{s_0 − C_n}{P_n} + \dom1ratio{s_0 − C_n}{P_n}} \notag \\ \| = C_n + (s_0 − C_n) + P_n \dom1ratio{s_0 − C_n}{P_n} \\ \| = s_0 + \ddomp{s_0 − C_n}{P_n} \\ \| = s_0 + \dmodp{C_n − s_0}{P_n} \\ \| = s_0 + ((C_n − s_0) \bmod P_n) \label{eq:nearestge} \end{align}
We hadden \( C_n = 54 \). Met formule \eqref{eq:nearestge} vinden we dan \( s = 700 + \dmodp{54 − 700}{60} = 700 + \dmodp{−646}{60} = 700 + 14 = 714 \) en dat klopt: 714 − 60 = 654 is kleiner dan 700, dus 714 is de eerste \( s \) die groter of gelijk is aan \( s_0 \) en die past bij datum \( \{ 1, 0, 2 \} \).
We moeten \( s = 714 \) vinden voor \( s_0 \) van 714 − 60 + 1 = 655 tot en met 714, en dat doen we ook:
\({s_0}\) | \({s_0−C_n}\) | \({\dmodp{C_n−s_0}{P_n}}\) | \({s}\) |
---|---|---|---|
654 | 600 | 0 | 654 |
655 | 601 | 59 | 714 |
656 | 602 | 58 | 714 |
713 | 659 | 1 | 714 |
714 | 660 | 0 | 714 |
715 | 661 | 59 | 774 |
De laatste \( s \) voor \( s_0 \) is één \( P_n \) eerder dan de eerste \( s \) op of na \( s_0 \), dus
\begin{equation} s = s_0 − P_n − \dmodp{s_0 − C_n}{P_n} \end{equation}
De eerste \( s \) na \( s_0 \) is één \( P_n \) later dan de laatste \( s \) op of voor \( s_0 \), dus
\begin{align} s \| = s_0 + P_n + \ddomp{s_0 − C_n}{P_n} \\ \| = s_0 + P_n + \dmodp{C_n − s_0}{P_n} \end{align}
Deze samenvatting noemt dagen en maanden, maar geldt ook voor andere tijdseenheden. We onderscheiden vier verschillende moeilijkheidsgraden: van 1 tot 4 worden de formules ingewikkelder maar kunnen ze ook meer gevallen aan.
De tabel hieronder vat de kalenderformules samen, en maakt gebruik van de volgende definities:
# | 2 | 3 | 4 |
---|---|---|---|
\({p}\) | \({q + \dfrac{h}{g}}\) | \({q + r\dfrac{h}{g}}\) | \({q + \sum_i \dfrac{r_i h_i}{g_i}}\) |
\({f}\) | \({q g + h}\) | \({q g + rh}\) | \({q g + \sum_i γ_i r_i h_i}\) |
\({σ}\) | \({\dfloorratio{f m + t}{g}}\) | \({q m + r\dfloorratio{h m + t}{g}}\) | \({q m + \sum_i r_i\dfloorratio{h_i m + t_i}{g_i}}\) |
\({ρ}\) | \({2r(1 − ψ) − 1 − q}\) | \({2\dparen{\sum_{r_i\gt0}r_i} − \dparen{\sum_{r_i\lt0}r_i} − q − 1 − 2\sum_i \dfrac{r_i h_i}{g_i}}\) | |
\({w}\) | \({g s + g − t − 1}\) | \({g s + g r − r t − 1}\) | \({g s + g\dparen{\sum_{r_i \gt 0}r_i} − \dparen{\sum_i γ_i r_i t_i} − 1}\) |
\({m}\) | \({\dfloorratio{w}{f}}\) | \({\dfloorratio{w}{f}}\) | \({\dfloorratio{w}{f}}\) |
\({d}\) | \({\dfloorratio{\dmodp{w}{f}}{g}}\) | \({s - q m - r\dfloorratio{h m + t}{g}}\) | \({s − q m − \dparen{\sum_i r_i\dfloorratio{h_i m + t_i}{g_i}}}\) |
\({ξ}\) | \({\dfloorratio{d}{q + r}}\) | \({\dfloorratio{d}{q + \sum_{r_i \gt 0} r_i}}\) |
Kalendertype 1 is als kalendertype 2 maar met \( t = 0 \).
Voor kalendertypen 3 en 4 geeft de formule voor \( m \) een bovengrens voor het maandnummer. De algemene procedure om het juiste maandnummer te vinden is dan:
Probeer de \( m \) die uit de formule in de tabel komt. Reken de bijbehorende \( σ\) uit en daarna \( d = s − σ \) en \( ξ \). Als \( ξ \) gelijk is aan 0 dan ben je klaar. Trek anders 1 af van \( m \) \(\) en probeer opnieuw.
Als \( ρ ≤ 0 \) dan hoef je \( ξ \) hooguit één maal uit te rekenen. Anders kunnen meer keren nodig zijn.
Als er meer dan twee tijdsperioden in het spel zijn, dan moeten verschillende kalenderniveaus gecombineerd worden.
Bijna alle kalenders onderscheiden drie basisperioden: dagen, maanden en jaren. Met één kalenderniveau (rechte lijn) kun je twee perioden verbinden, dus voor drie perioden zijn tenminste twee kalenderniveaus nodig.
We geven verderop voor elke kalenderberekening een diagram. We leggen die diagrammen uit aan de hand van dit voorbeeld:
a ━━━━━━━━━━━┓ ┏━ a₁ ━━━━━━━━━━┓ (1) ┃ m ─(−1)─ m₀ ─┘ └─ m₁ ─┐ ┃ d ─(−1)─ d₀ ─────────(2)─ d₁ ─(3)━ s ━(+J₀)━ J
De kalenderdatum met jaar, maand, dag \( a, m, d \) staat helemaal links, en het CJDN \( J \) staat rechts. De symbolen tussen haakjes, zoals (1) en (+J₀), geven een bewerking aan. De andere symbolen, zoals a₁ en d₁, geven tussenresultaten aan. De lijnen geven aan welke tussenresultaten uit de ene bewerking worden gebruikt in de andere bewerking. De tussenresultaten met namen met een a erin (zoals a₁) zijn gemeten in jaren, die met m zijn gemeten in maanden, en die met d, s, of J zijn gemeten in dagen. Namen met een c erin (zoals c₁, niet in bovenstaand diagram) zijn gemeten in eeuwen van 100 jaren. De bewerkingen met grotere eenheden staan hoger in het diagram dan die met kleinere eenheden. De dikke lijnen geven het onbeperkte pad aan waarin de waarden onbeperkt groot kunnen worden, zoals het jaartal \( a \) of het lopende dagnummer \( s \). De dunne lijnen zijn voor waarden die maar een beperkte variatie kunnen hebben, zoals het maandnummer in het jaar, of het dagnummer in de maand.
De bewerkingen waarvoor een plus- of minteken tussen de haakjes staat geven de betreffende optelling of aftrekking aan als je van links (kalenderdatum) naar rechts (CJDN) gaat. Dus (+J₀) betekent dan dat je \( J_0 \) erbij telt. Als je van rechts (CJDN) naar links (kalenderdatum) gaat dat doe je juist het omgekeerde, dus dan betekent (+J₀) dat je \( J_0 \) er vanaf trekt.
Voor een bewerking waarvoor een getal zonder plus- of minteken tussen de haakjes staat geeft dat getal het volgnummer van de bewerking aan. Meer details van die bewerking worden dan later gegeven. De meeste van zulke bewerkingen (zoals hier bewerkingen 2 en 3) gaan van één naar twee getallen of omgekeerd, en komen overeen met één kalenderniveau uit het vorige hoofdstuk. En soms is er een bewerking (hier bewerking 1) die twee getallen aanpast, dus van twee getallen naar weer twee getallen gaat. Als het getal tussen ronde haken () staat dan gaat het om een kalenderniveau van type 1 of 2. Als het getal tussen rechte haken [] staat dan gaat het om een kalenderniveau van type 3 of 4.
Laten we kijken naar de maand \( m \). Gaand van links naar rechts komen we eerst bij (−1) dus er wordt 1 vanaf getrokken en dat levert \( m_0 \) op. Die gaat samen met \( a \) in bewerking 1 en dat levert \( a_1 \) (gemeten in jaren) en \( m_1 \) (gemeten in maanden) op. \( m_1 \) gaat naar bewerking 2, samen met \( d_0 \), en levert \( d_1 \) op. Die gaat samen met \( a_1 \) naar bewerking 3 en levert \( s \) op. Daar wordt \( J_0 \) bijgeteld en dan krijgen we het eindresultaat \( J \).
Je kunt het diagram ook van rechts naar links lezen. We beginnen met CJDN \( J \) aan de rechterkant. Gaand naar links komen we eerst bij (+J₀) dus er wordt \( J_0 \) van afgetrokken (omdat we van rechts naar links gaan) en dan vinden we \( s \). Die gaat in bewerking 3 en die levert \( a_1 \) en \( d_1 \) op. Die \( d_1 \) gaat in bewerking 2 en daar komen \( d_0 \) en \( m_1 \) uit. \( m_1 \) gaat samen met \( a_1 \) in bewerking 1 en daar komen \( a \) en \( m_0 \) uit. Dan komen we bij (−1) dus wordt er 1 bij opgeteld (omdat we van rechts naar links gaan) en dan vinden we \( m \).
In onderstaande berekeningen gebruiken we soms tussenresultaten die niet in die diagrammen staan. Die geven we aan met \( α_i \) als ze gemeten zijn in jaren, \( μ_i \) als ze gemeten zijn in maanden, \( δ_i \) als ze gemeten zijn in dagen, en \( ω_i \) als ze gemeten zijn in een andere eenheid. Die namen kunnen voor de tegengestelde kalenderrichtingen voor verschillende zaken gebruikt worden, dus \( α_1 \) in de beschrijving van hoe je van kalenderdatum naar lopende dagnummer gaat kan iets anders betekenen dan \( α_1 \) in de beschrijving van hoe je van lopende dagnummer naar kalenderdatum gaat.
Onderstaande formules zijn op basis van alleen hele getallen. In computerprogramma's ontwijken we daarmee afrondfouten maar moeten we er wel rekening mee houden dat de begin-, tussen- en eindresultaten niet groter mogen zijn dan de grootste waarde die in het voor het computerprogramma gekozen datatype uitgedrukt kan worden, en ook niet kleiner dan de kleinste waarde die uitgedrukt kan worden. Het verschil tussen de grootste en kleinste waarden die uitgedrukt kunnen worden noemen we het bereik. Moderne computers bieden meestal tenminste datatypen van 8, 16, 32 en 64 bits. Als het aantal bits \( n \) is dan is het bereik \( 2^n \). Zie de volgende tabel.
\({n}\) | \({2^n}\) | \({2^n/365.25}\) |
---|---|---|
8 | 256 | 0.70 |
16 | 65 536 | 179 |
32 | 4 294 967 296 | 11.8 × 106 |
64 | 18 446 744 073 709 551 616 | 50.5 × 1015 |
16-bitsgetallen zijn ongeschikt voor kalenderberekeningen, want daarvan is het bereik maar 65 536, dus hooguit zoveel verschillende dagen kunnen dan berekend worden. Dat komt overeen met ongeveer 179 jaar, wat veel te weinig is voor praktisch gebruik. Nog smallere datatypes (zoals 8-bitsgetallen) zijn nog minder geschikt. 32-bitsgetallen zijn wel geschikt, want daarvan is het bereik bijna 4,3 miljard. Zoveel dagen komt overeen met ongeveer 11,8 miljoen jaar. 64-bitsgetallen geven een bereik dat ruim 3 miljoen keer groter is dan hoeveel dagen het Heelal nu oud is.
Veel kalenderberekeningen zijn van het type
\[ y = \dfloorratio{f x + t}{g} \]
met \( f \) en \( g \) groter dan 1. Dan is het tussenresultaat \( f x + t \) vaak veel groter dan \( x \) en \( y \) zijn. En dan is het bereik van \( y \) (het verschil tussen de grootste en kleinste waarden van \( y \) waarvoor de berekeningen kunnen slagen) veel kleiner dan het bereik van het gebruikte datatype. In de praktijk is dit alleen een probleem voor berekening op het onbeperkte pad voor sommige kalenders.
\[ s = \dfloorratio{1461 a}{4} \]
gebaseerd op een kalenderjaar dat gemiddeld 1461/4 = 365¼ dagen lang is. Als \( w \) het bereik van het gebruikte datatype is dan kan het bereik van \( a \) niet groter zijn dan \( w/1461 \), want anders zou het bereik van tussenresultaat \( 1461 a \) groter worden dan \( w \). Daarmee is het bereik van \( s \) hooguit \( (1461/4)×(w/1461) = w/4 \), dus flink minder dan \( w \).
In de meeste gevallen is om zo'n beperking heen te werken en kan de berekening aangepast worden zodat die wiskundig dezelfde resultaten geeft maar het bereik van \( s \) (nagenoeg) gelijk is aan \( w \). De prijs die je betaalt voor die verbetering van het bereik is dat je meer rekenoperaties moet doen. Hoofdstuk 13.4 legt uit hoe je zo'n omweg kunt vinden.
\[ s = 365 a + \dfloorratio{a}{4} \]
Dit levert wiskundig dezelfde resultaten als de eerdere formulering, maar als je de berekeningen doet in de nieuwe volgorde dan is het grootste tussenresultaat niet meer \( 1461 a \) maar \( 365 a \), waarmee het bereik van \( s \) nagenoeg gelijk is aan \( w \).
De eerdere formulering vereist één vermenigvuldiging en één deling. De nieuwe formulering vereist datzelfde met ook nog een optelling. Als \( \dmodp{f}{g} ≠ 1 \) dan is er ook nog een extra vermenigvuldiging nodig, en als \( fg \gt w \) dan komen er nog meer rekenoperaties bij.
Als het bereik van de omrekening tussen datum en lopende dagnummer flink kleiner is dan het bereik van het gebruikte datatype dan geven we dat aan met \( \range{•}{n} \) waar \( • \) het toepasselijk deel van de omrekening aangeeft en \( 1/n \) de fractie is van het bereik van het datatype dat gebruikt kan worden voor het lopende dagnummer.
Zo'n beperking van het bereik geldt voor elk datatype van vaste breedte, niet alleen voor 32-bitsgetallen. Als je de berekeningen zou doen met 64-bitsgetallen dan geldt zo'n beperking ook, maar dan is het bereik nog steeds zo ontzettend veel groter dan voor 32-bitsgetallen dat de beperking niet belangrijk is.
\[ s = \range{\dfloorratio{1461 a}{4}}{4} \]
om aan te geven dat het deel in het vierkant een bereik heeft dat 1/4 maal zo groot is als het bereik van het gebruikte datatype van vast breedte, wat die breedte ook is..
In de Juliaanse kalender volgt op drie gewone jaren van 365 dagen een schrikkeljaar van 366 dagen. Deze periode van vier jaren bevat dus 3×365 + 366 = 1461 dagen. Elke periode van vier jaren heeft dezelfde volgorde van maanden met hun maandlengtes.
Alle maanden hebben 30 of 31 dagen, behalve februari die er 28 of 29 heeft. Die extra-korte maand februari is een beetje een probleem, want die zorgt ervoor dat we te maken hebben met maar liefst vier verschillende maandlengtes. Dat lossen we op door februari te zien als laatste maand van het rekenjaar. Dan wordt maart rekenmaand 0 van het rekenjaar, en is de daaropvolgende februari rekenmaand 11 van datzelfde rekenjaar. We combineren een kalenderniveau tussen maanden en dagen met een kalenderniveau tussen jaren en dagen, en dan maken we met dat tweede kalenderniveau de lengte van het jaar zo dat de laatste rekenmaand (dus februari) toch korter wordt dan 30 dagen.
De berekeningen zijn schematisch zoals in het volgende diagram.
a ━━━━━━━━━━━┓ ┏━ a₁ ━━━━━━━━━━┓ (1) ┃ m ─(−1)─ m₀ ─┘ └─ m₁ ─┐ ┃ d ─(−1)─ d₀ ─────────(2)─ d₁ ─(3)━ s ━(+J₀)━ J
De samenvatting van de kalenderniveau's (zoals in het vorige hoofdstuk) is
(n) | \({f}\) | \({g}\) | \({q}\) | \({h}\) | \({t}\) | \({p}\) |
---|---|---|---|---|---|---|
1 | 12 | 1 | 12 | 0 | 2 | 12 |
2 | 153 | 5 | 30 | 3 | 2 | 30.6 |
3 | 1461 | 4 | 365 | 1 | 0 | 365.25 |
\begin{align} m_0 \| = m − 1 \\ d_0 \| = d − 1 \end{align}
\begin{align} \{ α_1, m_1 \} \| = \Div(m_0 − 2, 12) = \Div(m − 3, 12) \\ a_1 \| = a + α_1 \end{align}
\({a}\) | \({m}\) | \({a_0}\) | \({a_1}\) | \({m_1}\) |
---|---|---|---|---|
0 | 1 | −1 | −1 | 10 |
0 | 2 | −1 | −1 | 11 |
0 | 3 | 0 | 0 | 0 |
0 | 10 | 0 | 0 | 7 |
0 | 11 | 0 | 0 | 8 |
0 | 12 | 0 | 0 | 9 |
1 | 1 | −1 | 0 | 10 |
1 | 2 | −1 | 0 | 11 |
1 | 3 | 0 | 1 | 0 |
\begin{equation} d_1 = \dfloorratio{153 m_1 + 2}{5} + d_0 \end{equation}
Dit is een kalenderniveau van type 2, met \( f = 153, g = 5, q = 30, h = 3, t = 2 \).
\({m}\) | \({d}\) | \({m_1}\) | \({d_0}\) | \({d_1}\) | \({L}\) |
---|---|---|---|---|---|
1 | 1 | 10 | 0 | 306 | 31 |
1 | 2 | 10 | 1 | 307 | |
1 | 31 | 10 | 30 | 336 | |
2 | 1 | 11 | 0 | 337 | ? |
2 | 2 | 11 | 1 | 338 | |
2 | 28 | 11 | 27 | 364 | |
2 | 29 | 11 | 28 | 365 | |
3 | 1 | 0 | 0 | 0 | 31 |
4 | 1 | 1 | 0 | 31 | 30 |
5 | 1 | 2 | 0 | 61 | 31 |
6 | 1 | 3 | 0 | 92 | 30 |
7 | 1 | 4 | 0 | 122 | 31 |
8 | 1 | 5 | 0 | 153 | 31 |
9 | 1 | 6 | 0 | 184 | 30 |
10 | 1 | 7 | 0 | 214 | 31 |
11 | 1 | 8 | 0 | 245 | 30 |
12 | 1 | 9 | 0 | 275 | 31 |
12 | 31 | 9 | 30 | 305 | 30 |
In bovenstaande tabel geeft \( L \) de lengte van de betreffende maand aan. De lengte van de laatste rekenmaand van het jaar (dus februari) is aangegeven als "?" omdat die bepaald wordt door de lengte van het jaar, en die is niet steeds hetzelfde.
\begin{equation} s = \range{\dfloorratio{1461 a_1}{4}}{4} + d_1 = 365 a_1 + \dfloorratio{a_1}{4} + d_1 \label{eq:jul2cdjn1} \end{equation}
Dit is een kalenderniveau van type 2, met \( f = 1461, g = 4, q = 365, h = 1, t = 0 \).
\({a_1}\) | \({s}\) | \({L}\) |
---|---|---|
0 | 0 | 365 |
1 | 365 | 365 |
2 | 730 | 365 |
3 | 1095 | 366 |
4 | 1461 | |
In bovenstaande tabel geeft \( L \) de lengte van het betreffende jaar aan: 3 jaren van 365 dagen elk, gevolgd door een jaar van 366 dagen ― het schrikkelaar. Na die 4 jaren herhaalt de boel zich.
Voor de \( \range{•}{4} \) zie hoofdstuk 13.4. Voor 32-bitsgetallen is het bereik van de daardoor omsloten formule ongeveer 2,9 miljoen jaar.
\begin{equation} J = s + J_0 = s + 1 721 118 \end{equation}
Samengevat:
\begin{align} \{ α_1, m_1 \} \| = \Div(m − 3, 12) \\ a_1 \| = a + α_1 \\ d_1 \| = \dfloorratio{153 m_1 − 3}{5} + d \\ s \| = \range{\dfloorratio{1461 a_1}{4}}{4} + d_1 = 365 a_1 + \dfloorratio{a_1}{4} + d_1 \\ J \| = s + 1 721 118 \end{align}
\begin{align*} \{ α_1, m_1 \} \| = \Div(m − 3, 12) = \Div(7 − 3, 12) = \Div(4, 12) = \{ 0, 4 \} \\ a_1 \| = a + α_1 = 2003 + 0 = 2003 \\ d_1 \| = \dfloorratio{153 m_1 − 3}{5} + d = \dfloorratio{153×4 − 3}{5} + 6 = \dfloorratio{609}{5} + 6 = 121 + 6 = 127 \\ s \| = \dfloorratio{1461 a_1}{4} + d_1 = \dfloorratio{1461×2003}{4} + 127 = 731 595 + 127 = 731 722 \\ s \| = 365 a_1 + \dfloorratio{a_1}{4} + d_1 = 365×2003 + \dfloorratio{2003}{4} + 127 \\ \| = 731 095 + 500 + 127 = 731 722 \\ J \| = 731 722 + 1 721 118 = 2 452 840 \end{align*}
Nog wat meer voorbeelden:
\({a}\) | \({m}\) | \({d}\) | \({α_1}\) | \({m_1}\) | \({a_1}\) | \({d_1}\) | \({s}\) | \({J}\) |
---|---|---|---|---|---|---|---|---|
−4713 | 12 | 31 | 0 | 9 | −4713 | 305 | −1721119 | −1 |
−4712 | 1 | 1 | −1 | 10 | −4713 | 306 | −1721118 | 0 |
−4712 | 1 | 2 | −1 | 10 | −4713 | 307 | −1721117 | 1 |
−1 | 12 | 31 | 0 | 9 | −1 | 305 | −61 | 1721057 |
0 | 1 | 1 | −1 | 10 | −1 | 306 | −60 | 1721058 |
0 | 2 | 28 | −1 | 11 | −1 | 364 | −2 | 1721116 |
0 | 2 | 29 | −1 | 11 | −1 | 365 | −1 | 1721117 |
0 | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 1721118 |
0 | 12 | 31 | 0 | 9 | 0 | 305 | 305 | 1721423 |
1 | 1 | 1 | −1 | 10 | 0 | 306 | 306 | 1721424 |
1582 | 10 | 4 | 0 | 7 | 1582 | 217 | 578042 | 2299160 |
1582 | 10 | 5 | 0 | 7 | 1582 | 218 | 578043 | 2299161 |
1900 | 2 | 28 | −1 | 11 | 1899 | 364 | 693973 | 2415091 |
1900 | 2 | 29 | −1 | 11 | 1899 | 365 | 693974 | 2415092 |
1900 | 3 | 1 | 0 | 0 | 1900 | 0 | 693975 | 2415093 |
1999 | 12 | 31 | 0 | 9 | 1999 | 305 | 730439 | 2451557 |
2000 | 1 | 1 | −1 | 10 | 1999 | 306 | 730440 | 2451558 |
2000 | 2 | 28 | −1 | 11 | 1999 | 364 | 730498 | 2451616 |
2000 | 2 | 29 | −1 | 11 | 1999 | 365 | 730499 | 2451617 |
2000 | 3 | 1 | 0 | 0 | 2000 | 0 | 730500 | 2451618 |
2003 | 7 | 6 | 0 | 4 | 2003 | 127 | 731722 | 2452840 |
Hiervoor doorlopen we de omgekeerde procedure als hierboven.
a ━━━━━━━━━━━┓ ┏━ a₁ ━━━━━━━━━━┓ (1) ┃ m ─(−1)─ m₀ ─┘ └─ m₁ ─┐ ┃ d ─(−1)─ d₀ ─────────(2)─ d₁ ─(3)━ s ━(+J₀)━ J
De samenvatting van de kalenderniveau's (zoals in het vorige hoofdstuk) is
(n) | \({f}\) | \({g}\) | \({q}\) | \({h}\) | \({t}\) | \({p}\) |
---|---|---|---|---|---|---|
1 | 12 | 1 | 12 | 0 | 2 | 12 |
2 | 153 | 5 | 30 | 3 | 2 | 30.6 |
3 | 1461 | 4 | 365 | 1 | 0 | 365.25 |
\begin{equation} s = J − J_0 = J − 1 721 118 \end{equation}
\begin{align} \{ a_1, ω_2 \} \| = \range{\Div(4 s + 3, 1461)}{4} \\ d_1 \| = \dfloorratio{ω_2}{4} \end{align}
Voor de \( \range{•}{4} \) zie hoofdstuk 13.4. Voor 32-bitsgetallen is het bereik van die formule ongever 2,9 miljoen jaar. Als je het maximale bereik wilt hebben dan kun je het volgende alternatief gebruiken:
\begin{align} \{ ω_1, δ_1 \} \| = \Div(s, 1461) \\ \{ α_1, ω_2 \} \| = \Div(4 δ_1 + 3, 1461) \\ a_1 \| = 4 ω_1 + α_1 \\ d_1 \| = \dfloorratio{ω_2}{4} \end{align}
\begin{align} \{ m_1, ω_3 \} \| = \Div(5 d_1 + 2, 153) \\ d_0 \| = \dfloorratio{ω_3}{5} \end{align}
\begin{align} \{ α_2, m_0 \} \| = \Div(m_1 + 2, 12) \\ a \| = a_1 + α_2 \end{align}
\begin{align} m \| = m_0 + 1 \\ d \| = d_0 + 1 = \dfloorratio{ω_3}{5} + 1 \end{align}
Samengevat:
\begin{align} s \| = J − 1 721 118 \\ \{ a_1, ω_2 \} \| = \range{\Div(4 s + 3, 1461)}{4} \\ d_1 \| = \dfloorratio{ω_2}{4} \\ \{ m_1, ω_3 \} \| = \Div(5 d_1 + 2, 153) \\ \{ α_2, m_0 \} \| = \Div(m_1 + 2, 12) \\ a \| = a_1 + α_2 \\ m \| = m_0 + 1 \\ d \| = \dfloorratio{ω_3}{5} + 1 \end{align}
Alternatief met groter bereik voor de berekening van \( \{ a_1, ω_2 \} \):
\begin{align} \{ ω_1, δ_1 \} \| = \Div(s, 1461) \\ \{ α_1, ω_2 \} \| = \Div(4 δ_1 + 3, 1461) \\ a_1 \| = 4 ω_1 + α_1 \end{align}
\begin{align*} s \| = J − J_0 = 2 452 840 − 1 721 118 = 731 722 \\ \{ a_1, ω_2 \} \| = \range{\Div(4 s + 3, 1461)}{4} \\ \| = \Div(4×731 722 + 3, 1461) = \Div(2 926 891, 1461) = \{ 2003, 508 \} \\ d_1 \| = \dfloorratio{ω_2}{4} = \dfloorratio{508}{4} = 127 \\ \{ m_1, ω_3 \} \| = \Div(5d_1 + 2, 153) \\ \| = \Div(5×127 + 2, 153) = \Div(637, 153) = \{4, 25\} \\ \{ α_2, m_0 \} \| = \Div(m_1 + 2, 12) = \Div(4 + 2, 12) = \{ 0, 6 \} \\ a \| = a_1 + α_2 = 2003 − 0 = 2003 \\ m \| = m_0 + 1 = 6 + 1 = 7 \\ d \| = \dfloorratio{ω_3}{5} + 1 = \dfloorratio{25}{5} + 1 = 5 + 1 = 6 \end{align*}
De datum is 6 juli 2003.
Nog wat meer voorbeelden:
\({J}\) | \({s}\) | \({a_1}\) | \({ω_2}\) | \({d_1}\) | \({m_1}\) | \({ω_3}\) | \({α_2}\) | \({m_0}\) | \({a}\) | \({m}\) | \({d}\) |
---|---|---|---|---|---|---|---|---|---|---|---|
−1 | −1721119 | −4713 | 1220 | 305 | 9 | 150 | 0 | 11 | −4713 | 12 | 31 |
0 | −1721118 | −4713 | 1224 | 306 | 10 | 2 | 1 | 0 | −4712 | 1 | 1 |
1 | −1721117 | −4713 | 1228 | 307 | 10 | 7 | 1 | 0 | −4712 | 1 | 2 |
1721057 | −61 | −1 | 1220 | 305 | 9 | 150 | 0 | 11 | −1 | 12 | 31 |
1721058 | −60 | −1 | 1224 | 306 | 10 | 2 | 1 | 0 | 0 | 1 | 1 |
1721116 | −2 | −1 | 1456 | 364 | 11 | 139 | 1 | 1 | 0 | 2 | 28 |
1721117 | −1 | −1 | 1460 | 365 | 11 | 144 | 1 | 1 | 0 | 2 | 29 |
1721118 | 0 | 0 | 3 | 0 | 0 | 2 | 0 | 2 | 0 | 3 | 1 |
1721423 | 305 | 0 | 1223 | 305 | 9 | 150 | 0 | 11 | 0 | 12 | 31 |
1721424 | 306 | 0 | 1227 | 306 | 10 | 2 | 1 | 0 | 1 | 1 | 1 |
2299160 | 578042 | 1582 | 869 | 217 | 7 | 16 | 0 | 9 | 1582 | 10 | 4 |
2299161 | 578043 | 1582 | 873 | 218 | 7 | 21 | 0 | 9 | 1582 | 10 | 5 |
2415091 | 693973 | 1899 | 1456 | 364 | 11 | 139 | 1 | 1 | 1900 | 2 | 28 |
2415092 | 693974 | 1899 | 1460 | 365 | 11 | 144 | 1 | 1 | 1900 | 2 | 29 |
2415093 | 693975 | 1900 | 3 | 0 | 0 | 2 | 0 | 2 | 1900 | 3 | 1 |
2451557 | 730439 | 1999 | 1220 | 305 | 9 | 150 | 0 | 11 | 1999 | 12 | 31 |
2451558 | 730440 | 1999 | 1224 | 306 | 10 | 2 | 1 | 0 | 2000 | 1 | 1 |
2451616 | 730498 | 1999 | 1456 | 364 | 11 | 139 | 1 | 1 | 2000 | 2 | 28 |
2451617 | 730499 | 1999 | 1460 | 365 | 11 | 144 | 1 | 1 | 2000 | 2 | 29 |
2451618 | 730500 | 2000 | 3 | 0 | 0 | 2 | 0 | 2 | 2000 | 3 | 1 |
2452840 | 731722 | 2003 | 508 | 127 | 4 | 25 | 0 | 6 | 2003 | 7 | 6 |
We kunnen ook een getrapte combinatie van kalenders gebruiken; dan hebben we een kalenderniveau nodig dat van een doorlopend maandnummer naar een doorlopend dagnummer gaat, rekening houdend met schrikkeljaren. Dan is er geen hoger kalenderniveau meer dat een te lange laatste maand afkapt, dus moeten de formules ook gelden voor hele grote doorlopende maandnummers.
De berekeningen zijn schematisch als volgt:
a ━━━━━━━━━━━━┓ m ─(−1)─ m₀ ─(1)━ m₁ ━┓ d ─(−1)─ d₀ ─────────[2]━ s ━(+J₀)━ J
De samenvatting van de kalenderniveau's is
(n) | \({f}\) | \({g}\) | \({q}\) | \({r_i}\) | \({h_i}\) | \({t_i}\) | \({g_i}\) | \({γ_i}\) | \({p}\) |
---|---|---|---|---|---|---|---|---|---|
1 | 12 | 1 | 12 | 0 | 0 | 12 | |||
2.1 | 1461 | 48 | 30 | 1 | 7 | 5 | 12 | 4 | 30.4375 |
2.2 | −2 | 1 | 10 | 12 | 4 | ||||
2.3 | 1 | 1 | 46 | 48 | 1 |
\begin{align} m_0 \| = m − 1 \\ d_0 \| = d − 1 \end{align}
\begin{equation} m_1 = 12 a + m_0 = 12 a + m − 1 \end{equation}
Dit is een kalenderniveau van type 2, met \( f = 12, g = 0, q = 12, h = 0, t = 0 \). Omdat \( t = 0 \) is het ook een kalenderniveau van type 1.
With \( u = 0 \) we get the values
\({m_1}\) | \({\dfloorratio{7m_1}{12}}\) | \({\D}\) |
---|---|---|
0 | 0 | 0 |
1 | 0 | 1 |
2 | 1 | 0 |
3 | 1 | 1 |
4 | 2 | 0 |
5 | 2 | 1 |
6 | 3 | 1 |
7 | 4 | 0 |
8 | 4 | 1 |
9 | 5 | 0 |
10 | 5 | 1 |
11 | 6 | 1 |
12 | 7 | |
Elke keer dat die waarde eentje groter wordt was de maand daarvoor een lange maand, dus deze waarden betekenen dat de afwisseling tussen korte (K) en lange (L) maanden was: K L K L K L L K L K L L, maar wij zoeken L K L K L K L L K L K L, want juli en augustus (de 7e en 8e maanden) zijn allebei lang. Dat krijgen we als we het patroon verschuiven over −1 maand (eentje naar links), dus \( u = −1 \). Dan is \( t = \dmodp{fu}{g} = \dmodp{−7}{12} = 5 \), dus vinden we \( \dfloor{(7m_1 + 5)/12} \).
Dan zijn alle maanden goed, behalve februari (\( m_1 = 1 \)) want die krijgt dan 30 dagen maar moet er 28 hebben in een gewoon jaar of 29 in een schrikkeljaar. We trekken 2 dagen af van elke februari met de formule \( −2\dfloor{(m_1 + 10)/12} \). We tellen er in het eerste van elke vier jaar weer 1 dag bij met de formule \( \dfloor{(x_2 + 46)}{48} \). Al met al vinden we
\begin{align} s \| = 30 m_1 + \dfloorratio{7 m_1 + 5}{12} − 2\dfloorratio{m_1 + 10}{12} + \dfloorratio{m_1 + 46}{48} + d_0 \\ \| = 30 m_1 + \dfloorratio{7 m_1 + 5}{12} − 2\dfloorratio{m_1 + 10}{12} + \dfloorratio{m_1 + 46}{48} + d − 1 \notag \\ \| = 30 m_1 + \dfloorratio{7 m_1 − 7}{12} − 2\dfloorratio{m_1 + 10}{12} + \dfloorratio{m_1 + 46}{48} + d \end{align}
Dit is kalendertype 4 met
\( q = 30 \), \( g = 48 \), \( \{ r_1, h_1, t_1, g_1 \} = \{ 1, 7, 5, 12 \} \), \( \{r_2, h_2, t_2, g_2 \} = \{ −2, 1, 10, 12 \} \), \( \{ r_3, h_3, t_3, g_3 \} = \{ 1, 1, 46, 48\} \).
\begin{equation} J = s + J_0 = s + 1 721 058 \end{equation}
Samengevat:
\begin{align} m_1 \| = 12 a + m − 1 \\ s \| = 30 m_1 + \dfloorratio{7 m_1 − 7}{12} − 2\dfloorratio{m_1 + 10}{12} + \dfloorratio{m_1 + 46}{48} + d \\ J \| = s + 1 721 058 \end{align}
\begin{align*} m_1 \| = 12 a + m − 1 = 12×2003 + 7 − 1 = 24042 \\ s \| = 30 m_1 + \dfloorratio{7 m_1 − 7}{12} − 2\dfloorratio{m_1 + 10}{12} + \dfloorratio{m_1 + 46}{48} + d \\ \| = 30×24042 + \dfloorratio{7×24042 − 7}{12} − 2\dfloorratio{24042 + 10}{12} + \dfloorratio{24042 + 46}{48} + 6 \\ \| = 721 260 + \dfloorratio{168287}{12} − 2\dfloorratio{24052}{12} + \dfloorratio{24088}{48} + 6 \\ \| = 721 260 + 14023 − 2×2004 + 501 + 6 = 731 782 \\ J \| = s + 1 721 058 = 731 782 + 1 721 058 = 2 452 840 \end{align*}
Nog wat meer voorbeelden:
\({a}\) | \({m}\) | \({d}\) | \({m_0}\) | \({d_0}\) | \({m_1}\) | \({\dfloorratio{7m_1+5}{12}}\) | \({\dfloorratio{m_1+10}{12}}\) | \({\dfloorratio{m_1+46}{48}}\) | \({s}\) | \({J}\) |
---|---|---|---|---|---|---|---|---|---|---|
−4713 | 12 | 31 | 11 | 30 | −56545 | −32985 | −4712 | −1178 | −1721059 | −1 |
−4712 | 1 | 1 | 0 | 0 | −56544 | −32984 | −4712 | −1178 | −1721058 | 0 |
−4712 | 1 | 2 | 0 | 1 | −56544 | −32984 | −4712 | −1178 | −1721057 | 1 |
−1 | 12 | 31 | 11 | 30 | −1 | −1 | 0 | 0 | −1 | 1721057 |
0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1721058 |
0 | 2 | 28 | 1 | 27 | 1 | 1 | 0 | 0 | 58 | 1721116 |
0 | 2 | 29 | 1 | 28 | 1 | 1 | 0 | 0 | 59 | 1721117 |
0 | 3 | 1 | 2 | 0 | 2 | 1 | 1 | 1 | 60 | 1721118 |
0 | 12 | 31 | 11 | 30 | 11 | 6 | 1 | 1 | 365 | 1721423 |
1 | 1 | 1 | 0 | 0 | 12 | 7 | 1 | 1 | 366 | 1721424 |
1582 | 10 | 4 | 9 | 3 | 18993 | 11079 | 1583 | 396 | 578102 | 2299160 |
1582 | 10 | 5 | 9 | 4 | 18993 | 11079 | 1583 | 396 | 578103 | 2299161 |
1999 | 12 | 31 | 11 | 30 | 23999 | 13999 | 2000 | 500 | 730499 | 2451557 |
1900 | 2 | 28 | 1 | 27 | 22801 | 13301 | 1900 | 475 | 694033 | 2415091 |
1900 | 2 | 29 | 1 | 28 | 22801 | 13301 | 1900 | 475 | 694034 | 2415092 |
1900 | 3 | 1 | 2 | 0 | 22802 | 13301 | 1901 | 476 | 694035 | 2415093 |
2000 | 1 | 1 | 0 | 0 | 24000 | 14000 | 2000 | 500 | 730500 | 2451558 |
2000 | 2 | 28 | 1 | 27 | 24001 | 14001 | 2000 | 500 | 730558 | 2451616 |
2000 | 2 | 29 | 1 | 28 | 24001 | 14001 | 2000 | 500 | 730559 | 2451617 |
2000 | 3 | 1 | 2 | 0 | 24002 | 14001 | 2001 | 501 | 730560 | 2451618 |
2003 | 7 | 6 | 6 | 5 | 24042 | 14024 | 2004 | 501 | 731782 | 2452840 |
De berekeningen zijn schematisch als volgt:
a ━━━━━━━━━━━━┓ m ─(−1)─ m₀ ─(1)━ m₁ ━┓ d ─(−1)─ d₀ ─────────[2]━ s ━(+J₀)━ J
De samenvatting van de kalenderniveau's is
(n) | \({f}\) | \({g}\) | \({q}\) | \({r_i}\) | \({h_i}\) | \({t_i}\) | \({g_i}\) | \({γ_i}\) | \({p}\) |
---|---|---|---|---|---|---|---|---|---|
1 | 12 | 1 | 12 | 0 | 0 | 12 | |||
2.1 | 1461 | 48 | 30 | 1 | 7 | 5 | 12 | 4 | 30.4375 |
2.2 | −2 | 1 | 10 | 12 | 4 | ||||
2.3 | 1 | 1 | 46 | 48 | 1 |
Hiervoor doorlopen we dezelfde procedure als hierboven, maar in de omgekeerde richting.
\begin{equation} s = J − J_0 = J − 1 721 058 \end{equation}
We hebben
\begin{align} μ_2 \| = \dfloorratio{gs + g\dparen{\sum_{r_i \gt 0} r_i} − \dparen{\sum_i γ_i r_i t_i} − 1}{f} \notag \\ \| = \dfloorratio{48 s + 48×2 − (4×1×5 + 4×−2×10 + 1×1×46) − 1}{1461} \notag \\ \| = \range{\dfloorratio{48 s + 109}{1461}}{48} \\ δ_2 \| = s − 30 μ_2 − \dfloorratio{7 μ_2 + 5}{12} + 2\dfloorratio{μ_2 + 10}{12} − \dfloorratio{μ_2 + 46}{48} \end{align}
Voor de \( \range{•}{48} \) zie hoofdstuk 13.4. Voor 32-bitsgetallen is het bereik van die formule ongeveer 245 duizend jaar. Als je het maximale bereik wilt hebben dan kun je het volgende alternatief gebruiken:
\begin{eqnarray} \{ ω_1, δ_1 \} \| = \| \Div(s, 1461) \\ μ_1 \| = \| \dfloorratio{48 δ_1 + 109}{1461} \\ μ_2 \| = \| 48 ω_1 + μ_1 \end{eqnarray}
\({s}\) | \({ω_1}\) | \({δ_1}\) | \({μ_1}\) | \({μ_2}\) | \({48s+109}\) |
---|---|---|---|---|---|
−3 | −1 | 1458 | 47 | −1 | −35 |
−1 | −1 | 1460 | 48 | 0 | 61 |
0 | 0 | 0 | 0 | 0 | 109 |
1 | 0 | 1 | 0 | 0 | 157 |
28 | 0 | 28 | 0 | 0 | 1453 |
29 | 0 | 29 | 1 | 1 | 1501 |
393 | 0 | 393 | 12 | 12 | 18973 |
394 | 0 | 394 | 13 | 13 | 19021 |
1460 | 0 | 1460 | 48 | 48 | 70189 |
1461 | 1 | 0 | 0 | 48 | 70237 |
730484 | 499 | 1445 | 47 | 23999 | 35063341 |
731782 | 500 | 1282 | 42 | 24042 | 35125645 |
50000000 | 34223 | 197 | 6 | 1642710 | 2400000109 |
Voor \( s = 50 000 000 \) geeft de orignele berekening het tussenresultaat \( 48 s + 109 = 2 400 000 109 \) dat te groot is om in een 32-bitsgetal (met teken) te passen, maar met de omweg is het grootste (tussen)resultaat meteen ook het eindresultaat 1 642 710 dat ruim klein genoeg is om in een 32-bitsgetal te passen.
Omdat \( ρ ≤ 0 \) mogen we de procedure met het vaste aantal stappen gebruiken. Dan
\begin{align} m_1 \| = μ_2 + \dfloorratio{δ_2}{32} \\ d_0 \| = s − 30 m_1 − \dfloorratio{7 m_1 + 5}{12} + 2\dfloorratio{m_1 + 10}{12} − \dfloorratio{m_1 + 46}{48} \end{align}
\begin{equation} \{ a, m_0 \} = \Div(m_1, 12) \end{equation}
\begin{align} m \| = m_0 + 1 \\ d \| = d_0 + 1 \end{align}
Samengevat:
\begin{align} s \| = J − 1 721 058 \\ μ_2 \| = \range{\dfloorratio{48 s + 109}{1461}}{48} \\ δ_2 \| = s − 30 μ_2 − \dfloorratio{7 μ_2 + 5}{12} + 2\dfloorratio{μ_2 + 10}{12} − \dfloorratio{μ_2 + 46}{48} \\ m_1 \| = μ_2 + \dfloorratio{δ_2}{32} \\ d \| = s − 30 m_1 − \dfloorratio{7 m_1 + 17}{12} + 2\dfloorratio{m_1 + 10}{12} − \dfloorratio{m_1 + 46}{48} \\ \{ a, m_0 \} \| = \Div(m_1, 12) \\ m \| = m_0 + 1 \\ d \| = d_0 + 1 \end{align}
Alternatief met een groter bereik voor de berekening van \( μ_2 \):
\begin{align} \{ ω_1, δ_1 \} \| = \Div(s, 1461) \\ μ_1 \| = \dfloorratio{48 δ_1 + 109}{1461} \\ μ_2 \| = 48 ω_1 + μ_1 \end{align}
\begin{align*} s \| = J − 1 721 058 = 2 452 840 - 1 721 058 = 731 782 \\ μ_2 \| = \range{\dfloorratio{48 s + 109}{1461}}{48} = \dfloorratio{48×731 782 + 109}{1461} \\ \| = \dfloorratio{35 125 645}{1461} = 24042 \\ δ_2 \| = s − 30 μ_2 − \dfloorratio{7 μ_2 + 5}{12} + 2\dfloorratio{μ_2 + 10}{12} − \dfloorratio{μ_2 + 46}{48} \\ \| = 731 782 − 30×24042 − \dfloorratio{7×24042 + 5}{12} + 2\dfloorratio{24042 + 10}{12} − \dfloorratio{24042 + 46}{48} \\ \| = 731 782 − 721 260 − \dfloorratio{168 299}{12} + 2\dfloorratio{24052}{12} − \dfloorratio{24088}{48} \\ \| = 731 782 − 721 260 − 14024 + 2×2004 − 501 = 5 \\ m_1 \| = μ_2 + \dfloorratio{δ_2}{32} = 24042 + \dfloorratio{5}{32} = 24042 \\ d_0 \| = s − 30 m_1 − \dfloorratio{7 m_1 + 5}{12} + 2\dfloorratio{m_1 + 10}{12} − \dfloorratio{m_1 + 46}{48} = 5 \\ \{ a, m_0 \} \| = \Div(m_1, 12) = \Div(24042, 12) = \{ 2003, 6 \} \\ m \| = m_0 + 1 = 6 + 1 = 7 \\ d \| = d_0 + 1 = 5 + 1 = 6 \end{align*}
dus de datum is 6 juli 2003.
Nog wat meer voorbeelden:
\({J}\) | \({s}\) | \({μ_2}\) | \({δ_2}\) | \({m_1}\) | \({d_0}\) | \({m_0}\) | \({a}\) | \({m}\) | \({d}\) |
---|---|---|---|---|---|---|---|---|---|
−1 | −1721059 | −56544 | −1 | −56545 | 30 | 11 | −4713 | 12 | 31 |
0 | −1721058 | −56544 | 0 | −56544 | 0 | 0 | −4712 | 1 | 1 |
1 | −1721057 | −56544 | 1 | −56544 | 1 | 0 | −4712 | 1 | 2 |
1721057 | −1 | 0 | −1 | −1 | 30 | 11 | −1 | 12 | 31 |
1721058 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 |
1721116 | 58 | 1 | 27 | 1 | 27 | 1 | 0 | 2 | 28 |
1721117 | 59 | 2 | −1 | 1 | 28 | 1 | 0 | 2 | 29 |
1721118 | 60 | 2 | 0 | 2 | 0 | 2 | 0 | 3 | 1 |
1721423 | 365 | 12 | −1 | 11 | 30 | 11 | 0 | 12 | 31 |
1721424 | 366 | 12 | 0 | 12 | 0 | 0 | 1 | 1 | 1 |
2299160 | 578102 | 18993 | 3 | 18993 | 3 | 9 | 1582 | 10 | 4 |
2299161 | 578103 | 18993 | 4 | 18993 | 4 | 9 | 1582 | 10 | 5 |
2415091 | 694033 | 22801 | 27 | 22801 | 27 | 1 | 1900 | 2 | 28 |
2415092 | 694034 | 22802 | −1 | 22801 | 28 | 1 | 1900 | 2 | 29 |
2415093 | 694035 | 22802 | 0 | 22802 | 0 | 2 | 1900 | 3 | 1 |
2451557 | 730499 | 24000 | −1 | 23999 | 30 | 11 | 1999 | 12 | 31 |
2451558 | 730500 | 24000 | 0 | 24000 | 0 | 0 | 2000 | 1 | 1 |
2451616 | 730558 | 24001 | 27 | 24001 | 27 | 1 | 2000 | 2 | 28 |
2451617 | 730559 | 24002 | −1 | 24001 | 28 | 1 | 2000 | 2 | 29 |
2451618 | 730560 | 24002 | 0 | 24002 | 0 | 2 | 2000 | 3 | 1 |
2452840 | 731782 | 24042 | 5 | 24042 | 5 | 6 | 2003 | 7 | 6 |
De Gregoriaanse kalender is gelijk aan de Juliaanse kalender, behalve in de regels wanneer februari 29 dagen heeft in plaats van 28. In de Juliaanse kalender heeft februari elk vierde jaar 29 dagen, als het jaartal deelbaar is door 4. In de Gregoriaanse kalender geldt dezelfde regel, behalve dat februari toch 28 dagen heeft als het jaartal deelbaar is door 100, behalve als het jaartal deelbaar is door 400, want dan heeft februari toch weer 29 dagen.
Om Gregoriaanse jaren met een enkele rechte lijn met een enkel patroon te benaderen moeten de schrikkelwaarden terugkomen na elke \( ⌊Q⌋ \) of \( ⌈Q⌉ \) perioden (voor een gunstige \( Q \); zie vergelijking \eqref{eq:Q}). Helaas passen de schrikkelregels van de Gregoriaanse kalender daar niet bij, want die zeggen dat de tijd tussen twee schrikkeljaren soms 4 jaar is en soms 8 jaar.
De volgende \( p \) zouden in aanmerking kunnen komen:
We kunnen nu met de 146 097/4-lijn de perioden van 100 jaar vinden, en dan met de 36525/100-lijn de jaren in de 100-jaarperiode, en dan (net als voor de Juliaanse kalender) met de 153/5-lijn de maanden. 1 maart van het jaar 0 in de Gregoriaanse kalender komt overeen met \( J_0 = 1 721 120 \). De berekeningen zijn zoals getoond in het volgende diagram:
┏━━ c₁ ━━━━━━━━━━┓ a ━━━━━━━━━━━┐ ┌━ a₁ ━(2)─ a₂ ─┐ ┃ (1) │ ┃ m ─(−1)─ m₀ ─┘ └─ m₁ ─┐ │ ┃ d ─(−1)─ d₀ ─────────(3)─ d₁ ─(4)─ d₂ ─(5)━ s ━(+J₀)━ J
De samenvatting van de kalenderniveau's is
(n) | \({f}\) | \({g}\) | \({q}\) | \({h}\) | \({t}\) | \({p}\) |
---|---|---|---|---|---|---|
1 | 12 | 1 | 12 | 0 | 2 | 12 |
2 | 100 | 1 | 100 | 0 | 0 | 100 |
3 | 153 | 5 | 30 | 3 | 2 | 30.6 |
4 | 36525 | 100 | 365 | 25 | 0 | 365.25 |
5 | 146 097 | 4 | 36524 | 1 | 0 | 36524.25 |
De stappen zijn nu als volgt, van de Gregoriaanse kalender naar het CJDN:
\begin{align} m_0 \| = m − 1 \\ d_0 \| = d − 1 \end{align}
\begin{align} \{ α_1, m_1 \} \| = \Div(m_0 − 2, 12) = \Div(m − 3, 12) \\ a_1 \| = a + α_1 \end{align}
\begin{equation} \{ c_1, a_2 \} = \Div(a_1, 100) \end{equation}
\begin{align} d_1 \| = \dfloorratio{153 m_1 + 2}{5} + d_0 \\ \| = \dfloorratio{153 m_1 + 2}{5} + d − 1 \notag \\ \| = \dfloorratio{153 m_1 − 3}{5} + d \end{align}
\begin{equation} d_2 = \dfloorratio{36525 a_2}{100} + d_1 \end{equation}
\begin{equation} s = \range{\dfloorratio{146 097 c_1}{4}}{4} + d_2 = 36524 c_1 + \dfloorratio{c_1}{4} + d_2 \end{equation}
Voor de \( \range{•}{4} \) zie hoofdstuk 13.4. Voor 32-bitsgetallen is het bereik van die formule ongeveer 2,9 miljoen jaar.
\begin{equation} J = s + J_0 = s + 1 721 120 \end{equation}
Samengevat:
\begin{align} \{ α_1, m_1 \} \| = \Div(m − 3, 12) \\ a_1 \| = a + α_1 \\ \{ c_1, a_2 \} \| = \Div(a_1, 100) \\ d_1 \| = \dfloorratio{153 m_1 − 3}{5} + d \\ d_2 \| = \dfloorratio{36525 a_2}{100} + d_1 \\ s \| = \range{\dfloorratio{146 097 c_1}{4}}{4} + d_2 = 36524 c_1 + \dfloorratio{c_1}{4} + d_2 \\ J \| = s + 1 721 120 \end{align}
\begin{align*} \{ α_1, m_1 \} \| = \Div(m − 3, 12) = \Div(7 − 3, 12) = \Div(4, 12) = \{ 0, 4 \} \\ a_1 \| = a + α_1 = 2003 + 0 = 2003 \\ \{ c_1, a_2 \} \| = \Div(a_1, 100) = \Div(2003, 100) = \{ 20, 3 \} \\ d_1 \| = \dfloorratio{153 m_1 − 3}{5} + d = \dfloorratio{153×4 − 3}{5} + 6 \\ \| = \dfloorratio{609}{5} + 6 = 121 + 6 = 127 \\ d_2 \| = \dfloorratio{36525 a_2}{100} + d_1 = \dfloorratio{36525×3}{100} + 127 \\ \| = \dfloorratio{109 575}{100} + 127 = 1095 + 127 = 1222 \\ s \| = \range{\dfloorratio{146 097 c_1}{4}}{4} + d_2 = \dfloorratio{146 097×20}{4} + 1222 \\ \| = \dfloorratio{2 921 940}{4} + 1222 = 730 485 + 1222 = 731 707 \\ J \| = s + 1 721 120 = 731 707 + 1 721 120 = 2 452 827 \end{align*}
Nog wat meer voorbeelden:
\({a}\) | \({m}\) | \({d}\) | \({α_1}\) | \({m_1}\) | \({a_1}\) | \({c_1}\) | \({a_2}\) | \({d_1}\) | \({d_2}\) | \({s}\) | \({J}\) |
---|---|---|---|---|---|---|---|---|---|---|---|
−4713 | 11 | 23 | 0 | 8 | −4713 | −48 | 87 | 359 | 32135 | −1721029 | 91 |
−4713 | 11 | 24 | 0 | 8 | −4713 | −48 | 87 | 360 | 32136 | −1721028 | 92 |
−4713 | 11 | 25 | 0 | 8 | −4713 | −48 | 87 | 361 | 32137 | −1721027 | 93 |
−1 | 12 | 31 | 0 | 9 | −1 | −1 | 99 | 397 | 36556 | 31 | 1721151 |
0 | 1 | 1 | −1 | 10 | −1 | −1 | 99 | 31 | 36190 | −335 | 1720785 |
0 | 2 | 28 | −1 | 11 | −1 | −1 | 99 | 88 | 36247 | −278 | 1720842 |
0 | 2 | 29 | −1 | 11 | −1 | −1 | 99 | 89 | 36248 | −277 | 1720843 |
0 | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 92 | 92 | 92 | 1721212 |
0 | 12 | 31 | 0 | 9 | 0 | 0 | 0 | 397 | 397 | 397 | 1721517 |
1 | 1 | 1 | −1 | 10 | 0 | 0 | 0 | 31 | 31 | 31 | 1721151 |
1582 | 10 | 14 | 0 | 7 | 1582 | 15 | 82 | 319 | 30269 | 578132 | 2299252 |
1582 | 10 | 15 | 0 | 7 | 1582 | 15 | 82 | 320 | 30270 | 578133 | 2299253 |
1600 | 2 | 28 | −1 | 11 | 1599 | 15 | 99 | 88 | 36247 | 584110 | 2305230 |
1600 | 2 | 29 | −1 | 11 | 1599 | 15 | 99 | 89 | 36248 | 584111 | 2305231 |
1600 | 3 | 1 | 0 | 0 | 1600 | 16 | 0 | 92 | 92 | 584480 | 2305600 |
1900 | 2 | 28 | −1 | 11 | 1899 | 18 | 99 | 88 | 36247 | 693683 | 2414803 |
1900 | 3 | 1 | 0 | 0 | 1900 | 19 | 0 | 92 | 92 | 694052 | 2415172 |
1999 | 12 | 31 | 0 | 9 | 1999 | 19 | 99 | 397 | 36556 | 730516 | 2451636 |
2000 | 1 | 1 | −1 | 10 | 1999 | 19 | 99 | 31 | 36190 | 730150 | 2451270 |
2000 | 2 | 28 | −1 | 11 | 1999 | 19 | 99 | 88 | 36247 | 730207 | 2451327 |
2000 | 2 | 29 | −1 | 11 | 1999 | 19 | 99 | 89 | 36248 | 730208 | 2451328 |
2000 | 3 | 1 | 0 | 0 | 2000 | 20 | 0 | 92 | 92 | 730577 | 2451697 |
2003 | 7 | 6 | 0 | 4 | 2003 | 20 | 3 | 219 | 1314 | 731799 | 2452919 |
2800 | 2 | 28 | −1 | 11 | 2799 | 27 | 99 | 88 | 36247 | 1022401 | 2743521 |
2800 | 2 | 29 | −1 | 11 | 2799 | 27 | 99 | 89 | 36248 | 1022402 | 2743522 |
2800 | 3 | 1 | 0 | 0 | 2800 | 28 | 0 | 92 | 92 | 1022771 | 2743891 |
Merk op dat het jaar 1900 wel een schrikkeljaar was in de Juliaanse kalender (hoofdstuk 14.2) maar niet in de Gregoriaanse kalender.
Merk op dat het jaar 1600 wel een schrikkeljaar was in de Gregoriaanse kalender maar niet in de Milanković-kalender (hoofdstuk 14.4). En dat het jaar 2900 wel een schrikkeljaar is in de Milanković-kalender maar niet in de Gregoriaanse kalender.
Nu gaan we weer de andere kant op, met dezelfde kalenderniveaus als hierboven.
┏━━ c₁ ━━━━━━━━━━┓ a ━━━━━━━━━━━┐ ┌━ a₁ ━(2)─ a₂ ─┐ ┃ (1) │ ┃ m ─(−1)─ m₀ ─┘ └─ m₁ ─┐ │ ┃ d ─(−1)─ d₀ ─────────(3)─ d₁ ─(4)─ d₂ ─(5)━ s ━(+J₀)━ J
De samenvatting van de kalenderniveau's is
(n) | \({f}\) | \({g}\) | \({q}\) | \({h}\) | \({t}\) | \({p}\) |
---|---|---|---|---|---|---|
1 | 12 | 1 | 12 | 0 | 2 | 12 |
2 | 100 | 1 | 100 | 0 | 0 | 100 |
3 | 153 | 5 | 30 | 3 | 2 | 30.6 |
4 | 36525 | 100 | 365 | 25 | 0 | 365.25 |
5 | 146 097 | 4 | 36524 | 1 | 0 | 36524.25 |
\begin{equation} s = J − J_0 = J − 1 721 120 \end{equation}
\begin{align} \{ c_1, ω_3 \} \| = \range{\Div(4 s + 3, 146 097)}{4} \\ d_2 \| = \dfloorratio{ω_3}{4} \end{align}
Voor de \( \range{•}{4} \) zie hoofdstuk 13.4. Voor 32-bitsgetallen is het bereik van die formule ongeveer 2,9 milioen jaar. Als je het maximale bereik wilt hebben dan kun je het volgende alternatief gebruiken:
\begin{eqnarray} \{ ω_1, δ_1 \} \| = \| \Div(s, 146097) \\ \{ ω_2, ω_3 \} \| = \| \Div(4 δ_1 + 3, 146097) \\ c_1 \| = \| 4 ω_1 + ω_2 \\ d_2 \| = \| \dfloorratio{ω_3}{4} \end{eqnarray}
\({s}\) | \({ω_1}\) | \({δ_1}\) | \({ω_2}\) | \({ω_3}\) | \({c_1}\) | \({4 s + 3}\) |
---|---|---|---|---|---|---|
−1 | −1 | 146096 | 3 | 146096 | −1 | −1 |
0 | 0 | 0 | 0 | 3 | 0 | 3 |
1 | 0 | 1 | 0 | 7 | 0 | 7 |
146096 | 0 | 146096 | 3 | 146096 | 3 | 584387 |
146097 | 1 | 0 | 0 | 3 | 4 | 584391 |
146098 | 1 | 1 | 0 | 7 | 4 | 584395 |
730484 | 4 | 146096 | 3 | 146096 | 19 | 2921939 |
730485 | 5 | 0 | 0 | 3 | 20 | 2921943 |
550055204 | 3764 | 146096 | 3 | 146096 | 15059 | 2200220819 |
Voor \( s = 550 055 204 \) geeft de orignele berekening het tussenresultaat \( 4×550 055 204 + 3 = 2 200 220 819 \) dat te groot is om in een 32-bitsgetal (met teken) te passen, maar met de omweg is het grootste (tussen)resultaat meteen ook het eindresultaat 146_096 dat ruim klein genoeg is om in een 32-bitsgetal te passen.
\begin{align} \{ a_2, ω_4 \} \| = \Div(100 d_2 + 99, 36525) \\ d_1 \| = \dfloorratio{ω_4}{100} \end{align}
\begin{align} \{ m_1, ω_5 \} \| = \Div(5 d_1 + 2, 153) \\ d_0 \| = \dfloorratio{ω_5}{5} \end{align}
Berekening 2 voegt het rekeneeuwnummer \( c_1 \) en het rekenjaarnummer \( a_2 \) sinds het begin van de rekeneeuw samen tot het rekenjaarnummer \( a_1 \).
\begin{equation} a_1 = 100 c_1 + a_2 \end{equation}
\begin{align} \{ α_1, m_0 \} \| = \Div(m_1 + 2, 12) \\ a \| = a_1 + α_1 \end{align}
\begin{align} m \| = m_0 + 1 \\ d \| = d_0 + 1 = \dfloorratio{ω_5}{5} + 1 \end{align}
Samengevat:
\begin{align} s \| = J − 1 721 120 \\ \{ c_1, ω_3 \} \| = \range{\Div(4 s + 3, 146 097)}{4} \\ d_2 \| = \dfloorratio{ω_3}{4} \\ \{ a_2, ω_4 \} \| = \Div(100 d_2 + 99, 36525) \\ d_1 \| = \dfloorratio{ω_4}{100} \\ \{ m_1, ω_5 \} \| = \Div(5 d_1 + 2, 153) \\ a_1 \| = 100 c_1 + a_2 \\ \{ α_1, m_0 \} \| = \Div(m_1 + 2, 12) \\ a \| = a_1 + α_1 \\ m \| = m_0 + 1 \\ d \| = \dfloorratio{ω_5}{5} + 1 \end{align}
Alternatief met groter bereik voor \( \{ c_1, ω_3 \} \):
\begin{align} \{ ω_1, δ_1 \} \| = \Div(s, 146097) \\ \{ ω_2, ω_3 \} \| = \Div(4 δ_1 + 3, 146097) \\ c_1 \| = 4 ω_1 + ω_2 \end{align}
\begin{align*} s \| = J − 1 721 120 = 2 452 827 − 1 721 120 = 731 707 \\ \{ c_1, ω_3 \} \| = \range{\Div(4 s + 3, 146 097)}{4} = \Div(4×731 707 + 3, 146 097) \\ \| = \Div(2 926 831, 146 097) = \{ 20, 4891 \} \\ d_2 \| = \dfloorratio{ω_3}{4} = \dfloorratio{4891}{4} = 1222 \\ \{ a_2, ω_4 \} \| = \Div(100 d_2 + 99, 36525) = \Div(100×1222 + 99, 36525) \\ \| = \Div(122 299, 36525) = \{ 3, 12724 \} \\ d_1 \| = \dfloorratio{ω_4}{100} = \dfloorratio{12724}{100} = 127 \\ \{ m_1, ω_5 \} \| = \Div(5 d_1 + 2, 153) = \Div(5×127 + 2, 153) \\ \| = \Div(637, 153) = \{ 4, 25 \} \\ a_1 \| = 100 c_1 + a_2 = 100×20 + 3 = 2003 \\ \{ α_1, m_0 \} \| = \Div(m_1 + 2, 12) = \Div(4 + 2, 12) = \Div(6, 12) = \{ 0, 6 \} \\ a \| = a_1 + α_1 = 2003 + 0 = 2003 \\ m \| = m_0 + 1 = 6 + 1 = 7 \\ d \| = \dfloorratio{ω_5}{5} + 1 = \dfloorratio{25}{5} + 1 = 5 + 1 = 6 \end{align*}
De datum is 6 juli 2003.
Wat meer voorbeelden:
\({J}\) | \({s}\) | \({c_1}\) | \({ω_3}\) | \({d_2}\) | \({a_2}\) | \({ω_4}\) | \({d_1}\) | \({m_1}\) | \({ω_5}\) | \({a_1}\) | \({α_1}\) | \({m_0}\) | \({a}\) | \({m}\) | \({d}\) |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
−1 | −1721121 | −48 | 128175 | 32043 | 87 | 26724 | 267 | 8 | 113 | −4713 | 0 | 10 | −4713 | 11 | 23 |
0 | −1721120 | −48 | 128179 | 32044 | 87 | 26824 | 268 | 8 | 118 | −4713 | 0 | 10 | −4713 | 11 | 24 |
1 | −1721119 | −48 | 128183 | 32045 | 87 | 26924 | 269 | 8 | 123 | −4713 | 0 | 10 | −4713 | 11 | 25 |
1721059 | −61 | −1 | 145856 | 36464 | 99 | 30524 | 305 | 9 | 150 | −1 | 0 | 11 | −1 | 12 | 31 |
1721060 | −60 | −1 | 145860 | 36465 | 99 | 30624 | 306 | 10 | 2 | −1 | 1 | 0 | 0 | 1 | 1 |
1721118 | −2 | −1 | 146092 | 36523 | 99 | 36424 | 364 | 11 | 139 | −1 | 1 | 1 | 0 | 2 | 28 |
1721119 | −1 | −1 | 146096 | 36524 | 99 | 36524 | 365 | 11 | 144 | −1 | 1 | 1 | 0 | 2 | 29 |
1721120 | 0 | 0 | 3 | 0 | 0 | 99 | 0 | 0 | 2 | 0 | 0 | 2 | 0 | 3 | 1 |
1721425 | 305 | 0 | 1223 | 305 | 0 | 30599 | 305 | 9 | 150 | 0 | 0 | 11 | 0 | 12 | 31 |
1721426 | 306 | 0 | 1227 | 306 | 0 | 30699 | 306 | 10 | 2 | 0 | 1 | 0 | 1 | 1 | 1 |
2299160 | 578040 | 15 | 120708 | 30177 | 82 | 22749 | 227 | 7 | 66 | 1582 | 0 | 9 | 1582 | 10 | 14 |
2299161 | 578041 | 15 | 120712 | 30178 | 82 | 22849 | 228 | 7 | 71 | 1582 | 0 | 9 | 1582 | 10 | 15 |
2305506 | 584386 | 15 | 146092 | 36523 | 99 | 36424 | 364 | 11 | 139 | 1599 | 1 | 1 | 1600 | 2 | 28 |
2305507 | 584387 | 15 | 146096 | 36524 | 99 | 36524 | 365 | 11 | 144 | 1599 | 1 | 1 | 1600 | 2 | 29 |
2305508 | 584388 | 16 | 3 | 0 | 0 | 99 | 0 | 0 | 2 | 1600 | 0 | 2 | 1600 | 3 | 1 |
2415079 | 693959 | 18 | 146093 | 36523 | 99 | 36424 | 364 | 11 | 139 | 1899 | 1 | 1 | 1900 | 2 | 28 |
2415080 | 693960 | 19 | 0 | 0 | 0 | 99 | 0 | 0 | 2 | 1900 | 0 | 2 | 1900 | 3 | 1 |
2451544 | 730424 | 19 | 145856 | 36464 | 99 | 30524 | 305 | 9 | 150 | 1999 | 0 | 11 | 1999 | 12 | 31 |
2451545 | 730425 | 19 | 145860 | 36465 | 99 | 30624 | 306 | 10 | 2 | 1999 | 1 | 0 | 2000 | 1 | 1 |
2451603 | 730483 | 19 | 146092 | 36523 | 99 | 36424 | 364 | 11 | 139 | 1999 | 1 | 1 | 2000 | 2 | 28 |
2451604 | 730484 | 19 | 146096 | 36524 | 99 | 36524 | 365 | 11 | 144 | 1999 | 1 | 1 | 2000 | 2 | 29 |
2451605 | 730485 | 20 | 3 | 0 | 0 | 99 | 0 | 0 | 2 | 2000 | 0 | 2 | 2000 | 3 | 1 |
2452827 | 731707 | 20 | 4891 | 1222 | 3 | 12724 | 127 | 4 | 25 | 2003 | 0 | 6 | 2003 | 7 | 6 |
2743797 | 1022677 | 27 | 146092 | 36523 | 99 | 36424 | 364 | 11 | 139 | 2799 | 1 | 1 | 2800 | 2 | 28 |
2743798 | 1022678 | 27 | 146096 | 36524 | 99 | 36524 | 365 | 11 | 144 | 2799 | 1 | 1 | 2800 | 2 | 29 |
2743799 | 1022679 | 28 | 3 | 0 | 0 | 99 | 0 | 0 | 2 | 2800 | 0 | 2 | 2800 | 3 | 1 |
Merk op dat het jaar 1900 wel een schrikkeljaar was in de Juliaanse kalender (hoofdstuk 14.2) maar niet in de Gregoriaanse kalender.
Merk op dat de jaren 1600 en 2800 wel schrikkeljaren zijn in de Gregoriaanse kalender maar niet in de Milanković-kalender (hoofdstuk 14.4).
We kunnen toe met twee kalenderniveaus en vlakke combinatie als we kalendertype 4 gebruiken voor het bovenste niveau, met meerdere maandlengtes. Dan is voor dat bovenste niveau
\begin{align*} q \| = 365 \\ g \| = 400 \\ \{ d_1, h_1, s_1 \} \| = \{ 1, 100, 0\} \\ \{ d_2, h_2, s_2 \} \| = \{ −1, 4, 0\} \\ \{ d_3, h_3, s_3 \} \| = \{ 1, 1, 0\} \end{align*}
Het onderste kalenderniveau is hetzelfde als hierboven, dus
a ━━━━━━━━━━━┓ ┏━ a₁ ━━━━━━━━━━┓ (1) ┃ m ─(−1)─ m₀ ─┘ └─ m₁ ─┐ ┃ d ─(−1)─ d₀ ─────────(2)─ d₁ ─[3]━ s ━(+J₀)━ J
De samenvatting van de kalenderniveau's is
(n) | \({f}\) | \({g}\) | \({q}\) | \({r_i}\) | \({h_i}\) | \({t_i}\) | \({g_i}\) | \({γ_i}\) | \({p}\) |
---|---|---|---|---|---|---|---|---|---|
1 | 12 | 1 | 12 | 0 | 2 | 12 | |||
2 | 153 | 5 | 30 | 3 | 2 | 30.6 | |||
3.1 | 146 097 | 400 | 365 | 1 | 1 | 0 | 4 | 100 | 365.2425 |
3.2 | −1 | 1 | 0 | 100 | 4 | ||||
3.3 | 1 | 1 | 0 | 400 | 1 |
De stappen zijn nu als volgt, van de Gregoriaanse kalender naar het CJDN:
\begin{align} m_0 \| = m − 1 \\ d_0 \| = d − 1 \end{align}
\begin{align} \{ α_1, m_1 \} \| = \Div(m_0 − 2, 12) = \Div(m − 3, 12) \\ a_1 \| = a + α_1 \end{align}
\begin{align} d_1 \| = \dfloorratio{153 m_1 + 2}{5} + d_0 \\ \| = \dfloorratio{153 m_1 + 2}{5} + d − 1 \notag \\ \| = \dfloorratio{153 m_1 − 3}{5} + d \end{align}
\begin{equation} s = 365 a_1 + \dfloorratio{a_1}{4} − \dfloorratio{a_1}{100} + \dfloorratio{a_1}{400} + d_1 \end{equation}
\begin{equation} J = s + J_0 = s + 1 721 120 \end{equation}
Samengevat:
\begin{align} \{ α_1, m_1 \} \| = \Div(m − 3, 12) \\ a_1 \| = a + α_1 \\ d_1 \| = \dfloorratio{153 m_1 − 3}{5} + d \\ s \| = 365 a_1 + \dfloorratio{a_1}{4} − \dfloorratio{a_1}{100} + \dfloorratio{a_1}{400} + d_1 \\ J \| = s + 1 721 120 \end{align}
\begin{align} \{ α_1, m_1 \} \| = \Div(m − 3, 12) = \Div(7 − 3, 12) = \Div(4, 12) = \{ 0, 4 \} \\ a_1 \| = a + α_1 = 2003 + 0 = 2003 \\ d_1 \| = \dfloorratio{153 m_1 − 3}{5} + d = \dfloorratio{153×4 − 3}{5} + 6 \\ \| = \dfloorratio{609}{5} + 6 = 121 + 6 = 127 \\ s \| = 365 a_1 + \dfloorratio{a_1}{4} − \dfloorratio{a_1}{100} + \dfloorratio{a_1}{400} + d_1 \\ \| = 365×2003 + \dfloorratio{2003}{4} − \dfloorratio{2003}{100} + \dfloorratio{2003}{400} + 127 \\ \| = 731 095 + 500 − 20 + 5 + 127 = 731 707 \\ J \| = s + 1 721 120 = 731 707 + 1 721 120 = 2 452 827 \end{align}
Nog wat meer voorbeelden:
\({a}\) | \({m}\) | \({d}\) | \({m_0}\) | \({d_0}\) | \({α_1}\) | \({m_1}\) | \({a_1}\) | \({d_1}\) | \({s}\) | \({J}\) |
---|---|---|---|---|---|---|---|---|---|---|
−4713 | 11 | 23 | 10 | 22 | 0 | 8 | −4713 | 267 | −1721121 | −1 |
−4713 | 11 | 24 | 10 | 23 | 0 | 8 | −4713 | 268 | −1721120 | 0 |
−4713 | 11 | 25 | 10 | 24 | 0 | 8 | −4713 | 269 | −1721119 | 1 |
−1 | 12 | 31 | 11 | 30 | 0 | 9 | −1 | 305 | −61 | 1721059 |
0 | 1 | 1 | 0 | 0 | −1 | 10 | −1 | 306 | −60 | 1721060 |
0 | 2 | 28 | 1 | 27 | −1 | 11 | −1 | 364 | −2 | 1721118 |
0 | 2 | 29 | 1 | 28 | −1 | 11 | −1 | 365 | −1 | 1721119 |
0 | 3 | 1 | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 1721120 |
0 | 12 | 31 | 11 | 30 | 0 | 9 | 0 | 305 | 305 | 1721425 |
1 | 1 | 1 | 0 | 0 | −1 | 10 | 0 | 306 | 306 | 1721426 |
1582 | 10 | 14 | 9 | 13 | 0 | 7 | 1582 | 227 | 578040 | 2299160 |
1582 | 10 | 15 | 9 | 14 | 0 | 7 | 1582 | 228 | 578041 | 2299161 |
1600 | 2 | 28 | 1 | 27 | −1 | 11 | 1599 | 364 | 584386 | 2305506 |
1600 | 2 | 29 | 1 | 28 | −1 | 11 | 1599 | 365 | 584387 | 2305507 |
1600 | 3 | 1 | 2 | 0 | 0 | 0 | 1600 | 0 | 584388 | 2305508 |
1900 | 2 | 28 | 1 | 27 | −1 | 11 | 1899 | 364 | 693959 | 2415079 |
1900 | 3 | 1 | 2 | 0 | 0 | 0 | 1900 | 0 | 693960 | 2415080 |
1999 | 12 | 31 | 11 | 30 | 0 | 9 | 1999 | 305 | 730424 | 2451544 |
2000 | 1 | 1 | 0 | 0 | −1 | 10 | 1999 | 306 | 730425 | 2451545 |
2000 | 2 | 28 | 1 | 27 | −1 | 11 | 1999 | 364 | 730483 | 2451603 |
2000 | 2 | 29 | 1 | 28 | −1 | 11 | 1999 | 365 | 730484 | 2451604 |
2000 | 3 | 1 | 2 | 0 | 0 | 0 | 2000 | 0 | 730485 | 2451605 |
2003 | 7 | 6 | 6 | 5 | 0 | 4 | 2003 | 127 | 731707 | 2452827 |
2800 | 2 | 28 | 1 | 27 | −1 | 11 | 2799 | 364 | 1022677 | 2743797 |
2800 | 2 | 29 | 1 | 28 | −1 | 11 | 2799 | 365 | 1022678 | 2743798 |
2800 | 3 | 1 | 2 | 0 | 0 | 0 | 2800 | 0 | 1022679 | 2743799 |
Nu gaan we weer de andere kant op.
a ━━━━━━━━━━━┓ ┏━ a₁ ━━━━━━━━━━┓ (1) ┃ m ─(−1)─ m₀ ─┘ └─ m₁ ─┐ ┃ d ─(−1)─ d₀ ─────────(2)─ d₁ ─[3]━ s ━(+J₀)━ J
De samenvatting van de kalenderniveau's is
(n) | \({f}\) | \({g}\) | \({q}\) | \({r_i}\) | \({h_i}\) | \({t_i}\) | \({g_i}\) | \({γ_i}\) | \({p}\) |
---|---|---|---|---|---|---|---|---|---|
1 | 12 | 1 | 12 | 0 | 2 | 12 | |||
2 | 153 | 5 | 30 | 3 | 2 | 30.6 | |||
3.1 | 146 097 | 400 | 365 | 1 | 1 | 0 | 4 | 100 | 365.2425 |
3.2 | −1 | 1 | 0 | 100 | 4 | ||||
3.3 | 1 | 1 | 0 | 400 | 1 |
\begin{equation} s = J − J_0 = J − 1 721 120 \end{equation}
\begin{align} ρ \| = 2×2 − (−1) − 365 − 1 − 2×\dparen{\dfrac{1×1}{4} + \dfrac{−1×1}{100} + \dfrac{1×1}{400}} \notag \\ \| = −361 − 2×\dparen{\dfrac{1}{4} − \dfrac{1}{100} + \dfrac{1}{400}} \notag \\ \| = −361\dfrac{97}{200} \le 0 \end{align}
dus we mogen de methode met het vaste aantal stappen gebruiken.
\begin{align} α_2 \| = \dfloorratio{400 s + 400×2 − 0 − 1}{146 097} = \range{\dfloorratio{400 s + 799}{146 097}}{400} \\ δ_2 \| = s − 365 α_2 − \dfloorratio{α_2}{4} + \dfloorratio{α_2}{100} − \dfloorratio{α_2}{400} \\ α_3 \| = \dfloorratio{δ_2}{367} \\ a_1 \| = α_2 + α_3 \\ d_1 \| = s − 365 a_1 − \dfloorratio{a_1}{4} + \dfloorratio{a_1}{100} − \dfloorratio{a_1}{400} \end{align}
Voor de \( \range{•}{400} \) zie hoofdstuk 13.4. Voor 32-bitsgetallen is het bereik van die formule ongeveer 29 duizend jaar. Als je het maximale bereik wilt hebben dan kun je het volgende alternatief gebruiken:
\begin{eqnarray} \{ ω_1, δ_1 \} \| = \| \Div(s, 146 097) \\ α_1 \| = \| \dfloorratio{400 δ_1 + 799}{146 097} \\ α_2 \| = \| 400 ω_1 + α_1 \end{eqnarray}
\({s}\) | \({ω_1}\) | \({δ_1}\) | \({α_1}\) | \({α_2}\) | \({400 s + 799}\) |
---|---|---|---|---|---|
−1 | −1 | 146096 | 400 | 0 | 399 |
0 | 0 | 0 | 0 | 0 | 3 |
1 | 0 | 1 | 0 | 0 | 7 |
731707 | 5 | 1222 | 3 | 2003 | 292683599 |
730484 | 4 | 146096 | 400 | 2000 | 292194399 |
730485 | 5 | 0 | 0 | 2000 | 292194799 |
5551685 | 37 | 146096 | 400 | 15200 | 2220674799 |
5551686 | 38 | 0 | 0 | 15200 | 2220675199 |
Voor \( s = 5 551 685 \) geeft de orignele berekening het tussenresultaat \( 400×5 551 685 + 799 = 2 220 674 799 \) dat te groot is om in een 32-bitsgetal (met teken) te passen, maar met de omweg is het grootste tussenresultaat gelijk aan 146 096 dat ruim klein genoeg is om in een 32-bitsgetal te passen.
\begin{align} \{ m_1, ω_2 \} \| = \Div(5 d_1 + 2, 153) \\ d_0 \| = \dfloorratio{ω_2}{5} \end{align}
\begin{align} \{ α_3, m_0 \} \| = \Div(m_1 + 2, 12) \\ a \| = a_1 + α_3 \end{align}
\begin{align} m \| = m_0 + 1 \\ d \| = d_0 + 1 \end{align}
Samengevat:
\begin{align} s \| = J − 1 721 120 \\ α_2 \| = \range{\dfloorratio{400 s + 799}{146 097}}{400} \\ δ_2 \| = s − 365 α_2 − \dfloorratio{α_2}{4} + \dfloorratio{α_2}{100} − \dfloorratio{α_2}{400} \\ α_3 \| = \dfloorratio{δ_2}{367} \\ a_1 \| = α_2 + α_3 \\ d_1 \| = s − 365 a_1 − \dfloorratio{a_1}{4} + \dfloorratio{a_1}{100} − \dfloorratio{a_1}{400} \\ \{ m_1, ω_2 \} \| = \Div(5 d_1 + 2, 153) \\ d_0 \| = \dfloorratio{ω_2}{5} \\ \{ α_3, m_0 \} \| = \Div(m_1 + 2, 12) \\ a \| = a_1 + α_3 \\ m \| = m_0 + 1 \\ d \| = d_0 + 1 \end{align}
Alternatief voor een groter bereik voor de berekening van \( α_2 \):
\begin{align} \{ ω_1, δ_1 \} \| = \Div(s, 146 097) \\ α_1 \| = \dfloorratio{400 δ_1 + 799}{146 097} \\ α_2 \| = 400 ω_1 + α_1 \end{align}
\begin{align*} s \| = J − 1 721 120 = 2 452 827 − 1 721 120 = 731 707 \\ α_2 \| = \range{\dfloorratio{400 s + 799}{146 097}}{400} = \dfloorratio{400×731707 + 799}{146 097} \\ \| = \dfloorratio{292 683 599}{146 097} = 2003 \\ δ_2 \| = s − 365 α_2 − \dfloorratio{α_2}{4} + \dfloorratio{α_2}{100} − \dfloorratio{α_2}{400} \\ \| = 731 707 − 365×2003 − \dfloorratio{2003}{4} + \dfloorratio{2003}{100} − \dfloorratio{2003}{400} \\ \| = 731 707 − 731 095 − 500 + 20 − 5 = 127 \\ α_3 \| = \dfloorratio{δ_2}{367} = \dfloorratio{127}{367} = 0 \\ a_1 \| = α_2 + α_3 = 2003 + 0 = 2003 \\ d_1 \| = s − 365 a_1 − \dfloorratio{a_1}{4} + \dfloorratio{a_1}{100} − \dfloorratio{a_1}{400} = 127 \\ \{ m_1, ω_2 \} \| = \Div(5 d_1 + 2, 153) = \Div(5×127 + 2, 153) \\ \| = \Div(637, 153) = \{ 4, 25 \} \\ d_0 \| = \dfloorratio{ω_2}{5} = \dfloorratio{25}{5} = 5 \\ \{ α_3, m_0 \} \| = \Div(m_1 + 2, 12) = \Div(4 + 2, 12) = \Div(6, 12) = \{ 0, 6 \} \\ a \| = a_1 + α_3 = 2003 + 0 = 2003 \\ m \| = m_0 + 1 = 6 + 1 = 7 \\ d \| = d_0 + 1 = 5 + 1 = 6 \end{align*}
De datum is 6 juli 2003.
Nog wat meer voorbeelden:
\({J}\) | \({s}\) | \({α_2}\) | \({δ_2}\) | \({α_3}\) | \({a_1}\) | \({d_1}\) | \({m_1}\) | \({ω_2}\) | \({d_0}\) | \({α_3}\) | \({m_0}\) | \({a}\) | \({m}\) | \({d}\) |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
−1 | −1721121 | −4713 | 267 | 0 | −4713 | 267 | 8 | 113 | 22 | 0 | 10 | −4713 | 11 | 23 |
0 | −1721120 | −4713 | 268 | 0 | −4713 | 268 | 8 | 118 | 23 | 0 | 10 | −4713 | 11 | 24 |
1 | −1721119 | −4713 | 269 | 0 | −4713 | 269 | 8 | 123 | 24 | 0 | 10 | −4713 | 11 | 25 |
1721059 | −61 | −1 | 305 | 0 | −1 | 305 | 9 | 150 | 30 | 0 | 11 | −1 | 12 | 31 |
1721060 | −60 | −1 | 306 | 0 | −1 | 306 | 10 | 2 | 0 | 1 | 0 | 0 | 1 | 1 |
1721118 | −2 | −1 | 364 | 0 | −1 | 364 | 11 | 139 | 27 | 1 | 1 | 0 | 2 | 28 |
1721119 | −1 | 0 | −1 | −1 | −1 | 365 | 11 | 144 | 28 | 1 | 1 | 0 | 2 | 29 |
1721120 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 2 | 0 | 3 | 1 |
1721425 | 305 | 0 | 305 | 0 | 0 | 305 | 9 | 150 | 30 | 0 | 11 | 0 | 12 | 31 |
1721426 | 306 | 0 | 306 | 0 | 0 | 306 | 10 | 2 | 0 | 1 | 0 | 1 | 1 | 1 |
2299160 | 578040 | 1582 | 227 | 0 | 1582 | 227 | 7 | 66 | 13 | 0 | 9 | 1582 | 10 | 14 |
2299161 | 578041 | 1582 | 228 | 0 | 1582 | 228 | 7 | 71 | 14 | 0 | 9 | 1582 | 10 | 15 |
2305506 | 584386 | 1599 | 364 | 0 | 1599 | 364 | 11 | 139 | 27 | 1 | 1 | 1600 | 2 | 28 |
2305507 | 584387 | 1600 | −1 | −1 | 1599 | 365 | 11 | 144 | 28 | 1 | 1 | 1600 | 2 | 29 |
2305508 | 584388 | 1600 | 0 | 0 | 1600 | 0 | 0 | 2 | 0 | 0 | 2 | 1600 | 3 | 1 |
2415079 | 693959 | 1900 | −1 | −1 | 1899 | 364 | 11 | 139 | 27 | 1 | 1 | 1900 | 2 | 28 |
2415080 | 693960 | 1900 | 0 | 0 | 1900 | 0 | 0 | 2 | 0 | 0 | 2 | 1900 | 3 | 1 |
2451544 | 730424 | 1999 | 305 | 0 | 1999 | 305 | 9 | 150 | 30 | 0 | 11 | 1999 | 12 | 31 |
2451545 | 730425 | 1999 | 306 | 0 | 1999 | 306 | 10 | 2 | 0 | 1 | 0 | 2000 | 1 | 1 |
2451603 | 730483 | 1999 | 364 | 0 | 1999 | 364 | 11 | 139 | 27 | 1 | 1 | 2000 | 2 | 28 |
2451604 | 730484 | 2000 | −1 | −1 | 1999 | 365 | 11 | 144 | 28 | 1 | 1 | 2000 | 2 | 29 |
2451605 | 730485 | 2000 | 0 | 0 | 2000 | 0 | 0 | 2 | 0 | 0 | 2 | 2000 | 3 | 1 |
2452827 | 731707 | 2003 | 127 | 0 | 2003 | 127 | 4 | 25 | 5 | 0 | 6 | 2003 | 7 | 6 |
2743797 | 1022677 | 2799 | 364 | 0 | 2799 | 364 | 11 | 139 | 27 | 1 | 1 | 2800 | 2 | 28 |
2743798 | 1022678 | 2800 | −1 | −1 | 2799 | 365 | 11 | 144 | 28 | 1 | 1 | 2800 | 2 | 29 |
2743799 | 1022679 | 2800 | 0 | 0 | 2800 | 0 | 0 | 2 | 0 | 0 | 2 | 2800 | 3 | 1 |
De berekeningen zijn schematisch als volgt:
a ━━━━━━━━━━━━┓ m ─(−1)─ m₀ ─(1)━ m₁ ━┓ d ─(−1)─ d₀ ─────────[2]━ s ━(+J₀)━ J
De samenvatting van de kalenderniveau's is
(n) | \({f}\) | \({g}\) | \({q}\) | \({r_i}\) | \({h_i}\) | \({t_i}\) | \({g_i}\) | \({γ_i}\) | \({p}\) |
---|---|---|---|---|---|---|---|---|---|
1 | 12 | 1 | 12 | 0 | 0 | 12 | |||
2.1 | 146097 | 4800 | 30 | 1 | 7 | 5 | 12 | 400 | 30.436875 |
2.2 | −2 | 1 | 10 | 12 | 400 | ||||
2.3 | 1 | 1 | 46 | 48 | 100 | ||||
2.4 | −1 | 1 | 1198 | 1200 | 4 | ||||
2.5 | 1 | 1 | 4798 | 4800 | 1 |
Net als voor de Juliaanse kalender kunnen we een getrapte combinatie van kalenderniveaus gebruiken. Vergeleken met de Juliaanse kalender moeten we bij berekening 2 de schrikkelregels voor elke 100 jaar en elke 400 jaar er nog bij stoppen:
\begin{eqnarray*} 30 m_1 + \dfloorratio{7 m_1 + 5}{12} − 2\dfloorratio{m_1 + 10}{12} + \dfloorratio{m_1 + 46}{48} \\ − \dfloorratio{m_1 + 1198}{1200} + \dfloorratio{m_1 + 4798}{4800} \end{eqnarray*}
dus kalendertype 4 met
\begin{eqnarray*} q \| = \| 30 \\ g \| = \| 4800 \\ \{ r_1, h_1, t_1, g_1 \} \| = \| \{ 1, 7, 5, 12 \} \\ \{ r_2, h_2, t_2, g_2 \} \| = \| \{ −2, 1, 10, 12 \} \\ \{ r_3, h_3, t_3, g_3 \} \| = \| \{ 1, 1, 46, 48 \} \\ \{ r_4, h_4, t_4, g_4 \} \| = \| \{ −1, 1, 1198, 1200 \} \\ \{ r_5, h_5, t_5, g_5 \} \| = \| \{ 1, 1, 4798, 4800 \} \end{eqnarray*}
Het CJDN \( J_0 \) dat overeenkomt met \( \{ j, m, d \} = \{ 0, 0, 0 \} \) ofwel 1 januari van het jaar 0 (in de Gregoriaanse kalender) is 1 721 060.
Verder is alles hetzelfde als voor de Juliaanse kalender. We vinden dan
\begin{align} m_1 \| = 12 a + m − 1 \\ s \| = 30 m_1 + \dfloorratio{7 m_1 − 7}{12} − 2\dfloorratio{m_1 + 10}{12} + \dfloorratio{m_1 + 46}{48} \notag \\ \| − \dfloorratio{m_1 + 1198}{1200} + \dfloorratio{m_1 + 4798}{4800} + d \\ J \| = s + 1 721 060 \end{align}
\begin{align*} m_1 \| = 12 a + m − 1 = 12×2003 + 7 − 1 = 24042 \\ s \| = 30 m_1 + \dfloorratio{7 m_1 − 7}{12} − 2\dfloorratio{m_1 + 10}{12} + \dfloorratio{m_1 + 46}{48} \notag \\ \| − \dfloorratio{m_1 + 1198}{1200} + \dfloorratio{m_1 + 4798}{4800} + d \\ \| = 30×24042 + \dfloorratio{7×24042 − 7}{12} − 2\dfloorratio{24042 + 10}{12} + \dfloorratio{24042 + 46}{48} \notag \\ \| − \dfloorratio{24042 + 1198}{1200} + \dfloorratio{24042 + 4798}{4800} + 6 \\ \| = 721 260 + \dfloorratio{168 287}{12} − 2\dfloorratio{24052}{12} + \dfloorratio{24088}{48} \notag \\ \| − \dfloorratio{25240}{1200} + \dfloorratio{28840}{4800} + 6 \\ \| = 721 260 + 14023 − 2×2004 + 501 − 21 + 6 + 6 = 731 767 \\ J \| = s + 1 721 060 = 731 767 + 1 721 060 = 2 452 827 \end{align*}
Nog wat meer voorbeelden:
\begin{align*} δ_1 \| = \dfloorratio{7 m_1 − 7}{12} \\ δ_2 \| = \dfloorratio{m_1 + 10}{12} \\ δ_3 \| = \dfloorratio{m_1 + 46}{48} \\ δ_4 \| = \dfloorratio{m_1 + 1198}{1200} \\ δ_5 \| = \dfloorratio{m_1 + 4798}{4800} \end{align*}
\({a}\) | \({m}\) | \({d}\) | \({m_1}\) | \({δ_1}\) | \({δ_2}\) | \({δ_3}\) | \({δ_4}\) | \({δ_5}\) | \({s}\) | \({J}\) |
---|---|---|---|---|---|---|---|---|---|---|
−4713 | 11 | 23 | −56546 | −32986 | −4712 | −1178 | −47 | −11 | −1721060 | 0 |
−4713 | 11 | 24 | −56546 | −32986 | −4712 | −1178 | −47 | −11 | −1721059 | 1 |
−4713 | 11 | 25 | −56546 | −32986 | −4712 | −1178 | −47 | −11 | −1721058 | 2 |
−1 | 12 | 31 | −1 | −2 | 0 | 0 | 0 | 0 | 0 | 1721060 |
0 | 1 | 1 | 0 | −1 | 0 | 0 | 0 | 0 | 1 | 1721061 |
0 | 2 | 28 | 1 | 0 | 0 | 0 | 0 | 0 | 59 | 1721119 |
0 | 2 | 29 | 1 | 0 | 0 | 0 | 0 | 0 | 60 | 1721120 |
0 | 3 | 1 | 2 | 0 | 1 | 1 | 1 | 1 | 61 | 1721121 |
0 | 12 | 31 | 11 | 5 | 1 | 1 | 1 | 1 | 366 | 1721426 |
1 | 1 | 1 | 12 | 6 | 1 | 1 | 1 | 1 | 367 | 1721427 |
1582 | 10 | 14 | 18993 | 11078 | 1583 | 396 | 16 | 4 | 578101 | 2299161 |
1582 | 10 | 15 | 18993 | 11078 | 1583 | 396 | 16 | 4 | 578102 | 2299162 |
1600 | 2 | 28 | 19201 | 11200 | 1600 | 400 | 16 | 4 | 584447 | 2305507 |
1600 | 2 | 29 | 19201 | 11200 | 1600 | 400 | 16 | 4 | 584448 | 2305508 |
1600 | 3 | 1 | 19202 | 11200 | 1601 | 401 | 17 | 5 | 584449 | 2305509 |
1900 | 2 | 28 | 22801 | 13300 | 1900 | 475 | 19 | 5 | 694020 | 2415080 |
1900 | 3 | 1 | 22802 | 13300 | 1901 | 476 | 20 | 5 | 694021 | 2415081 |
1999 | 12 | 31 | 23999 | 13998 | 2000 | 500 | 20 | 5 | 730485 | 2451545 |
2000 | 1 | 1 | 24000 | 13999 | 2000 | 500 | 20 | 5 | 730486 | 2451546 |
2000 | 2 | 28 | 24001 | 14000 | 2000 | 500 | 20 | 5 | 730544 | 2451604 |
2000 | 2 | 29 | 24001 | 14000 | 2000 | 500 | 20 | 5 | 730545 | 2451605 |
2000 | 3 | 1 | 24002 | 14000 | 2001 | 501 | 21 | 6 | 730546 | 2451606 |
2003 | 7 | 6 | 24042 | 14023 | 2004 | 501 | 21 | 6 | 731768 | 2452828 |
2800 | 2 | 28 | 33601 | 19600 | 2800 | 700 | 28 | 7 | 1022738 | 2743798 |
2800 | 2 | 29 | 33601 | 19600 | 2800 | 700 | 28 | 7 | 1022739 | 2743799 |
2800 | 3 | 1 | 33602 | 19600 | 2801 | 701 | 29 | 8 | 1022740 | 2743800 |
De berekeningen zijn schematisch als volgt:
a ━━━━━━━━━━━━┓ m ─(−1)─ m₀ ─(1)━ m₁ ━┓ d ─(−1)─ d₀ ─────────[2]━ s ━(+J₀)━ J
De samenvatting van de kalenderniveau's is
(n) | \({f}\) | \({g}\) | \({q}\) | \({r_i}\) | \({h_i}\) | \({t_i}\) | \({g_i}\) | \({γ_i}\) | \({p}\) |
---|---|---|---|---|---|---|---|---|---|
1 | 12 | 1 | 12 | 0 | 0 | 12 | |||
2.1 | 146 097 | 4800 | 30 | 1 | 7 | 5 | 12 | 400 | 30.436875 |
2.2 | −2 | 1 | 10 | 12 | 400 | ||||
2.3 | 1 | 1 | 46 | 48 | 100 | ||||
2.4 | −1 | 1 | 1198 | 1200 | 4 | ||||
2.5 | 1 | 1 | 4798 | 4800 | 1 |
Hiervoor doorlopen we dezelfde procedure als hierboven, maar in de omgekeerde richting.
\begin{equation} s = J − J_0 = J − 1 721 060 \end{equation}
We hebben
\begin{align} μ_2 \| = \dfloorratio{gs + g\dparen{\sum_{r_i \gt 0} r_i} − \dparen{\sum_i γ_i r_i t_i} − 1}{f} \notag \\ \| = \dfloorratio{4800 s + 4800×3 − (−1394) − 1}{146 097} \notag \\ \| = \range{\dfloorratio{4800 s + 15793}{146 097}}{4800} \label{eq:greg3μ1} \\ δ_2 \| = s − 30 μ_2 − \dfloorratio{7 μ_2 + 5}{12} + 2\dfloorratio{μ_2 + 10}{12} − \dfloorratio{μ_2 + 46}{48} \notag \\ \| + \dfloorratio{μ_2 + 1198}{1200} − \dfloorratio{μ_2 + 4798}{4800} \\ ρ \| = 2\dparen{\sum_{r_i \gt 0} r_i} − \dparen{\sum_{r_i \lt 0} r_i} − q − 1 − 2 \dparen{\sum_i \dfrac{r_ih_i}{g_i}} \notag \\ \| = 2×3 − (−3) − 30 − 2×0.436875 = −21.87375 \end{align}
Voor de \( \range{•}{4800} \) zie hoofdstuk 13.4. Voor 32-bitsgetallen heeft die formule een bereik van slechts ongeveer 2450 jaar. Als je het maximale bereik wilt hebben dan kun je het volgende alternatief gebruiken:
\begin{eqnarray} \{ω_1, δ_1\} \| = \| \Div(s, 146 097) \\ μ_1 \| = \| \dfloorratio{4800 δ_1 + 15793}{146 097} \\ μ_2 \| = \| 4800 ω_1 + μ_1 \end{eqnarray}
\({s}\) | \({ω_1}\) | \({δ_1}\) | \({μ_1}\) | \({μ_2}\) | \({4800 s + 15793}\) |
---|---|---|---|---|---|
−1 | −1 | 146096 | 4800 | 0 | 10993 |
0 | 0 | 0 | 0 | 0 | 15793 |
1 | 0 | 1 | 0 | 0 | 20593 |
200000 | 1 | 53903 | 1771 | 6571 | 960015793 |
730484 | 4 | 146096 | 4800 | 24000 | 3506338993 |
730485 | 5 | 0 | 0 | 24000 | 3506343793 |
Voor \( s = 730 484 \) geeft de orignele berekening het tussenresultaat \( 4800×730 484 + 15793 = 3 506 338 993 \) dat te groot is om in een 32-bitsgetal (met teken) te passen, maar met de omweg is het grootste tussenresultaat 146 096 dat ruim klein genoeg is om in een 32-bitsgetal te passen.
Omdat \( ρ ≤ 0 \) mogen we de procedure met het vaste aantal stappen gebruiken. Dan
\begin{align} m_1 \| = μ_2 + \dfloorratio{δ_2}{33} \\ d_0 \| = s − 30 m_1 − \dfloorratio{7 m_1 + 5}{12} + 2\dfloorratio{m_1 + 10}{12} − \dfloorratio{m_1 + 46}{48} \notag \\ \| + \dfloorratio{m_1 + 1198}{1200} − \dfloorratio{m_1 + 4798}{4800} \end{align}
\begin{equation} \{ a, m_0 \} = \Div(m_1, 12) \end{equation}
\begin{align} m \| = m_0 + 1 \\ d \| = d_0 + 1 \end{align}
Samengevat:
\begin{align} s \| = J − 1 721 060 \\ μ_2 \| = \range{\dfloorratio{4800 s + 15793}{146 097}}{4800} \\ δ_2 \| = s − 30 μ_2 − \dfloorratio{7 μ_2 + 5}{12} + 2\dfloorratio{μ_2 + 10}{12} − \dfloorratio{μ_2 + 46}{48} \notag \\ \| + \dfloorratio{μ_2 + 1198}{1200} − \dfloorratio{μ_2 + 4798}{4800} \\ m_1 \| = μ_2 + \dfloorratio{δ_2}{33} \\ d_0 \| = s − 30 m_1 − \dfloorratio{7 m_1 + 5}{12} + 2\dfloorratio{m_1 + 10}{12} − \dfloorratio{m_1 + 46}{48} \notag \\ \| + \dfloorratio{m_1 + 1198}{1200} − \dfloorratio{m_1 + 4798}{4800} \\ \{ a, m_0 \} \| = \Div(m_1, 12) \\ m \| = m_0 + 1 \\ d \| = d_0 + 1 \end{align}
Alternatief met groter bereik voor de berekening van \( μ_2 \):
\begin{align} \{ω_1, δ_1\} \| = \Div(s, 146 097) \\ μ_1 \| = \dfloorratio{4800 δ_1 + 15793}{146 097} \\ μ_2 \| = 4800 ω_1 + μ_1 \end{align}
\begin{align*} s \| = J − 1 721 060 = 2 452 827 − 1 721 060 = 731 767 \\ μ_2 \| = \range{\dfloorratio{4800 s + 15793}{146 097}}{4800} = \dfloorratio{4800×731 767 + 15793}{146 097} \\ \| = \dfloorratio{3 512 497 393}{146 097} = 24042 \\ δ_2 \| = s − 30 μ_2 − \dfloorratio{7 μ_2 + 5}{12} + 2\dfloorratio{μ_2 + 10}{12} − \dfloorratio{μ_2 + 46}{48} \\ \| + \dfloorratio{μ_2 + 1198}{1200} − \dfloorratio{μ_2 + 4798}{4800} \\ \| = 731 767 − 30×24042 − \dfloorratio{7×24042 + 5}{12} + 2\dfloorratio{24042 + 10}{12} − \dfloorratio{24042 + 46}{48} \\ \| + \dfloorratio{24042 + 1198}{1200} − \dfloorratio{24042 + 4798}{4800} \\ \| = 731 767 − 721 260 − \dfloorratio{168299}{12} + 2\dfloorratio{24052}{12} − \dfloorratio{24088}{48} \\ \| + \dfloorratio{25240}{1200} − \dfloorratio{28840}{4800} \\ \| = 10507 − 14024 + 2×2004 − 501 + 21 − 6 = 5 \\ m_1 \| = μ_2 + \dfloorratio{δ_2}{33} = 24042 + \dfloorratio{5}{33} = 24042 \\ d_0 \| = s − 30 m_1 − \dfloorratio{7 m_1 + 5}{12} + 2\dfloorratio{m_1 + 10}{12} − \dfloorratio{m_1 + 46}{48} \notag \\ \| + \dfloorratio{m_1 + 1198}{1200} − \dfloorratio{m_1 + 4798}{4800} = 5 \\ \{ a, m_0 \} \| = \Div(m_1, 12) = \Div(24042, 12) = \{ 2003, 6 \} \\ m \| = m_0 + 1 = 6 + 1 = 7 \\ d \| = d_0 + 1 = 5 + 1 = 6 \end{align*}
De datum is 6 juli 2003.
Nog wat meer voorbeelden:
\({J}\) | \({s}\) | \({ω_1}\) | \({δ_1}\) | \({μ_1}\) | \({μ_2}\) | \({δ_2}\) | \({m_1}\) | \({d_0}\) | \({m_0}\) | \({a}\) | \({m}\) | \({d}\) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
−1 | −1721061 | −12 | 32103 | 1054 | −56546 | 22 | −56546 | 22 | 10 | −4713 | 11 | 23 |
0 | −1721060 | −12 | 32104 | 1054 | −56546 | 23 | −56546 | 23 | 10 | −4713 | 11 | 24 |
1 | −1721059 | −12 | 32105 | 1054 | −56546 | 24 | −56546 | 24 | 10 | −4713 | 11 | 25 |
1721059 | −1 | −1 | 146096 | 4800 | 0 | −1 | −1 | 30 | 11 | −1 | 12 | 31 |
1721060 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 |
1721118 | 58 | 0 | 58 | 2 | 2 | −2 | 1 | 27 | 1 | 0 | 2 | 28 |
1721119 | 59 | 0 | 59 | 2 | 2 | −1 | 1 | 28 | 1 | 0 | 2 | 29 |
1721120 | 60 | 0 | 60 | 2 | 2 | 0 | 2 | 0 | 2 | 0 | 3 | 1 |
1721425 | 365 | 0 | 365 | 12 | 12 | −1 | 11 | 30 | 11 | 0 | 12 | 31 |
1721426 | 366 | 0 | 366 | 12 | 12 | 0 | 12 | 0 | 0 | 1 | 1 | 1 |
2299160 | 578100 | 3 | 139809 | 4593 | 18993 | 13 | 18993 | 13 | 9 | 1582 | 10 | 14 |
2299161 | 578101 | 3 | 139810 | 4593 | 18993 | 14 | 18993 | 14 | 9 | 1582 | 10 | 15 |
2305506 | 584446 | 4 | 58 | 2 | 19202 | −2 | 19201 | 27 | 1 | 1600 | 2 | 28 |
2305507 | 584447 | 4 | 59 | 2 | 19202 | −1 | 19201 | 28 | 1 | 1600 | 2 | 29 |
2305508 | 584448 | 4 | 60 | 2 | 19202 | 0 | 19202 | 0 | 2 | 1600 | 3 | 1 |
2415079 | 694019 | 4 | 109631 | 3602 | 22802 | −1 | 22801 | 27 | 1 | 1900 | 2 | 28 |
2415080 | 694020 | 4 | 109632 | 3602 | 22802 | 0 | 22802 | 0 | 2 | 1900 | 3 | 1 |
2451544 | 730484 | 4 | 146096 | 4800 | 24000 | −1 | 23999 | 30 | 11 | 1999 | 12 | 31 |
2451545 | 730485 | 5 | 0 | 0 | 24000 | 0 | 24000 | 0 | 0 | 2000 | 1 | 1 |
2451603 | 730543 | 5 | 58 | 2 | 24002 | −2 | 24001 | 27 | 1 | 2000 | 2 | 28 |
2451604 | 730544 | 5 | 59 | 2 | 24002 | −1 | 24001 | 28 | 1 | 2000 | 2 | 29 |
2451605 | 730545 | 5 | 60 | 2 | 24002 | 0 | 24002 | 0 | 2 | 2000 | 3 | 1 |
2452827 | 731767 | 5 | 1282 | 42 | 24042 | 5 | 24042 | 5 | 6 | 2003 | 7 | 6 |
2743797 | 1022737 | 7 | 58 | 2 | 33602 | −2 | 33601 | 27 | 1 | 2800 | 2 | 28 |
2743798 | 1022738 | 7 | 59 | 2 | 33602 | −1 | 33601 | 28 | 1 | 2800 | 2 | 29 |
2743799 | 1022739 | 7 | 60 | 2 | 33602 | 0 | 33602 | 0 | 2 | 2800 | 3 | 1 |
Voor de Gregoriaanse kalender zijn de formules in de hoofdstukken met "(2)" en "(3)" in de titel niet eenvoudiger dan de formules met "(1)" in de titel van het hoofdstuk, dus raden we de formules van het hoofdstuk "(1)" aan voor algemeen gebruik voor deze kalender. Het is echter niet altijd mogelijk om zulke formules te vinden, dus is het prettig om dan ook lastigere maar ook krachtigere formules achter de hand te hebben.
Sommige Oosters-Orthodoxe Kerken hebben enige tijd (vanaf 1923) een door Milutin Milanković bedachte kalender gebruikt die alleen afwijkt van de Gregoriaanse kalender door de regel welke eeuwjaren schrikkeljaren zijn. In de Gregoriaanse kalender zijn dat alle eeuwjaren die niet deelbaar zijn door 400. In de Milanković-kalender zijn dat alle eeuwjaren die bij deling door 900 een rest van 200 of 600 geven. De volgende tabel toont voor de eeuwjaren van 1500 tot 2900 welke daarvan schrikkeljaren zijn in de Gregoriaanse en Milanković-kalenders.
Jaar | Gregoriaans | Milanković |
---|---|---|
1500 | nee | ja |
1600 | ja | nee |
1700 | nee | nee |
1800 | nee | nee |
1900 | nee | nee |
2000 | ja | ja |
2100 | nee | nee |
2200 | nee | nee |
2300 | nee | nee |
2400 | ja | ja |
2500 | nee | nee |
2600 | nee | nee |
2700 | nee | nee |
2800 | ja | nee |
2900 | nee | ja |
Tussen de jaren 1601 en 2799 lopen de Milanković- en Gregoriaanse kalenders gelijk. De jaren 1600 en 2800 zijn wel schrikkeljaren in de Gregoriaanse kalender maar niet in de Milanković-kalender.
Met deze regels heeft de Milanković-kalender een periode van 365×900 + 900/4 − (900/100)×(7/9) = 328 718 dagen. De omrekening van datum naar CJDN is voor de Milanković-kalender bijna hetzelfde als voor de Gregoriaanse kalender (zie hoofdstuk 14.3.1). De berekeningen zijn schematisch als volgt:
┏━━ c₁ ━━━━━━━━━━┓ a ━━━━━━━━━━━┓ ┏━ a₁ ━(2)─ a₂ ─┐ ┃ (1) │ ┃ m ─(−1)─ m₀ ─┘ └─ m₁ ─┐ │ ┃ d ─(−1)─ d₀ ─────────(3)─ d₁ ─(4)─ d₂ ─(5)━ s ━(+J₀)━ J
De samenvatting van de kalenderniveau's is
(n) | \({f}\) | \({g}\) | \({q}\) | \({h}\) | \({t}\) | \({p}\) |
---|---|---|---|---|---|---|
1 | 12 | 1 | 12 | 0 | 2 | 12 |
2 | 100 | 1 | 100 | 0 | 0 | 100 |
3 | 153 | 5 | 30 | 3 | 2 | 30.6 |
4 | 36525 | 100 | 365 | 25 | 0 | 365.25 |
5 | 328718 | 9 | 36524 | 2 | 6 | 36524+2/9 |
De stappen zijn nu als volgt, van de Milanković-kalender naar het CJDN:
\begin{align} m_0 \| = m − 1 \\ d_0 \| = d − 1 \end{align}
\begin{align} \{ α_1, m_1 \} \| = \Div(m_0 − 2, 12) = \Div(m − 3, 12) \\ a_1 \| = a + α_1 \end{align}
\begin{equation} \{ c_1, a_2 \} = \Div(a_1, 100) \end{equation}
\begin{align} d_1 \| = \dfloorratio{153 m_1 + 2}{5} + d_0 \\ \| = \dfloorratio{153 m_1 + 2}{5} + d − 1 \notag \\ \| = \dfloorratio{153 m_1 − 3}{5} + d \end{align}
\begin{equation} d_2 = \dfloorratio{36525 a_2}{100} + d_1 \end{equation}
\begin{equation} s = \range{\dfloorratio{328 718 c_1 + 6}{9}}{9} + d_2 = 36524 c_1 + \dfloorratio{2 c_1 + 6}{9} + d_2 \end{equation}
Voor de \( \range{•}{9} \) zie hoofdstuk 13.4. Voor 32-bitsgetallen heeft die formule een bereik van ongeveer 1,3 miljoen jaar. Het alternatief daarachter heeft het maximale bereik, wat voor 32-bitsgetallen gelijk is aan ongeveer 11 miljoen jaar.
\begin{equation} J = s + J_0 = s + 1 721 120 \end{equation}
Samengevat:
\begin{align} \{ α_1, m_1 \} \| = \Div(m − 3, 12) \\ a_1 \| = a + α_1 \\ \{ c_1, a_2 \} \| = \Div(a_1, 100) \\ d_1 \| = \dfloorratio{153 m_1 − 3}{5} + d \\ d_2 \| = \dfloorratio{36525 a_2}{100} + d_1 \\ s \| = \range{\dfloorratio{328 718 c_1 + 6}{9}}{9} + d_2 = 36524 c_1 + \dfloorratio{2 c_1 + 6}{9} + d_2 \\ J \| = s + J_0 = s + 1 721 120 \end{align}
\begin{align*} \{ α_1, m_1 \} \| = \Div(m − 3, 12) = \Div(7 − 3, 12) = \Div(4, 12) = \{ 0, 4 \} \\ a_1 \| = a + α_1 = 2003 + 0 = 2003 \\ \{ c_1, a_2 \} \| = \Div(a_1, 100) = \Div(2003, 100) = \{ 20, 3 \} \\ d_1 \| = \dfloorratio{153 m_1 − 3}{5} + d_0 = \dfloorratio{153×4 − 3}{5} + 6 = \dfloorratio{609}{5} + 6 = 121 + 6 = 127 \\ d_2 \| = \dfloorratio{36525 a_2}{100} + d_1 = \dfloorratio{36525×3}{100} + 127 \\ \| = \dfloorratio{109 575}{100} + 122 = 1095 + 127 = 1222 \\ s \| = \dfloorratio{328 718 c_1 + 6}{9} + d_2 = \dfloorratio{328 718×20 + 6}{9} + 1222 \\ \| = \dfloorratio{6 574 366}{9} + 1222 = 730 485 + 1222 = 731 707 \\ J \| = s + 1 721 120 = 731 707 + 1 721 120 = 2 452 827 \end{align*}
Nog wat meer voorbeelden:
\({a}\) | \({m}\) | \({d}\) | \({α_1}\) | \({m_1}\) | \({a_1}\) | \({c_1}\) | \({a_2}\) | \({d_1}\) | \({d_2}\) | \({s}\) | \({J}\) |
---|---|---|---|---|---|---|---|---|---|---|---|
−4713 | 11 | 21 | 0 | 8 | −4713 | −48 | 87 | 265 | 32041 | −1721121 | −1 |
−4713 | 11 | 22 | 0 | 8 | −4713 | −48 | 87 | 266 | 32042 | −1721120 | 0 |
−4713 | 11 | 23 | 0 | 8 | −4713 | −48 | 87 | 267 | 32043 | −1721119 | 1 |
−1 | 12 | 31 | 0 | 9 | −1 | −1 | 99 | 305 | 36464 | −60 | 1721060 |
0 | 1 | 1 | −1 | 10 | −1 | −1 | 99 | 306 | 36465 | −59 | 1721061 |
0 | 2 | 28 | −1 | 11 | −1 | −1 | 99 | 364 | 36523 | −1 | 1721119 |
0 | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1721120 |
0 | 12 | 31 | 0 | 9 | 0 | 0 | 0 | 305 | 305 | 305 | 1721425 |
1 | 1 | 1 | −1 | 10 | 0 | 0 | 0 | 306 | 306 | 306 | 1721426 |
1582 | 10 | 14 | 0 | 7 | 1582 | 15 | 82 | 227 | 30177 | 578041 | 2299161 |
1582 | 10 | 15 | 0 | 7 | 1582 | 15 | 82 | 228 | 30178 | 578042 | 2299162 |
1600 | 2 | 28 | −1 | 11 | 1599 | 15 | 99 | 364 | 36523 | 584387 | 2305507 |
1600 | 3 | 1 | 0 | 0 | 1600 | 16 | 0 | 0 | 0 | 584388 | 2305508 |
1900 | 2 | 28 | −1 | 11 | 1899 | 18 | 99 | 364 | 36523 | 693959 | 2415079 |
1900 | 3 | 1 | 0 | 0 | 1900 | 19 | 0 | 0 | 0 | 693960 | 2415080 |
1999 | 12 | 31 | 0 | 9 | 1999 | 19 | 99 | 305 | 36464 | 730424 | 2451544 |
2000 | 1 | 1 | −1 | 10 | 1999 | 19 | 99 | 306 | 36465 | 730425 | 2451545 |
2000 | 2 | 28 | −1 | 11 | 1999 | 19 | 99 | 364 | 36523 | 730483 | 2451603 |
2000 | 2 | 29 | −1 | 11 | 1999 | 19 | 99 | 365 | 36524 | 730484 | 2451604 |
2000 | 3 | 1 | 0 | 0 | 2000 | 20 | 0 | 0 | 0 | 730485 | 2451605 |
2003 | 7 | 6 | 0 | 4 | 2003 | 20 | 3 | 127 | 1222 | 731707 | 2452827 |
2800 | 2 | 28 | −1 | 11 | 2799 | 27 | 99 | 364 | 36523 | 1022677 | 2743797 |
2800 | 3 | 1 | 0 | 0 | 2800 | 28 | 0 | 0 | 0 | 1022678 | 2743798 |
Merk op dat de jaren 1600 en 2800 wel schrikkeljaren zijn in de Gregoriaanse kalender (hoofdstuk 14.3) maar niet in de Milanković-kalender.
Ook in de omgekeerde richting doen we hetzelfde als voor de Gregoriaanse kalender (zie hoofdstuk 14.3.2), behalve dat we andere formules gebruiken om \( c_1 \) en \( d_2 \) uit te rekenen. De berekeningen zijn schematisch zoals in het volgende diagram:
┏━━ c₁ ━━━━━━━━━━┓ a ━━━━━━━━━━━┓ ┏━ a₁ ━(2)─ a₂ ─┐ ┃ (1) │ ┃ m ─(−1)─ m₀ ─┘ └─ m₁ ─┐ │ ┃ d ─(−1)─ d₀ ─────────(3)─ d₁ ─(4)─ d₂ ─(5)━ s ━(+J₀)━ J
De samenvatting van de kalenderniveau's is
(n) | \({f}\) | \({g}\) | \({q}\) | \({h}\) | \({t}\) | \({p}\) |
---|---|---|---|---|---|---|
1 | 12 | 1 | 12 | 0 | 2 | 12 |
2 | 100 | 1 | 100 | 0 | 0 | 100 |
3 | 153 | 5 | 30 | 3 | 2 | 30.6 |
4 | 36525 | 100 | 365 | 25 | 0 | 365.25 |
5 | 328718 | 9 | 36524 | 2 | 6 | 36524+2/9 |
\begin{equation} s = J − J_0 = J − 1 721 120 \end{equation}
\begin{align} \{ c_1, ω_3 \} \| = \range{\Div(9 s + 2, 328 718)}{9} \\ d_2 \| = \dfloorratio{ω_3}{9} \end{align}
Voor de \( \range{•}{9} \) zie hoofdstuk 13.4. Voor 32-bitsgetallen heeft die formule een bereik van ongeveer 1,3 miljoen jaar. Als je het maximale bereik wilt hebben dan kun je het volgende alternatief gebruiken:
\begin{eqnarray} \{ ω_1, δ_1 \} \| = \| \Div(s, 328 718) \\ \{ ω_2, ω_3 \} \| = \| \Div(9 δ_1 + 2, 328 718) \\ c_1 \| = \| 9 ω_1 + ω_2 \end{eqnarray}
\({s}\) | \({ω_1}\) | \({δ_1}\) | \({ω_2}\) | \({ω_3}\) | \({c_1}\) | \({9 s + 2}\) |
---|---|---|---|---|---|---|
−1 | −1 | 328717 | 8 | 328711 | −1 | −7 |
0 | 0 | 0 | 0 | 2 | 0 | 2 |
1 | 0 | 1 | 0 | 11 | 0 | 11 |
328717999 | 999 | 328717 | 8 | 328711 | 8999 | 2958461993 |
328718000 | 1000 | 0 | 0 | 2 | 9000 | 2958462002 |
Voor \( s = 328 717 999 \) geeft de orignele berekening het tussenresultaat \( 9×328 717 999 + 2 = 2 958 461 993 \) dat te groot is om in een 32-bitsgetal (met teken) te passen, maar met de omweg is het grootste tussenresultaat 328 717, ruim klein genoeg om in een 32-bitsgetal te passen.
\begin{align} \{ a_2, ω_4 \} \| = \Div(100 d_2 + 99, 36525) \\ d_1 \| = \dfloorratio{ω_4}{100} \end{align}
\begin{align} \{ m_1, ω_5 \} \| = \Div(5 d_1 + 2, 153) \\ d_0 \| = \dfloorratio{ω_5}{5} \end{align}
\begin{equation} a_1 = 100 c_1 + a_2 \end{equation}
\begin{align} \{ α_1, m_0 \} \| = \Div(m_1 + 2, 12) \\ a \| = a_1 + α_1 \end{align}
\begin{align} m \| = m_0 + 1 \\ d \| = d_0 + 1 = \dfloorratio{ω_5}{5} + 1 \end{align}
Samengevat:
\begin{align} s \| = J − 1 721 120 \\ \{ c_1, ω_3 \} \| = \range{\Div(9 s + 2, 328 718)}{9} \\ d_2 \| = \dfloorratio{ω_3}{9} \\ \{ a_2, ω_4 \} \| = \Div(100 d_2 + 99, 36525) \\ d_1 \| = \dfloorratio{ω_4}{100} \\ \{ m_1, ω_5 \} \| = \Div(5 d_1 + 2, 153) \\ a_1 \| = 100 c_1 + a_2 \\ \{ α_1, m_0 \} \| = \Div(m_1 + 2, 12) \\ a \| = a_1 + α_1 \\ m \| = m_0 + 1 \\ d \| = \dfloorratio{ω_5}{5} + 1 \end{align}
Alternatief met groter bereik voor de berekening van \( c_1 \) en \( ω_3 \):
\begin{align} \{ ω_1, δ_1 \} \| = \Div(s, 328 718) \\ \{ ω_2, ω_3 \} \| = \Div(9 δ_1 + 2, 328 718) \\ c_1 \| = 9 ω_1 + ω_2 \end{align}
\begin{align*} s \| = J − 1 721 120 = 2 452 827 − 1 721 120 = 731 707 \\ \{ c_1, ω_3 \} \| = \range{\Div(9 s + 2, 328 718)}{9} = \Div(9×731 707 + 2, 328 718) \\ \| = \Div(6 585 365, 328 718) = \{ 20, 11005 \} \\ d_2 \| = \dfloorratio{ω_3}{9} = \dfloorratio{11005}{9} = 1222 \\ \{ a_2, ω_4 \} \| = \Div(100 d_2 + 99, 36525) = \Div(100×1222 + 99, 36525) \\ \| = \Div(122 299, 36525) = \{3, 12724\} \\ d_1 \| = \dfloorratio{ω_4}{100} = \dfloorratio{12724}{100} = 127 \\ \{ m_1, ω_5 \} \| = \Div(5 d_1 + 2, 153) = \Div(5×127 + 2, 153) \\ \| = \Div(637, 153) = \{4, 25\} \\ a_1 \| = 100 c_1 + a_2 = 100×20 + 3 = 2003 \\ \{ α_1, m_0 \} \| = \Div(m_1 + 2, 12) = \Div(4 + 2, 12) = \Div(6, 12) = \{ 0, 6 \} \\ a \| = a_1 + α_1 = 2003 + 0 = 2003 \\ m \| = m_0 + 1 = 6 + 1 = 7 \\ d \| = \dfloorratio{ω_5}{5} + 1 = \dfloorratio{25}{5} + 1 = 5 + 1 = 6 \end{align*}
De datum is 6 juli 2003.
Wat meer voorbeelden:
\({J}\) | \({s}\) | \({c_1}\) | \({ω_3}\) | \({d_2}\) | \({a_2}\) | \({ω_4}\) | \({d_1}\) | \({m_1}\) | \({ω_5}\) | \({a_1}\) | \({α_1}\) | \({m_0}\) | \({a}\) | \({m}\) | \({d}\) |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
−1 | −1721121 | −48 | 288377 | 32041 | 87 | 26524 | 265 | 8 | 103 | −4713 | 0 | 10 | −4713 | 11 | 21 |
0 | −1721120 | −48 | 288386 | 32042 | 87 | 26624 | 266 | 8 | 108 | −4713 | 0 | 10 | −4713 | 11 | 22 |
1 | −1721119 | −48 | 288395 | 32043 | 87 | 26724 | 267 | 8 | 113 | −4713 | 0 | 10 | −4713 | 11 | 23 |
1721060 | −60 | −1 | 328180 | 36464 | 99 | 30524 | 305 | 9 | 150 | −1 | 0 | 11 | −1 | 12 | 31 |
1721061 | −59 | −1 | 328189 | 36465 | 99 | 30624 | 306 | 10 | 2 | −1 | 1 | 0 | 0 | 1 | 1 |
1721119 | −1 | −1 | 328711 | 36523 | 99 | 36424 | 364 | 11 | 139 | −1 | 1 | 1 | 0 | 2 | 28 |
1721120 | 0 | 0 | 2 | 0 | 0 | 99 | 0 | 0 | 2 | 0 | 0 | 2 | 0 | 3 | 1 |
1721425 | 305 | 0 | 2747 | 305 | 0 | 30599 | 305 | 9 | 150 | 0 | 0 | 11 | 0 | 12 | 31 |
1721426 | 306 | 0 | 2756 | 306 | 0 | 30699 | 306 | 10 | 2 | 0 | 1 | 0 | 1 | 1 | 1 |
2299161 | 578041 | 15 | 271601 | 30177 | 82 | 22749 | 227 | 7 | 66 | 1582 | 0 | 9 | 1582 | 10 | 14 |
2299162 | 578042 | 15 | 271610 | 30178 | 82 | 22849 | 228 | 7 | 71 | 1582 | 0 | 9 | 1582 | 10 | 15 |
2305507 | 584387 | 15 | 328715 | 36523 | 99 | 36424 | 364 | 11 | 139 | 1599 | 1 | 1 | 1600 | 2 | 28 |
2305508 | 584388 | 16 | 6 | 0 | 0 | 99 | 0 | 0 | 2 | 1600 | 0 | 2 | 1600 | 3 | 1 |
2415079 | 693959 | 18 | 328709 | 36523 | 99 | 36424 | 364 | 11 | 139 | 1899 | 1 | 1 | 1900 | 2 | 28 |
2415080 | 693960 | 19 | 0 | 0 | 0 | 99 | 0 | 0 | 2 | 1900 | 0 | 2 | 1900 | 3 | 1 |
2451544 | 730424 | 19 | 328176 | 36464 | 99 | 30524 | 305 | 9 | 150 | 1999 | 0 | 11 | 1999 | 12 | 31 |
2451545 | 730425 | 19 | 328185 | 36465 | 99 | 30624 | 306 | 10 | 2 | 1999 | 1 | 0 | 2000 | 1 | 1 |
2451603 | 730483 | 19 | 328707 | 36523 | 99 | 36424 | 364 | 11 | 139 | 1999 | 1 | 1 | 2000 | 2 | 28 |
2451604 | 730484 | 19 | 328716 | 36524 | 99 | 36524 | 365 | 11 | 144 | 1999 | 1 | 1 | 2000 | 2 | 29 |
2451605 | 730485 | 20 | 7 | 0 | 0 | 99 | 0 | 0 | 2 | 2000 | 0 | 2 | 2000 | 3 | 1 |
2452827 | 731707 | 20 | 11005 | 1222 | 3 | 12724 | 127 | 4 | 25 | 2003 | 0 | 6 | 2003 | 7 | 6 |
2743797 | 1022677 | 27 | 328709 | 36523 | 99 | 36424 | 364 | 11 | 139 | 2799 | 1 | 1 | 2800 | 2 | 28 |
2743798 | 1022678 | 28 | 0 | 0 | 0 | 99 | 0 | 0 | 2 | 2800 | 0 | 2 | 2800 | 3 | 1 |
Merk op dat de jaren 1600 en 2800 wel schrikkeljaren zijn in de Gregoriaanse kalender (hoofdstuk 14.3) maar niet in de Milanković-kalender.
De oude Egyptenaren hadden een wel heel simpele kalender, zonder schrikkeljaren en met 30 dagen in elke maand behalve dat de laatste maand 5 dagen had.
Op het bovenste kalenderniveau heeft elk jaar 365 dagen. Op het onderste niveau heeft elke maand 30 dagen. De laatste maand heeft eigenlijk maar 5 dagen, maar dat krijgen we vanzelf door het bovenste kalenderniveau. We combineren de twee niveaus op de vlakke manier.
De kalenderniveau's zijn schematisch als volgt:
a ━━━━━━━━━━━━━━━━━━━━━┓ m ─(−1)─ m₀ ──┐ ┃ d ─(−1)─ d₀ ─(1)─ d₁ ─(2)━ s ━(+J₀)━ J
De samenvatting van de kalenderniveau's is
(n) | \({f}\) | \({g}\) | \({q}\) | \({h}\) | \({t}\) | \({p}\) |
---|---|---|---|---|---|---|
1 | 30 | 1 | 30 | 0 | 0 | 30 |
2 | 365 | 1 | 365 | 0 | 0 | 365 |
\begin{align} m_0 \| = m − 1 \\ d_0 \| = d − 1 \end{align}
\begin{align} d_1 \| = 30 m_0 + d_0 \\ \| = 30 (m − 1) + d − 1 \notag \\ \| = 30 m + d ― 31 \end{align}
\begin{equation} s = 365 a + d_1 \end{equation}
\begin{equation} J = s + J_0 = s + 1 448 273 \end{equation}
Samenvattend:
\begin{align} d_1 \| = 30 m + d − 31 \\ s \| = 365 a + d_1 \\ J \| = s + 1 448 273 \end{align}
\begin{align*} d_1 \| = 30 m + d − 31 = 30×5 + 7 − 31 = 126 \\ s \| = 365 a + d_1 = 365×218 + 126 = 79696 \\ J \| = s + 1 448 273 = 79696 + 1 448 273 = 1 527 969 \end{align*}
dus het antwoord is CJDN 1 527 969.
Nog een paar voorbeelden:
\({a}\) | \({m}\) | \({d}\) | \({d_1}\) | \({s}\) | \({J}\) |
---|---|---|---|---|---|
−1 | 13 | 5 | 364 | −1 | 1448272 |
0 | 1 | 1 | 0 | 0 | 1448273 |
0 | 13 | 5 | 364 | 364 | 1448637 |
1 | 1 | 1 | 0 | 365 | 1448638 |
1 | 1 | 30 | 29 | 394 | 1448667 |
1 | 2 | 1 | 30 | 395 | 1448668 |
218 | 5 | 7 | 126 | 79696 | 1527969 |
In omgekeerde richting zijn de berekeningen ook eenvoudig.
De kalenderniveau's zijn schematisch als volgt:
a ━━━━━━━━━━━━━━━━━━━━━┓ m ─(−1)─ m₀ ──┐ ┃ d ─(−1)─ d₀ ─(1)─ d₁ ─(2)━ s ━(+J₀)━ J
De samenvatting van de kalenderniveau's is
(n) | \({f}\) | \({g}\) | \({q}\) | \({h}\) | \({t}\) | \({p}\) |
---|---|---|---|---|---|---|
1 | 30 | 1 | 30 | 0 | 0 | 30 |
2 | 365 | 1 | 365 | 0 | 0 | 365 |
\begin{equation} s = J − J_0 = J − 1 448 273 \end{equation}
\begin{equation} \{ a, d_1 \} = \Div(s, 365) \end{equation}
\begin{equation} \{ m_0, d_0 \} = \Div(d_1, 30) \end{equation}
\begin{align} m \| = m_0 + 1 \\ d \| = d_0 + 1 \end{align}
Samenvattend:
\begin{align} s \| = J − 1 448 273 \\ \{ a, d_1 \} \| = \Div(s, 365) \\ \{ m_0, d_0 \} \| = \Div(d_1, 30) \\ m \| = m_0 + 1 \\ d \| = d_0 + 1 \end{align}
\begin{align*} s \| = J − J_0 = 1 527 969 − 1 448 273 = 79696 \\ \{ a, d_1 \} \| = \Div(79696, 365) = \{ 218, 126 \} \\ \{ m_0, d_0 \} \| = \Div(126, 30) = \{ 4, 6 \} \\ m \| = m_0 + 1 = 4 + 1 = 5 \\ d \| = d_0 + 1 = 6 + 1 = 7 \end{align*}
dus het is dag 7 van maand 5 van jaar 218. Nog een paar voorbeelden:
\({J}\) | \({s}\) | \({a}\) | \({d_1}\) | \({m_0}\) | \({d_0}\) | \({m}\) | \({d}\) |
---|---|---|---|---|---|---|---|
1448272 | −1 | −1 | 364 | 12 | 4 | 13 | 5 |
1448273 | 0 | 0 | 0 | 0 | 0 | 1 | 1 |
1448637 | 364 | 0 | 364 | 12 | 4 | 13 | 5 |
1448638 | 365 | 1 | 0 | 0 | 0 | 1 | 1 |
1448667 | 394 | 1 | 29 | 0 | 29 | 1 | 30 |
1448668 | 395 | 1 | 30 | 1 | 0 | 2 | 1 |
1527969 | 79696 | 218 | 126 | 4 | 6 | 5 | 7 |
De cyclus van Meton stelt dat 235 (synodische) maanden gelijk zijn aan 19 (tropische) jaren van elk 12 of 13 maanden, met 125 maanden van 30 dagen en 110 maanden van 29 dagen, dus in totaal 6940 dagen. De lange jaren (met 13 maanden) zijn het 1e, 4e, 7e, 9e, 12e, 15e en 18e jaar van elke cyclus. In het 18e jaar wordt maand 6 verdubbeld, en in de andere lange jaren wordt maand 12 verdubbeld. De eerste dag van de eerste maand (Nisannu) van het eerste jaar van de era van Seleukos komt overeen met 3 april −310 in de Juliaanse kalender, ofwel CJDN 1 607 923.
De Babyloniërs bepaalden het begin van elke maand aan de hand van waarnemingen. Ze gaven niet de eerste maand van elk jaar hetzelfde aantal dagen (en zo ook voor de andere maanden), maar varieerden wel het aantal maanden per jaar volgens bovenstaand schema. De verdeling van maanden over jaren ging dus onafhankelijk van de verdeling van dagen over maanden.
Als een kalender (deels) gebaseerd is op directe waarnemingen dan is hij een beetje onvoorspelbaar en kun je die niet helemaal vangen in formules. Dan hangt de kalender af van bijvoorbeeld het weer. Als het toevallig een keer flink bewolkt is dan zien de kalenderregelaars de maansikkel die avond niet maar pas de volgende avond en dan begint de nieuwe maand een dag later.
Wij leiden hier een kalender af die lijkt op die van de Babyloniërs maar die volledig voorspelbaar is. De afwijking ten opzichte van de historische kalender van de Babyloniërs zou meestal hooguit 1 dag moeten zijn.
Dat vraagt om een kalender met getrapte combinatie van een kalenderniveau tussen dag en maand en een kalenderniveau tussen maand en jaar. De berekeningen zijn schematisch:
a ━(−1)━ a₀ ━━┓ m ─(−1)─ m₀ ─(1)━ m₁ ━┓ d ─(−1)─ d₀ ─────────(2)━ s ━(+J₀)━ J
De samenvatting van de kalenderniveau's is
(n) | \({f}\) | \({g}\) | \({q}\) | \({h}\) | \({t}\) | \({p}\) |
---|---|---|---|---|---|---|
1 | 235 | 19 | 12 | 7 | 13 | 12.368421 |
2 | 6940 | 235 | 29 | 125 | 0 | 29.531915 |
\begin{align} a_0 \| = a − 1 \\ m_0 \| = m − 1 \\ d_0 \| = d − 1 \end{align}
\begin{align} m_1 \| = \dfloorratio{235 a_0 + 13}{19} + m_0 \\ \| = \dfloorratio{235 (a − 1) + 13}{19} + m − 1 \notag \\ \| = \dfloorratio{235 a − 235 + 13 − 19}{19} + m \notag \\ \| = \dfloorratio{235 a − 241}{19} + m \end{align}
\begin{equation} s = \range{\dfloorratio{6940 m_1}{235}}{235} + d_0 \end{equation}
Voor de \( \range{•}{235} \) zie hoofdstuk 13.4. Voor 32-bitsgetallen heeft die formule een bereik van ongeveer 50 duizend jaar. Als je het maximale bereik wilt hebben dan kun je het volgende alternatief gebruiken:
\begin{eqnarray} \{ ω_1, μ_1 \} \| = \| \Div(m_1, 235) \\ δ_1 \| = \| \dfloorratio{6940 μ_1}{235} \\ s \| = \| 6940 ω_1 + δ_1 + d_0 \end{eqnarray}
\({m_1}\) | \({ω_1}\) | \({μ_1}\) | \({δ_1}\) | \({s (d=0)}\) | \({6940 m_1}\) |
---|---|---|---|---|---|
−1 | −1 | 146096 | 3 | −1 | −1 |
0 | 0 | 0 | 0 | 0 | 3 |
1 | 0 | 1 | 0 | 0 | 7 |
45 | 0 | 45 | 1328 | 1328 | 312300 |
400204 | 1702 | 234 | 6910 | 11818790 | 2777415760 |
Voor \( m_1 = 400 204 \) geeft de orignele berekening het tussenresultaat \( 6940×400 204 = 2 777 415 760 \) dat te groot is om in een 32-bitsgetal (met teken) te passen, maar met de omweg is het eindresultaat 11 818 790, groter dan de tussenresultaten en ruim klein genoeg om in een 32-bitsgetal te passen.
\begin{equation} J = s + J_0 = s + 1 607 923 \end{equation}
Samenvattend:
\begin{align} m_1 \| = \dfloorratio{235 a − 241}{19} + m \\ s \| = \range{\dfloorratio{6940 m_1}{235}}{235} + d − 1 \\ J \| = s + J_0 = s + 1 607 923 \end{align}
Alternatief met meer bereik voor de berekening van \( s \):
\begin{align} \{ ω_1, μ_1 \} \| = \Div(m_1, 235) \\ δ_1 \| = \dfloorratio{6940 μ_1}{235} \\ s \| = 6940 ω_1 + δ_1 + d − 1 \end{align}
\begin{align*} m_1 \| = \dfloorratio{235 a − 241}{19} + m = \dfloorratio{235×3 − 241}{19} + 9 \\ \| = \dfloorratio{464}{19} + 9 = 24 + 9 = 33 \\ s \| = \range{\dfloorratio{6940 m_1}{235}}{235} + d − 1 = \dfloorratio{6940×33}{235} + 27 − 1 \\ \| = \dfloorratio{229 020}{235} + 26 = 974 + 26 = 1000 \\ J \| = s + J_0 = 1000 + 1 607 923 = 1 608 923 \end{align*}
Wat meer voorbeelden:
\({a}\) | \({m}\) | \({d}\) | \({m_1}\) | \({s}\) | \({J}\) |
---|---|---|---|---|---|
−1 | 1 | 1 | −25 | −739 | 1607184 |
0 | 1 | 1 | −12 | −355 | 1607568 |
1 | 1 | 1 | 0 | 0 | 1607923 |
1 | 2 | 1 | 1 | 29 | 1607952 |
1 | 3 | 1 | 2 | 59 | 1607982 |
2 | 1 | 1 | 13 | 383 | 1608306 |
3 | 9 | 27 | 33 | 1000 | 1608923 |
2315 | 3 | 1 | 28623 | 845292 | 2453215 |
Nu gaan we de andere kant op, van Juliaanse dagnummer \( J \) naar dag \( d \), maand \( m \), jaar \( a \) in de era van Seleukos.
a ━(−1)━ a₀ ━━┓ m ─(−1)─ m₀ ─(1)━ m₁ ━┓ d ─(−1)─ d₀ ─────────(2)━ s ━(+J₀)━ J
De samenvatting van de kalenderniveau's is
(n) | \({f}\) | \({g}\) | \({q}\) | \({h}\) | \({t}\) | \({p}\) |
---|---|---|---|---|---|---|
1 | 235 | 19 | 12 | 7 | 13 | 12.368421 |
2 | 6940 | 235 | 29 | 125 | 0 | 29.531915 |
\begin{equation} s = J − J_0 = J − 1 607 923 \end{equation}
\begin{align} \{ m_1, ω_2 \} \| = \range{\Div(235 s + 234, 6940)}{235} \\ d_0 \| = \dfloorratio{ω_2}{235} \end{align}
Voor de \( \range{•}{235} \) zie hoofdstuk 13.4. Voor 32-bitsgetallen heeft die formule een bereik van ongveer 50 duizend jaar. Als je het maximale bereik wilt hebben dan kun je het volgende alternatief gebruiken:
\begin{eqnarray} \{ ω_1, δ_1 \} \| = \| \Div(s, 6940) \\ \{ μ_1, ω_2 \} \| = \| \Div(235 δ_1 + 234, 6940) \\ m_1 \| = \| 235 ω_1 + μ_1 \end{eqnarray}
\({s}\) | \({ω_1}\) | \({δ_1}\) | \({μ_1}\) | \({ω_2}\) | \({m_1}\) | \({235 s + 234}\) |
---|---|---|---|---|---|---|
−1 | −1 | 6939 | 234 | 6939 | −1 | −1 |
0 | 0 | 0 | 0 | 234 | 0 | 234 |
1 | 0 | 1 | 0 | 469 | 0 | 469 |
11818819 | 1702 | 6939 | 234 | 6939 | 400204 | 2777422699 |
Voor \( s = 11 818 819 \) geeft de orignele berekening het tussenresultaat \( 235×11 818 819 + 234 = 2 777 422 699 \) dat te groot is om in een 32-bitsgetal (met teken) te passen, maar met de omweg is het eindresultaat 400 204 groter dan de tussenresultaten en ruim klein genoeg om in een 32-bitsgetal te passen.
\begin{align} \{ a_0, ω_3 \} \| = \Div(19 m_1 + 5, 235) \\ m_0 \| = \dfloorratio{ω_3}{19} \end{align}
\begin{align} a \| = a_0 + 1 \\ m \| = m_0 + 1 = \dfloorratio{ω_3}{19} + 1 \\ d \| = d_0 + 1 = \dfloorratio{ω_2}{235} + 1 \end{align}
We kunnen \( a \) ietsje sneller krijgen via
\begin{align} \{ a, ω_3 \} \| = \{ a_0 + 1, ω_3 \} = \Div(19 m_1 + 5 + 235, 235) = \Div(19 m_1 + 240, 235) \end{align}
Samenvattend:
\begin{align} s \| = J − J_0 = J − 1 607 923 \\ \{ m_1, ω_2 \} \| = \range{\Div(235 s + 234, 6940)}{235} \\ \{ a, ω_3 \} \| = \Div(19 m_1 + 240, 235) \\ m \| = \dfloorratio{ω_3}{19} + 1 \\ d \| = \dfloorratio{ω_2}{235} + 1 \end{align}
Alternatief met groter bereik voor de berekening van \( m_1 \) en \( ω_2 \):
\begin{align} \{ ω_1, δ_1 \} \| = \Div(s, 6940) \\ \{ μ_1, ω_2 \} \| = \Div(235 δ_1 + 234, 6940) \\ m_1 \| = 235 ω_1 + μ_1 \end{align}
\begin{align*} s \| = J − J_0 = 2 453 215 − 1 607 923 = 845 292 \\ \{ m_1, ω_2 \} \| = \range{\Div(235 s + 234, 6940)}{235} = \Div(235×845 292 + 234, 6940) \\ \| = \Div(198 643 854, 6940) = \{ 28623, 234 \} \\ \{ a, ω_3 \} \| = \Div(19 m_1 + 240, 235) = \Div(19×28623 + 240, 235) \\ \| = \Div(544077, 235) = \{ 2315, 52 \} \\ m \| = \dfloorratio{ω_3}{19} + 1 = \dfloorratio{52}{19} + 1 = 2 + 1 = 3 \\ d \| = \dfloorratio{ω_2}{235} + 1 = \dfloorratio{234}{235} + 1 = 0 + 1 = 1 \end{align*}
ofwel dag 1 van maand 3 van jaar 2315.
Wat meer voorbeelden:
\({J}\) | \({s}\) | \({m_1}\) | \({ω_2}\) | \({a}\) | \({ω_3}\) | \({m}\) | \({d}\) |
---|---|---|---|---|---|---|---|
1607184 | −739 | −25 | 69 | −1 | 0 | 1 | 1 |
1607568 | −355 | −12 | 89 | 0 | 12 | 1 | 1 |
1607923 | 0 | 0 | 234 | 1 | 5 | 1 | 1 |
1607952 | 29 | 1 | 109 | 1 | 24 | 2 | 1 |
1607982 | 59 | 2 | 219 | 1 | 43 | 3 | 1 |
1608306 | 383 | 13 | 19 | 2 | 17 | 1 | 1 |
1608923 | 1000 | 33 | 6214 | 3 | 162 | 9 | 27 |
2453215 | 845292 | 28623 | 234 | 2315 | 52 | 3 | 1 |
De Joodse kalender is een zongebonden maankalender, net als de Babylonische kalender. De Joodse kalender is veel ingewikkelder dan de Babylonische, want
Als het nodig is om aan te geven dat een jaartal uit de Joodse kalender komt dan wordt daarvoor A.M. (Anno Mundi, jaar van de wereld) gebruikt.
Een kalendermaand heeft 29 of 30 dagen, een kalenderjaar heeft 12 of 13 maanden, en een kalenderdag begint om 6 uur 's avonds.
Een kalenderjaar kan 6 verschillende lengtes hebben, namelijk 353, 354, 355, 383, 384 of 385 dagen. De jaren met 354 of 384 dagen heten regelmatig. De jaren met een dag meer dan dat heten volledig, en de jaren met een dag minder heten onvolledig. Jaren met 355 of minder dagen heten gewoon en jaren met meer dagen heten embolistisch.
Nieuwjaar is de dag waarop het jaartal eentje groter wordt. In de Joodse kalender is dat niet de eerste dag van maand nummer 1 maar de eerste dag van maand nummer 7, de maand tisjrie.
De epoche van de kalender (het begin van 1 tisjrie van het jaar A.M. 1) was om 6 uur 's avonds op zondag 6 oktober −3760 in de Juliaanse proleptische kalender, ofwel op CJD 347 997.75. Voor het verbinden van kalenderdagen uit verschillende kalenders houden wij de toestand op het midden van de dag aan (als de Zon het hoogst aan de hemel staat). Dat midden van de eerste dag (nieuwjaar) van de Joodse kalender was op maandag 7 oktober −3760 (CJDN 347 998 = \( J_0 \)).
\({a}\) | maand | \({m}\) | \({d}\) |
---|---|---|---|
−1 | tisjrie | 7 | 1 |
0 | tisjrie | 7 | 1 |
1 | tisjrie | 7 | 1 |
2 | tisjrie | 7 | 1 |
4524 | kisleew | 9 | 30 |
4527 | siewan | 3 | 1 |
4682 | kisleew | 9 | 12 |
4682 | adar | 13 | 29 |
4682 | niesan | 1 | 1 |
4682 | siewan | 3 | 18 |
4683 | tisjrie | 7 | 1 |
325709 | adar Ⅱ | 13 | 29 |
De berekeningen zijn schematisch als volgt:
a ━━━━━━━━━━[1]━ a₁ ━━━━━━┓ m ─(−1)─ m₀ ─┴───┃────────┨ [2]━ d₁ ━[3]━ d₂ ━┓ d ─(−1)─ d₀ ─────────────────────[4]━ s ━(+J₀)━ J
\begin{align*} m_0 \| = m − 1 \\ d_0 \| = d − 1 \end{align*}
\({a}\) | \({m}\) | \({d}\) | \({m_0}\) | \({d_0}\) |
---|---|---|---|---|
−1 | 7 | 1 | 6 | 0 |
0 | 7 | 1 | 6 | 0 |
1 | 7 | 1 | 6 | 0 |
2 | 7 | 1 | 6 | 0 |
4524 | 9 | 30 | 8 | 29 |
4527 | 3 | 1 | 2 | 0 |
4682 | 9 | 12 | 8 | 11 |
4682 | 13 | 29 | 12 | 28 |
4682 | 1 | 1 | 0 | 0 |
4682 | 3 | 18 | 2 | 17 |
4683 | 7 | 1 | 6 | 0 |
325709 | 13 | 29 | 12 | 28 |
\({m}\) | \({m_0}\) | \({a}\) |
---|---|---|
6 | 5 | \({a−1}\) |
7 | 6 | \({a}\) |
8 | 7 | \({a}\) |
9 | 8 | \({a}\) |
10 | 9 | \({a}\) |
11 | 10 | \({a}\) |
12 | 11 | \({a}\) |
(13) | (12) | \({a}\) |
1 | 0 | \({a}\) |
2 | 1 | \({a}\) |
3 | 2 | \({a}\) |
4 | 3 | \({a}\) |
5 | 4 | \({a}\) |
6 | 5 | \({a}\) |
7 | 6 | \({a+1}\) |
Het is lastig rekenen met de plotselinge afname van het maandnummer halverwege het jaar, temeer omdat het op een ingewikkelde manier van het jaar afhangt of kalendermaand 1 volgt na kalendermaand 12 of pas na kalendermaand 13 van dazelfde kalenderjaar, en bovendien kalendermaanden 8 en 9 niet in elk jaar dezelfde lengte hebben.
Het is daarom voor de berekeningen beter om kalendermaanden 1 t/m 6 te koppelen aan de nieuwjaarsdag (van het volgende kalenderjaar) die onmiddelijk na het eind van die maand 6 komt, in plaats van aan de nieuwjaarsdag van hun eigen kalenderjaar, die 6 of 7 maanden (van mogelijk wisselende lengte) vóór die kalendermaand 1 valt.
We gebruiken een rekenjaar dat begint met kalendermaand \( m = 1 \) dus rekenmaand \( m_0 = 0 \). Kalendermaanden 1 t/m 6 van het eind van kalenderjaar \( a − 1 \) tellen als rekenmaanden 0 t/m 5 van rekenjaar \( a \) waar de daaropvolgende kalendermaanden 7 t/m 12 of 13 en Nieuwjaar al bij horen. We krijgen dit voor elkaar met:
\begin{align} α_1(m_0) \| = \dfloorratio{12 − m_0}{7} \\ a_1(a, m_0) \| = a + α_1(m_0) \end{align}
\({a}\) | \({m}\) | \({d}\) | \({α_1}\) | \({a_1}\) | \({m_0}\) | \({d_0}\) |
---|---|---|---|---|---|---|
4682 | 13 | 29 | 0 | 4682 | 12 | 28 |
4682 | 1 | 1 | 1 | 4683 | 0 | 0 |
4682 | 2 | 1 | 1 | 4683 | 1 | 0 |
4682 | 3 | 1 | 1 | 4683 | 2 | 0 |
4682 | 4 | 1 | 1 | 4683 | 3 | 0 |
4682 | 5 | 1 | 1 | 4683 | 4 | 0 |
4682 | 6 | 1 | 1 | 4683 | 5 | 0 |
4682 | 6 | 29 | 1 | 4683 | 5 | 28 |
4683 | 7 | 1 | 0 | 4683 | 6 | 0 |
4683 | 8 | 1 | 0 | 4683 | 7 | 0 |
4683 | 9 | 1 | 0 | 4683 | 8 | 0 |
4683 | 10 | 1 | 0 | 4683 | 9 | 0 |
4683 | 11 | 1 | 0 | 4683 | 10 | 0 |
4683 | 12 | 1 | 0 | 4683 | 11 | 0 |
4683 | 12 | 30 | 0 | 4683 | 11 | 29 |
4683 | 1 | 1 | 1 | 4684 | 0 | 0 |
Voor rekenmaand \( m_0 = 8 \) vinden we \( α_1 = \dfloor{(12 − m_0)/7} = \dfloor{4/7} = 0 \) dus \( a_1 = a \). Voor rekenmaand \( m_0 = 4 \) vinden we \( α_1 = \dfloor{(12 − 4)/7} = 1 \) dus \( a_1 = a + 1 \). Zie bovenstaande tabel voor andere voorbeelden.
Voor de voorbeelddata vinden we
\({a}\) | \({m}\) | \({d}\) | \({α_1}\) | \({a_1}\) | \({m_0}\) | \({d_0}\) |
---|---|---|---|---|---|---|
−1 | 7 | 1 | 0 | −1 | 6 | 0 |
0 | 7 | 1 | 0 | 0 | 6 | 0 |
1 | 7 | 1 | 0 | 1 | 6 | 0 |
2 | 7 | 1 | 0 | 2 | 6 | 0 |
4524 | 9 | 30 | 0 | 4524 | 8 | 29 |
4527 | 3 | 1 | 1 | 4528 | 2 | 0 |
4682 | 9 | 12 | 0 | 4682 | 8 | 11 |
4682 | 13 | 29 | 0 | 4682 | 12 | 28 |
4682 | 1 | 1 | 1 | 4683 | 0 | 0 |
4682 | 3 | 18 | 1 | 4683 | 2 | 17 |
4683 | 7 | 1 | 0 | 4683 | 6 | 0 |
325709 | 13 | 29 | 0 | 325709 | 12 | 28 |
De embolistische jaren (kalenderjaren met 13 maanden) zijn het 3e, 6e, 8e, 11e, 14e, 17e en 19e jaar in elke cyclus van 19 jaar, die 235 maanden omvat. Het lopende maandnummer \( μ_2 \) van nieuwjaarsdag van jaar \( a_1 \) is gelijk aan
\begin{equation} μ_2(a_1) = \dfloorratio{235 a_1 − 234}{19} \label{eq:j2μ1} \end{equation}
\begin{align*} μ_2(a_1) \| = \dfloorratio{235 a_1 − 234}{19} = \dfloorratio{235×4682 − 234}{19} \\ \| = \dfloorratio{1 100 036}{19} = 57896 \end{align*}
dus Nieuwjaar van A.M. 4682 is 57896 maanden na nieuwjaar van A.M. 1.
Voor de voorbeelddata vinden we
\({a_1}\) | \({μ_2}\) |
---|---|
−1 | −25 |
0 | −13 |
1 | 0 |
2 | 12 |
4524 | 55942 |
4528 | 55991 |
4682 | 57896 |
4683 | 57909 |
325709 | 4028493 |
Het begin van het jaar wordt bepaald aan de hand van een middelbare conjunctie tussen de Zon en de Maan, waarbij de lengte van de synodische maand wordt gesteld op 29 en 13753/25920 dagen, ofwel 765 433/25920 dagen. De nieuwe maan aan het begin van de maand tisjrie (de nieuwjaarsmaand) van jaar A.M. 1 viel op 5 uur, 11 minuten en 20 seconden (= 5604/25920 dagen) na het begin van de eerste dag van die maand (en die begon om 6 uur 's avonds).
De tijd \( δ_1 \) in dagen die is verstreken tussen het begin van de eerste dag van die kalender en de nieuwe maan aan het begin van de maand met lopende maandnummer \( μ_2 \) is dan gelijk aan
\begin{equation} δ_1(μ_2) = \range{\dfrac{765 433 μ_2 + 5604}{25920}}{25920} = 29 μ_2 + \range{\dfrac{13753 μ_2 + 5604}{25920}}{465.7} \label{eq:μ} \end{equation}
Het lopende dagnummer \( δ_3 \) (ten opzichte van \( J_0 \)) van de kalenderdag waarop die nieuwe maan valt is dan
\begin{align} δ_3(μ_2) \| = \dfloor{δ_1(μ_2)} = \range{\dfloorratio{765 433 μ_2 + 5604}{25920}}{25920} \\ \| = 29 μ_2 + \range{\dfloorratio{13753 μ_2 + 5604}{25920}}{465.7} \end{align}
Voor de \( \range{•}{25920} \) zie hoofdstuk 13.4. Voor 32-bitgetallen heeft die formule een bereik van slechts 453 jaar. De \( \range{•}{465.7} \)-formule heeft een bereik van onheveer 25 duizend jaar. Als je het maximale bereik wilt hebben dan kun je het volgende alternatief gebruiken:
\begin{eqnarray} \{ ω_1, μ_1 \} \| = \| \Div(μ_2, 25920) \\ δ_3(μ_2) \| = \| 29 μ_2 + 13753 ω_1 + \dfloorratio{13753 μ_1 + 5604}{25920} \end{eqnarray}
\({a_1}\) | \({μ_2}\) | \({ω_1}\) | \({μ_1}\) | \({δ_3}\) | \({13753 μ_2 + 5604}\) |
---|---|---|---|---|---|
−1 | −25 | −1 | 25895 | −739 | −338221 |
0 | −13 | −1 | 25907 | −384 | −173185 |
1 | 0 | 0 | 0 | 0 | 5604 |
2 | 12 | 0 | 12 | 354 | 170640 |
4524 | 55942 | 2 | 4102 | 1652000 | 769375930 |
4528 | 55991 | 2 | 4151 | 1653447 | 770049827 |
4682 | 57896 | 2 | 6056 | 1709703 | 796249292 |
4683 | 57909 | 2 | 6069 | 1710087 | 796428081 |
16766 | 207356 | 7 | 25916 | 6123346 | 2851772672 |
325709 | 4028493 | 155 | 10893 | 118963791 | 55403869833 |
Voor \( μ_2 = 207 356 \) geeft de orignele berekening het tussenresultaat \( 13753×207 356 + 5604 = 2 851 772 672 \) dat te groot is om in een 32-bitsgetal (met teken) te passen, maar met de omweg is het eindresultaat 6 123 346 groter dan alle tussenresultaten, en ruim klein genoeg om in een 32-bitsgetal te passen.
Nu passen we waar nodig het voorlopige lopende dagnummer \( δ_3 \) aan voor vier mogelijke vertragingen.
De tijd van de dag volgt uit \( \dmodp{δ_1}{1} \), die gelijk is aan 0 bij het begin van de kalenderdag (om 6 uur 's avonds), en gelijk is aan 3/4 op het midden van de dag. Dus als \( \dmodp{δ_1}{1} ≥ 3/4 \), dan valt nieuwjaar één dag later. Als \( \dmodp{δ_1}{1} ≥ 3/4 \) dan is \( \dmodp{δ_1}{1} + 1/4 ≥ 1 \) dus \( \dfloor{δ_1 + \frac{1}{4}} = δ_3 + 1 \), dus het lopende dagnummer \( δ_4 \) van de eerste dag van de maand, inclusief de eerste vertraging, is
\begin{eqnarray} δ_4(μ_2) \| = \| \dfloor{δ_1(μ_2) + \frac{1}{4}} = \range{\dfloorratio{765 433 μ_2 + 12084}{25920}}{25920} \notag \\ \| = \| 29 μ_2 + \range{\dfloorratio{13753 μ_2 + 12084}{25920}}{465.7} \notag \\ \| = \| 29 μ_2 + 13753 ω_1 + \dfloorratio{13753 μ_1 + 12084}{25920} \label{eq:υ_1} \end{eqnarray}
\begin{align*} δ_4 \| = \range{\dfloorratio{765 433 μ_2 + 12084}{25920}}{25920} = \dfloorratio{765 433×57896 + 12084}{25920} \\ \| = \dfloorratio{44 315 521 052}{25920} = 1 709 703 = δ_3 \end{align*}
of
\begin{align*} \{ ω_1, μ_1 \} \| = \Div(μ_2, 25920) = \Div(57896, 25920) = \{ 2, 6056 \} \\ δ_4 \| = 29 μ_2 + 13753 ω_1 + \dfloorratio{13753 μ_1 + 12084}{25920} \\ \| = 29×57896 + 13753×2 + \dfloorratio{13753×6056 + 12084}{25920} \\ \| = 1 706 490 + \dfloorratio{83 300 252}{25920} = 1 706 490 + 3213 = 1 709 703 = δ_3 \end{align*}
dus voor dat jaar heeft de eerste vertraging geen invloed.
Voor de voorbeelddata vinden we
\({a_1}\) | \({μ_2}\) | \({δ_4}\) |
---|---|---|
−1 | −25 | −738 |
0 | −13 | −384 |
1 | 0 | 0 |
2 | 12 | 354 |
4524 | 55942 | 1652000 |
4528 | 55991 | 1653447 |
4682 | 57896 | 1709703 |
4683 | 57909 | 1710087 |
325709 | 4028493 | 118963792 |
\( δ_3 = δ_4 = 0 \) komt overeen met CJDN 347 998 en dat was een maandag, want \( \dmodp{347 998}{7} = 0 \) en 0 komt overeen met maandag. De tweede vertraging treedt op als
\begin{equation} δ_5(μ_2) = \dmodp{δ_4(μ_2)}{7} \end{equation}
gelijk is aan 2, 4 of 6.
We zoeken naar een formule die 0 oplevert als \( δ_5 \) gelijk is aan 0, 1, 3 of 5, en die 1 oplevert als \( δ_5 \) gelijk is aan 2, 4 of 6. Omdat we alleen waarden 0 en 1 als uitkomst willen ligt iets zoals \( \dmodp{·}{2} \) voor de hand. Dat we alleen hele getallen willen hebben duidt op iets van de vorm \( \dmodp{⌊...δ_5...⌋}{2} \). De simpelste formule die zou kunnen werken is dan \( \dmodp{⌊kδ_5⌋}{2}\) voor een geschikte factor \( k \). Enig zoekwerk levert op dat we de gewenste uitkomsten krijgen als \( 5/6 \lt k \lt 1 \). Enkele breuken met kleine noemers die geschikt zijn voor \( k \) zijn 6/7, 7/8, 8/9, 9/10, 10/11, 11/12. De breuk met noemer 7 heeft de kleinste noemer en heeft als voordeel dat die ook de goede waarde oplevert als je \( \dmodp{⌊kδ_4⌋}{2} \) uitrekent in plaats van \( \dmodp{⌊k\dmodp{δ_4}{7}⌋}{2} \): dat scheelt weer een modulus-berekening. Daarmee is het lopende dagnummer \( δ_6 \) van de eerste dag van de maand, inclusief de eerste twee vertragingen, gelijk aan
\begin{equation} δ_6(μ_2) = δ_4(μ_2) + \dmodp{\range{\dfloorratio{6 δ_4(μ_2)}{7}}{6}}{2} \label{eq:υ_2} \end{equation}
Voor de \( \range{•}{6} \) zie hoofdstuk 13.4. Voor 32-bitsgetallen is het bereik van de daardoor omsloten formule ongeveer 980 000 jaar. Als dat te weinig is, dan kun je alsnog \( \dmodp{\dfloor{k\dmodp{δ_4}{7}}}{2} \) gebruiken:
\begin{equation} δ_6(μ_2) = δ_4(μ_2) + \dmodp{\dfloorratio{6\dmodp{δ_4(μ_2)}{7}}{7}}{2} \end{equation}
De lengte \( L_2(a_1) \) van jaar \( a_1 \) (met inachtneming van de eerste twee vertragingen) is gelijk aan
\begin{equation} L_2(a_1) = δ_6(μ_2(a_1 + 1)) − δ_6(μ_2(a_1)) \end{equation}
dus nieuwjaar van jaar \( a_1 \) wordt 2 dagen vertraagd als \( L_2(a_1) = 356 \). Dit krijgen we voor elkaar met formule
\begin{equation} δ_7(a_1) = 2\dmodp{\dfloorratio{L_2(a_1) + 19}{15}}{2} \end{equation}
\({L_2}\) | \({δ_7}\) |
---|---|
353 | 0 |
354 | 0 |
355 | 0 |
356 | 2 |
382 | 0 |
383 | 0 |
384 | 0 |
385 | 0 |
Dus nieuwjaar van jaar \( a_1 \) wordt 1 dag vertraagd als \( L_2(a_1 − 1) = 382 \). Dit krijgen we voor elkaar met formule
\begin{equation} δ_8(a_1) = \dmodp{\dfloorratio{L_2(a_1 − 1) + 7}{15}}{2} \end{equation}
\({L_2}\) | \({δ_8}\) |
---|---|
353 | 0 |
354 | 0 |
355 | 0 |
356 | 0 |
382 | 1 |
383 | 0 |
384 | 0 |
385 | 0 |
dus het lopende dagnummer \( d_1 \) van Nieuwjaar, met inachtneming van alle vier de vertragingen, gemeten ten opzichte van \( J_0 \), is
\begin{align} μ_2(a_1) \| = \dfloorratio{235 a_1 − 234}{19} \\ \{ ω_1(μ_2), μ_1(μ_2) \} \| = \Div(μ_2, 25920) \\ δ_4(μ_2) \| = \range{\dfloorratio{765 433 μ_2 + 12084}{25920}}{25920} \notag \\ \| = 29 μ_2 + \range{\dfloorratio{13753 μ_2 + 12084}{25920}}{465.7} \notag \\ \| = 29 μ_2 + 13753 ω_1(μ_2) + \dfloorratio{13753 μ_1(μ_2) + 12084}{25920} \\ δ_6(μ_2) \| = δ_4(μ_2) + \dmodp{\range{\dfloorratio{6 δ_4(μ_2)}{7}}{6}}{2} \notag \\ \| = δ_4(μ_2) + \dmodp{\dfloorratio{6 \dmodp{δ_4(μ_2)}{7}}{7}}{2} \\ L_2(a_1) \| = δ_6(μ_2(a_1 + 1)) − δ_6(μ_2(a_1)) \\ d_1(a_1) \| = δ_6(μ_2(a_1)) + δ_7(a_1) + δ_8(a_1) \notag \\ \| = δ_6(μ_2(a_1)) + 2\dmodp{\dfloorratio{L_2(a_1) + 19}{15}}{2} \notag \\ \| + \dmodp{\dfloorratio{L_2(a_1 − 1) + 7}{15}}{2} \notag \\ \| = δ_6(μ_2(a_1)) + 2\dmodp{\dfloorratio{δ_6(μ_2(a_1 + 1)) − δ_6(μ_2(a_1)) + 19}{15}}{2} \notag \\ \| + \dmodp{\dfloorratio{δ_6(μ_2(a_1)) − δ_6(μ_2(a_1 − 1)) + 7}{15}}{2} \end{align}
Merk op dat voor de berekening van \( d_1 \) van jaar \( a_1 \) de waarden van \( δ_6(μ_2(a_1 − 1)) \), \( δ_6(μ_2(a_1)) \) en \( δ_6(μ_2(a_1 + 1)) \) nodig zijn.
We weten nu het lopende dagnummer \( d_1(a_1) \) van nieuwjaar (1 tisjrie) van het jaar \( a_1 \).
De lengte \( L(a_1) \) van jaar \( a_1 \) is dan
\begin{equation} L(a_1) = d_1(a_1 + 1) − d_1(a_1) \end{equation}
Voor de berekening van \( L(a_1) \) heb je \( δ_6 \) nodig voor de 4 jaren \( a_1 − 1 \) tot en met \( a_1 + 2 \).
Er zijn geen jaren waarvoor \( L_2(a_1) = 356 \) en tegelijkertijd \( L_2(a_1 − 1) = 382 \), dus de derde en vierde vertraging worden nooit tegelijkertijd toegepast.
Sommige maandlengtes hangen af van de lengte van het jaar. Met alle vertragingen erbij kunnen jaren alleen de volgende lengtes hebben: 353, 354, 355, 383, 384 of 385 dagen.
\begin{align*} δ_6 \| = δ_4 + \dmodp{\dfloorratio{6 δ_4}{7}}{2} \\ \| = 1 709 703 + \dmodp{\dfloorratio{6×1 709 703}{7}}{2} \\ \| = 1 709 703 + \dmodp{\dfloorratio{10 258 218}{7}}{2} \\ \| = 1 709 703 + \dmodp{1 465 459}{2} = 1 709 703 + 1 = 1 709 704 \end{align*}
dus de tweede vertraging heeft wel effect. De lengte van jaar \( a_1 = 4682 \) na de eerste twee vertragingen is \( L_2(4682) = δ_6(4683) − δ_6(4682) = 1 710 087 − 1 709 704 = 383 \) dagen. Het jaar met \( a_1 = 4683 \) heeft een lengte (na de eerste twee vertragingen) van 356 dagen, dus de derde vertraging is van toepassing, en nieuwjaar van dat jaar wordt 2 dagen later. De uitkomsten voor dat en een paar andere jaren staan in de volgende tabel. De kolom met titel "v" noemt de nummers van de vertragingen die actief waren.
Wat meer voorbeelden:
\({a_1}\) | \({μ_2}\) | \({δ_3}\) | \({δ_4}\) | \({δ_6}\) | \({L_2}\) | \({δ_7}\) | \({δ_8}\) | \({d_1}\) | \({L}\) | v |
---|---|---|---|---|---|---|---|---|---|---|
−1 | −25 | −739 | −738 | −737 | 353 | 0 | 0 | −737 | 353 | 1,2 |
0 | −13 | −384 | −384 | −384 | 384 | 0 | 0 | −384 | 384 | |
1 | 0 | 0 | 0 | 0 | 355 | 0 | 0 | 0 | 355 | |
2 | 12 | 354 | 354 | 355 | 355 | 0 | 0 | 355 | 355 | 2 |
4523 | 55930 | 1651646 | 1651646 | 1651646 | 354 | 0 | 0 | 1651646 | 354 | |
4524 | 55942 | 1652000 | 1652000 | 1652000 | 355 | 0 | 0 | 1652000 | 355 | |
4525 | 55954 | 1652355 | 1652355 | 1652355 | 385 | 0 | 0 | 1652355 | 385 | |
4526 | 55967 | 1652738 | 1652739 | 1652740 | 353 | 0 | 0 | 1652740 | 353 | 1,2 |
4527 | 55979 | 1653093 | 1653093 | 1653093 | 354 | 0 | 0 | 1653093 | 354 | |
4528 | 55991 | 1653447 | 1653447 | 1653447 | 385 | 0 | 0 | 1653447 | 385 | |
4681 | 57884 | 1709349 | 1709349 | 1709349 | 355 | 0 | 0 | 1709349 | 355 | |
4682 | 57896 | 1709703 | 1709703 | 1709704 | 383 | 0 | 0 | 1709704 | 385 | 2 |
4683 | 57909 | 1710087 | 1710087 | 1710087 | 356 | 2 | 0 | 1710089 | 354 | 3 |
4684 | 57921 | 1710441 | 1710442 | 1710443 | 353 | 0 | 0 | 1710443 | 353 | 1,2 |
5517 | 68224 | 2014695 | 2014695 | 2014696 | 355 | 0 | 0 | 2014696 | 355 | 2 |
5518 | 68236 | 2015049 | 2015050 | 2015051 | 382 | 0 | 0 | 2015051 | 383 | 1,2 |
5519 | 68249 | 2015433 | 2015433 | 2015433 | 355 | 0 | 1 | 2015434 | 354 | 4 |
5520 | 68261 | 2015788 | 2015788 | 2015788 | 355 | 0 | 0 | 2015788 | 355 | |
325708 | 4028481 | 118963437 | 118963437 | 118963437 | 355 | 0 | 0 | 118963437 | 355 | |
325709 | 4028493 | 118963791 | 118963792 | 118963792 | 385 | 0 | 0 | 118963792 | 385 | 1 |
325710 | 4028506 | 118964175 | 118964176 | 118964177 | 354 | 0 | 0 | 118964177 | 354 | 1,2 |
325711 | 4028518 | 118964530 | 118964530 | 118964531 | 353 | 0 | 0 | 118964531 | 353 | 2 |
De eerste vertraging hangt af van de tijd op de dag, en de tweede vertraging van de dag in de week, dus die twee vertragingen samen hangen af van de tijd sinds het begin van de week. De embolistische jaren hangen af van het jaar in de huidige cyclus van 19 jaar = 235 maanden. De kalender als geheel herhaalt zich weer als een geheel aantal weken samenvalt met een geheel aantal cycli. De cyclus is 235×765 433/25920 = 35 975 351/5184 dagen lang, dus elke periode van 5184 cycli omvat een geheel aantal dagen, namelijk 35 975 351. Dit aantal dagen is geen veelvoud van 7, dus de kalender herhaalt zich pas weer na 7×35 975 351 = 251 827 457 dagen = 35 975 351 weken = 689 472 jaren = 8 527 680 maanden.
De verdeling van de lengtes van de kalenderjaren in die periode van 689 472 jaar staan in de volgende tabel, met daarbij genoemd hoeveel van die jaren die lengte hebben als je verschillende mogelijke vertragingen meetelt.
\({L}\) | \({δ_3}\) | \({δ_4}\) | \({δ_6}\) | \({δ_7}\) | \({d_1}\) |
---|---|---|---|---|---|
353 | 78738 | 69222 | 69222 | ||
354 | 275 583 | 275 583 | 140 946 | 163 785 | 167 497 |
355 | 159 873 | 159 873 | 192 933 | 202 449 | 198 737 |
356 | 22839 | ||||
382 | 3712 | 3712 | |||
383 | 25984 | 25984 | 116 288 | 102 965 | 106 677 |
384 | 228 032 | 228 032 | 36288 | 36288 | 36288 |
385 | 97728 | 111 051 | 111 051 | ||
De volgende tabel toont van hoeveel jaren uit de grote periode van 689 472 het nieuwjaar wordt beïnvloed door de vertragingen genoemd in de kolom met titel "v".
v | # | % |
---|---|---|
− | 268 937 | 39.0 |
1 | 172 368 | 25.0 |
2 | 295 488 | 42.9 |
3 | 22839 | 3.3 |
4 | 3712 | 0.5 |
1+2 | 73872 | 10.7 |
rest | 0 | 0 |
Nieuwjaar kan tegelijkertijd vertraagd worden door de eerste en tweede vertragingen, maar niet door een andere combinatie van meer dan één vertraging.
De volgende tabel toont hoeveel jaren er kunnen zijn tussen twee opeenvolgende gevallen van een bepaalde combinatie van vertragingen. Bijvoorbeeld, de tijd tussen twee nieuwjaren die vertraagd werden door alleen de 2e vertraging varieert tussen 1 en 7 jaar met een gemiddelde van 2,33 jaar.
v | min | max | gemiddeld |
---|---|---|---|
- | 1 | 7 | 2.56 |
1 | 1 | 16 | 4.00 |
2 | 1 | 7 | 2.33 |
3 | 7 | 71 | 30.19 |
4 | 78 | 345 | 185.73 |
1+2 | 3 | 53 | 9.33 |
De volgende tabel toont hoe vaak een jaar met een bepaalde lengte volgt op een jaar met dezelfde of een andere bepaalde lengte. Het huidige jaar staat horizontaal en het volgende jaar staat vertikaal. Bijvoorbeeld, dat een jaar van 354 dagen gevolgd wordt door een jaar van 383 dagen komt 40000 keer voor in de grote periode van 689 472 jaar.
353 | 354 | 355 | 383 | 384 | 385 | |
---|---|---|---|---|---|---|
353 | 0 | 16404 | 16404 | 0 | 0 | 36414 |
354 | 13776 | 0 | 54468 | 53354 | 0 | 45899 |
355 | 9516 | 54491 | 16381 | 53323 | 36288 | 28738 |
383 | 0 | 40000 | 66677 | 0 | 0 | 0 |
384 | 29965 | 0 | 13323 | 0 | 0 | 0 |
385 | 22965 | 56602 | 31484 | 0 | 0 | 0 |
De maandlengtes zijn als volgt, in jaren met verschillende lengtes:
\({m_0}\) | Naam | 353 | 354 | 355 | 383 | 384 | 385 |
---|---|---|---|---|---|---|---|
0 | niesan | 30 | 30 | 30 | 30 | 30 | 30 |
1 | ijar | 29 | 29 | 29 | 29 | 29 | 29 |
2 | siewan | 30 | 30 | 30 | 30 | 30 | 30 |
3 | tammoez | 29 | 29 | 29 | 29 | 29 | 29 |
4 | aaw | 30 | 30 | 30 | 30 | 30 | 30 |
5 | elloel | 29 | 29 | 29 | 29 | 29 | 29 |
6 | tisjrie | 30 | 30 | 30 | 30 | 30 | 30 |
7 | chesjwan | 29 | 29 | 30 | 29 | 29 | 30 |
8 | kisleew | 29 | 30 | 30 | 29 | 30 | 30 |
9 | teweet | 29 | 29 | 29 | 29 | 29 | 29 |
10 | sjewat | 30 | 30 | 30 | 30 | 30 | 30 |
-/11 | adar Ⅰ | 30 | 30 | 30 | |||
11/12 | adar (Ⅱ) | 29 | 29 | 29 | 29 | 29 | 29 |
De lengte van een kalenderjaar is gelijk aan de lengte van het rekenjaar met datzelfde nummer, en de lengtes van kalendermaanden 1 t/m 6 (die een ander rekenjaar dan kalenderjaar hebben) zijn onafhankelijk van het jaartal, dus om in bovenstaande tabel de juiste kolom te kiezen om de lengte van een mand te bepalen kun je net zo goed \( L(a_1) \) als \( L(a) \) gebruiken.
In een jaar met 13 maanden wordt de embolistische (extra) maand adar Ⅰ ingevoegd tussen sjewat en de originele adar, die dan adar Ⅱ heet.
De lengtes van de maanden passen niet in een simpele kalender (van type 1 of 2 uit hoofdstuk 13.13), want het aantal opeenvolgende maanden met dezelfde lengte verschilt meer dan één. In de eerste zeven maanden is het aantal opeenvolgende maanden met dezelfde lengte steeds gelijk aan 1, maar daarna is dat aantal soms gelijk aan 3. Bijvoorbeeld, maanden 8 t/m 10 in een jaar van 353 of 383 dagen zijn allemaal 29 dagen lang, en maanden 7 t/m 9 in een jaar van 355 of 385 dagen zijn allemaal 30 dagen lang.
De lengtes die de maanden in een jaar van 384 dagen hebben passen bij de formule
\begin{equation} δ_9(m_0) = \dfloorratio{384 m_0 + 7}{13} \end{equation}
waarbij \( m_0 \) het rekenmaandnummer is en \( δ_9(m_0) \) het dagnummer van de eerste dag van die maand is sinds de eerste dag van maand 1. Let op: in een jaar van 12 maanden geven wij maand adar het rekenmaandnummer \( m_0 = 11 \) maar in een jaar van 13 maanden geven wij adar (die dan adar Ⅱ genoemd wordt) het rekenmaandnummer \( m_0 = 12 \).
\({m_0}\) | \({δ_9}\) | \({\D δ_9}\) |
---|---|---|
0 | 0 | 30 |
1 | 30 | 29 |
2 | 59 | 30 |
3 | 89 | 29 |
4 | 118 | 30 |
5 | 148 | 29 |
6 | 177 | 30 |
7 | 207 | 29 |
8 | 236 | 30 |
9 | 266 | 29 |
10 | 295 | 30 |
11 | 325 | 30 |
12 | 355 | 29 |
Deze formule kan ook gebruikt worden voor de maandlengtes in een jaar van 354 dagen, als de lengte van het jaar de 12e maand (\( m_0 = 11 \)) verkort tot 29 dagen.
Een correctie op deze formule is nodig voor jaren die een lengte \( L \) ongelijk aan 354 of 384 dagen hebben. In een jaar met 353 of 383 dagen moet rekenmaand 8 een dag korter worden. In een jaar met 355 of 385 dagen moet rekenmaand 7 een dag langer worden. De correcties \( δ_{10} \) voor maand 7 en \( δ_{11} \) voor maand 8 als functie van de jaarlengte \( L \) zijn
\({L}\) | \({δ_{10}}\) | \({δ_{11}}\) |
---|---|---|
353 | 0 | −1 |
354 | 0 | 0 |
355 | 1 | 0 |
383 | 0 | −1 |
384 | 0 | 0 |
385 | 1 | 0 |
We vinden de volgende formules voor deze correcties:
\begin{align} δ_{10}(a_1) \| = \dmodp{\dfloorratio{L(a_1) + 1}{2}}{3} \\ δ_{11}(a_1) \| = −\dmodp{\dfloorratio{385 − L(a_1)}{2}}{3} \end{align}
De \( δ_{10} \)-correctie is van toepassing op het begin van rekenmaanden 8 t/m 12, en de \( δ_{11} \)-correctie op het begin van rekenmaanden 9 t/m 12. In de volgende tabel geeft \( ω_2 \) aan (met waarde 1) op welke maanden de \( δ_{10} \)-correctie van toepassing is, en \( ω_3 \) voor de \( δ_{10 }\)-correctie.
\({m_0}\) | \({ω_2}\) | \({ω_3}\) |
---|---|---|
0 | 0 | 0 |
1 | 0 | 0 |
2 | 0 | 0 |
3 | 0 | 0 |
4 | 0 | 0 |
5 | 0 | 0 |
6 | 0 | 0 |
7 | 0 | 0 |
8 | 1 | 0 |
9 | 1 | 1 |
10 | 1 | 1 |
11 | 1 | 1 |
12 | 1 | 1 |
Dat krijgen we met formules
\begin{align} ω_2(m_0) \| = \dfloorratio{m_0 + 4}{12} \\ ω_3(m_0) \| = \dfloorratio{m_0 + 3}{12} \end{align}
Daarmee wordt de formule om van kalendermaandnummer \( m_0 \) te gaan naar het dagnummer \( δ_{12} \) van de eerste dag van die maand sinds de eerste dag van het rekenjaar:
\begin{align} \| δ_{12}(a_1, m_0) = δ_9(m_0) + ω_2(m_0) δ_{10}(a_1) + ω_3(m_0) δ_{11}(a_1) \notag \\ \| = \dfloorratio{384 m_0 + 7}{13} + \dmodp{\dfloorratio{L(a_1) + 1}{2}}{3} \dfloorratio{m_0 + 4}{12} \notag \\ \| − \dmodp{\dfloorratio{385 − L(a_1)}{2}}{3} \dfloorratio{m_0 + 3}{12} \end{align}
\begin{align*} δ_9(m_0) \| = \dfloorratio{384 m_0 + 7 }{13} = \dfloorratio{384×8 + 7}{13} = \dfloorratio{3079}{13} = 236 \\ δ_{10}(a_1) \| = \dmodp{\dfloorratio{L(a_1) + 1}{2}}{3} = \dmodp{\dfloorratio{386}{2}}{3} = \dmodp{193}{3} = 1 \\ δ_{11}(a_1) \| = −\dmodp{\dfloorratio{385 − L(a_1)}{2}}{3} = −\dmodp{\dfloorratio{385 − 385}{2}}{3} = 0 \\ ω_2(m_0) \| = \dfloorratio{m_0 + 4}{12} = \dfloorratio{8 + 4}{12} = \dfloorratio{12}{12} = 1 \\ ω_3(m_0) \| = \dfloorratio{m_0 + 3}{12} = \dfloorratio{8 + 3}{12} = \dfloorratio{11}{12} = 0 \\ δ_{12}(a_1, m_0) \| = δ_9(m_0) + ω_2(m_0) δ_{10}(a_1) + ω_3(m_0) δ_{11}(a_1) = 236 + 1×1 − 0×0 = 237 \end{align*}
Voor de voorbeelddata vinden we
\({a_1}\) | \({m_0}\) | \({L}\) | \({δ_9}\) | \({δ_{10}}\) | \({δ_{11}}\) | \({ω_2}\) | \({ω_3}\) | \({δ_{12}}\) |
---|---|---|---|---|---|---|---|---|
−1 | 6 | 353 | 177 | 0 | −1 | 0 | 0 | 177 |
0 | 6 | 384 | 177 | 0 | 0 | 0 | 0 | 177 |
1 | 6 | 355 | 177 | 1 | 0 | 0 | 0 | 177 |
2 | 6 | 355 | 177 | 1 | 0 | 0 | 0 | 177 |
4524 | 8 | 355 | 236 | 1 | 0 | 1 | 0 | 237 |
4528 | 2 | 385 | 59 | 1 | 0 | 0 | 0 | 59 |
4682 | 8 | 385 | 236 | 1 | 0 | 1 | 0 | 237 |
4682 | 12 | 385 | 355 | 1 | 0 | 1 | 1 | 356 |
4683 | 0 | 354 | 0 | 0 | 0 | 0 | 0 | 0 |
4683 | 2 | 354 | 59 | 0 | 0 | 0 | 0 | 59 |
4683 | 6 | 354 | 177 | 0 | 0 | 0 | 0 | 177 |
325709 | 12 | 385 | 355 | 1 | 0 | 1 | 1 | 356 |
De lengte van kalendermaanden 1 t/m 6 is in elk jaar hetzelfde. Hun gezamenlijke lengte is 177 dagen. Daarom is de eerste dag van het rekenjaar (rekendag 0 van rekenmaand 0) altijd 177 dagen vóór nieuwjaar van datzelfde rekenjaar (rekendag 0 van rekenmaand 6), en daarom is de lengte van een rekenjaar gelijk aan de lengte van het kalenderjaar met hetzelfde nummer. Daarmee is het lopende dagnummer \( δ_{13} \) van de eerste dag (1 nisan) van rekenjaar \( a_1 \), ten opzichte van \( J_0 \):
\begin{equation} δ_{13}(a_1) = d_1(a_1) − 177 \end{equation}
Daarmee is het lopende dagnummer \( d_2(a_1, m_0) \) van de eerste dag van rekenmaand \( m_0 \) van rekenjaar \( a_1 \), gemeten sinds \( J_0 \) (1 tisjrie van kalenderjaar 1):
\begin{equation} d_2(a_1, m_0) = δ_{13}(a_1) + δ_{12}(a_1, m_0) = d_1(a_1) − 177 + δ_{12}(a_1, m_0) \label{eq:hebd2} \end{equation}
\[ d_2(a_1, m_0) = d_1(4682) − 177 + δ_{12}(4682, 8) = 1 709 704 − 177 + 237 = 1 709 764 \]
Voor de voorbeelddata vinden we
\({a_1}\) | \({m_0}\) | \({d_0}\) | \({d_1}\) | \({δ_{12}}\) | \({δ_{13}}\) | \({d_2}\) |
---|---|---|---|---|---|---|
−1 | 6 | 0 | −737 | 177 | −914 | −737 |
0 | 6 | 0 | −384 | 177 | −561 | −384 |
1 | 6 | 0 | 0 | 177 | −177 | 0 |
2 | 6 | 0 | 355 | 177 | 178 | 355 |
4524 | 8 | 29 | 1652000 | 237 | 1651823 | 1652060 |
4528 | 2 | 0 | 1653447 | 59 | 1653270 | 1653329 |
4682 | 8 | 11 | 1709704 | 236 | 1709527 | 1709763 |
4682 | 12 | 28 | 1709704 | 356 | 1709527 | 1709883 |
4683 | 0 | 0 | 1710089 | 0 | 1709912 | 1709912 |
4683 | 2 | 17 | 1710089 | 59 | 1709912 | 1709971 |
4683 | 6 | 0 | 1710089 | 177 | 1709912 | 1710089 |
325709 | 12 | 28 | 118963792 | 356 | 118963615 | 118963971 |
\begin{equation} s = d_2(a_1, m_0) + d_0 \end{equation}
\[ s = 1 709 764 + 11 = 1 709 775 \]
Voor de voorbeelddata vinden we
\({a_1}\) | \({m_0}\) | \({d_0}\) | \({d_2}\) | \({s}\) |
---|---|---|---|---|
−1 | 6 | 0 | −737 | −737 |
0 | 6 | 0 | −384 | −384 |
1 | 6 | 0 | 0 | 0 |
2 | 6 | 0 | 355 | 355 |
4524 | 8 | 29 | 1652060 | 1652089 |
4528 | 2 | 0 | 1653329 | 1653329 |
4682 | 8 | 11 | 1709764 | 1709775 |
4682 | 12 | 28 | 1709883 | 1709911 |
4683 | 0 | 0 | 1709912 | 1709912 |
4683 | 2 | 17 | 1709971 | 1709988 |
4683 | 6 | 0 | 1710089 | 1710089 |
325709 | 12 | 28 | 118963971 | 118963999 |
\begin{equation} J = s + J_0 = s + 347 998 \end{equation}
\[ J = 1 709 775 + 347 998 = 2 057 773 \]
dus de CJDN die overeenkomt met 12 kislev 4682 is 2 057 773.
Voor de voorbeelddata vinden we
\({a}\) | \({m}\) | \({d}\) | \({s}\) | \({J}\) |
---|---|---|---|---|
−1 | 7 | 1 | −737 | 347261 |
0 | 7 | 1 | −384 | 347614 |
1 | 7 | 1 | 0 | 347998 |
2 | 7 | 1 | 355 | 348353 |
4524 | 9 | 30 | 1652089 | 2000087 |
4527 | 3 | 1 | 1653329 | 2001327 |
4682 | 9 | 12 | 1709775 | 2057773 |
4682 | 13 | 29 | 1709911 | 2057909 |
4682 | 1 | 1 | 1709912 | 2057910 |
4682 | 3 | 18 | 1709988 | 2057986 |
4682 | 7 | 1 | 1709704 | 2057702 |
325709 | 13 | 29 | 118963999 | 119311997 |
Samenvattend:
\begin{align} m_0 \| = m − 1 \\ a_1 \| = a + \dfloorratio{12 − m_0}{7} \\ μ_2(a_1) \| = \dfloorratio{235 a_1 − 234}{19} \\ δ_4(μ_2) \| = \range{\dfloorratio{765 433 μ_2 + 12084}{25920}}{25920} \\ δ_6(μ_2) \| = δ_4(μ_2) + \dmodp{\range{\dfloorratio{6 δ_4(μ_2)}{7}}{6}}{2} \\ L_2(a_1) \| = δ_6(μ_2(a_1 + 1)) − δ_6(μ_2(a_1)) \\ δ_7(a_1) \| = 2\dmodp{\dfloorratio{L_2(a_1) + 19}{15}}{2} \\ δ_8(a_1) \| = \dmodp{\dfloorratio{L_2(a_1 − 1) + 7}{15}}{2} \\ d_1(a_1) \| = δ_6(μ_2(a_1)) + δ_7(a_1) + δ_8(a_1) \\ L(a_1) \| = d_1(a_1 + 1) − d_1(a_1) \\ δ_9(m_0) \| = \dfloorratio{384 m_0 + 7}{13} \\ δ_{10}(a_1) \| = \dmodp{\dfloorratio{L(a_1) + 1}{2}}{3} \\ δ_{11}(a_1) \| = −\dmodp{\dfloorratio{385 − L(a_1)}{2}}{3} \\ ω_2(m_0) \| = \dfloorratio{m_0 + 4}{12} \\ ω_3(m_0) \| = \dfloorratio{m_0 + 3}{12} \\ δ_{12}(a_1, m_0) \| = δ_9(m_0) + ω_2(m_0)δ_{10}(a_1) + ω_3(m_0)δ_{11}(a_1) \\ d_2(a_1,m_0) \| = d_1(a_1) − 177 + δ_{12}(a_1,m_0) \\ s \| = d_2(a_1,m_0) + d − 1 \\ J \| = s + 347 998 \end{align}
Alternatieven met een groter bereik voor de berekening van \( δ_4 \):
\begin{align} δ_4(μ_2) \| = 29 μ_2 + \range{\dfloorratio{13753 μ_2 + 12084}{25920}}{465.7} \\ \{ ω_1(μ_2), μ_1(μ_2) \} \| = \Div(μ_2, 25920) \\ δ_4(μ_2) \| = 29 μ_2 + 13753 ω_1(μ_2) + \dfloorratio{13753 μ_1(μ_2) + 12084}{25920} \end{align}
Alternatief met een groter bereik voor de berekening van \( δ_6 \):
\begin{equation} δ_6(μ_2) = δ_4(μ_2) + \dmodp{\dfloorratio{6\dmodp{δ_4(μ_2)}{7}}{7}}{2} \end{equation}
In de praktijk zijn meer berekeningen nodig dan je op het eerste gezicht zou denken, want sommige formules moeten meerdere keren gebruikt worden. Het volgende plaatje toont de afhankelijkheden. Voor \( L \) heb je \( d_1 \) nodig voor twee jaar, en voor elke \( d_1 \) heb je \( L_2 \) nodig voor twee jaar, en voor elke \( L_2 \) heb je \( δ_6 \) nodig voor twee jaar. \( L \) en de bijbehorende afhankelijkheden zijn alleen nodig als \( m \ge 9 \), daarom zijn die aangegeven met pijlen met streeplijnen. Al met al heb je om \( J \) uit te rekenen \( d_1 \) nodig van tenminste één jaar, \( L_2 \) van tenminste twee jaar, en \( δ_6 \) van tenminste drie jaar, en als \( m \ge 9 \) dan heb je \( d_1 \), \( L_2 \) en \( δ_6 \) van nog een jaar extra nodig.
\begin{align*} m_0 \| = m − 1 = 9 − 1 = 8 \\ a_1 \| = a + \dfloorratio{12 − m_0}{7} = 4682 + \dfloorratio{12 − 8}{7} = 4682 + \dfloorratio{4}{7} = 4682 \\ μ_2(a_1) \| = \dfloorratio{235 a_1 − 234}{19} = \dfloorratio{235×4682 − 234}{19} \\ \| = \dfloorratio{1 100 036}{19} = 57896 \\ μ_2(a_1 + 2) \| = 57921 \\ μ_2(a_1 + 1) \| = 57909 \\ μ_2(a_1 − 1) \| = 57884 \\ δ_4(μ_2(a_1)) \| = \range{\dfloorratio{765 433 μ_2(a_1) + 12084}{25920}}{25920} = \dfloorratio{765 433×57896 + 12084}{25920} \\ \| = \dfloorratio{44 315 521 052}{25920} = 1 709 703 \\ δ_4(μ_2(a_1 + 2)) \| = 1 710 442 \\ δ_4(μ_2(a_1 + 1)) \| = 1 710 087 \\ δ_4(μ_2(a_1 − 1)) \| = 1 709 349 \\ δ_6(μ_2(a_1)) \| = δ_4(μ_2(a_1)) + \dmodp{\range{\dfloorratio{6 δ_4(μ_2(a_1))}{7}}{6}}{2} \\ \| = 1 709 703 + \dmodp{\dfloorratio{6×1 709 703}{7}}{2} \\ \| = 1 709 703 + \dmodp{\dfloorratio{10 258 218}{7}}{2} \\ \| = 1 709 703 + \dmodp{1 465 459}{2} = 1 709 704 \\ δ_6(μ_2(a_1 + 2)) \| = 1 710 443 \\ δ_6(μ_2(a_1 + 1)) \| = 1 710 087 \\ δ_6(μ_2(a_1 − 1)) \| = 1 709 349 \\ L_2(a_1) \| = δ_6(μ_2(a_1 + 1)) − δ_6(μ_2(a_1)) = 1 710 087 − 1 709 704 = 383 \\ L_2(a_1 + 1) \| = 356 \\ L_2(a_1 − 1) \| = 355 \\ δ_7(a_1) \| = 2\dmodp{\dfloorratio{L_2(a_1) + 19}{15}}{2} = 2\dmodp{\dfloorratio{383 + 19}{15}}{2} \\ \| = 2\dmodp{\dfloorratio{402}{15}}{2} = 2×\dmodp{26}{2} = 0 \\ δ_7(a_1 + 1) \| = 2 \\ δ_8(a_1) \| = \dmodp{\dfloorratio{L_2(a_1 − 1) + 7}{15}}{2} = \dmodp{\dfloorratio{355 + 7}{15}}{2} \\ \| = \dmodp{\dfloorratio{362}{15}}{2} = \dmodp{24}{2} = 0 \\ δ_8(a_1 + 1) \| = 0 \\ d_1(a_1) \| = δ_6(μ_2(a_1)) + δ_7(a_1) + δ_8(a_1) = 1 709 704 + 0 + 0 = 1 709 704 \\ d_1(a_1 + 1) \| = 1 710 089 \\ L(a_1) \| = d_1(a_1 + 1) − d_1(a_1) = 1710089 − 1709704 = 385 \\ δ_9(m_0) \| = \dfloorratio{384 m_0 + 7}{13} = \dfloorratio{384×8 + 7}{13} \\ \| = \dfloorratio{3079}{13} = 236 \\ δ_{10}(a_1) \| = \dmodp{\dfloorratio{L(a_1) + 1}{2}}{3} = \dmodp{\dfloorratio{385 + 1}{2}}{3} \\ \| = \dmodp{\dfloorratio{386}{2}}{3} = \dmodp{193}{3} = 1 \\ δ_{11}(a_1) \| = −\dmodp{\dfloorratio{385 − L(a_1)}{2}}{3} = −\dmodp{\dfloorratio{385 − 385}{2}}{3} = 0 \\ ω_2(m_0) \| = \dfloorratio{m_0 + 4}{12} = \dfloorratio{8 + 4}{12} = \dfloorratio{12}{12} = 1 \\ ω_3(m_0) \| = \dfloorratio{m_0 + 3}{12} = \dfloorratio{8 + 3}{12} = \dfloorratio{11}{12} = 0 \\ δ_{12}(a_1, m_0) \| = δ_9(m_0) + ω_2(m_0) δ_{10}(a_1) + ω_3(m_0) δ_{11}(a_1) \\ \| = 236 + 1×1 + 0×0 = 237 \\ d_2(a_1, m_0) \| = d_1(a_1) − 177 + δ_{12}(a_1, m_0) = 1 709 704 − 177 + 237 = 1 709 764 \\ s \| = d_2(a_1, m_0) + d − 1 = 1 709 764 + 12 − 1 = 1 709 75 \\ J \| = s + 347 998 = 1 709 775 + 347 998 = 2 057 773 \end{align*}
\({a}\) | \({m}\) | \({d}\) | \({m_0}\) | \({a_1}\) |
---|---|---|---|---|
−1 | 7 | 1 | 6 | −1 |
0 | 7 | 1 | 6 | 0 |
1 | 7 | 1 | 6 | 1 |
2 | 7 | 1 | 6 | 2 |
4524 | 9 | 30 | 8 | 4524 |
4527 | 3 | 1 | 2 | 4528 |
4682 | 9 | 12 | 8 | 4682 |
4682 | 7 | 1 | 6 | 4682 |
4682 | 13 | 29 | 12 | 4682 |
4682 | 1 | 1 | 0 | 4683 |
4682 | 3 | 18 | 2 | 4683 |
325709 | 13 | 29 | 12 | 325709 |
\({a_1}\) | \({μ_2}\) | \({ω_1}\) | \({μ_1}\) | \({δ_4}\) | \({δ_6}\) | \({L_2}\) |
---|---|---|---|---|---|---|
−1 | −25 | −1 | 25895 | −726 | −725 | 354 |
0 | −13 | −1 | 25907 | −372 | −371 | 371 |
1 | 0 | 0 | 0 | 0 | 0 | 355 |
2 | 12 | 0 | 12 | 354 | 355 | 355 |
4524 | 55942 | 2 | 4102 | 1652002 | 1652003 | 354 |
4528 | 55991 | 2 | 4151 | 1653449 | 1653449 | 385 |
4682 | 57896 | 2 | 6056 | 1709706 | 1709706 | 385 |
4683 | 57909 | 2 | 6069 | 1710090 | 1710091 | 353 |
4684 | 57921 | 2 | 6081 | 1710444 | 1710444 | 117253353 |
325709 | 4028493 | 155 | 10893 | 118963797 | 118963797 | 384 |
325710 | 4028506 | 155 | 10906 | 118964181 | 118964181 | |
Nu gaan we de andere kant op. De kalender is zo ingewikkeld dat we niet simpelweg de berekeningen van datum naar CJDN kunnen omkeren.
\begin{equation} s = J − J_0 = J − 347 998 \end{equation}
\({J}\) | \({s}\) |
---|---|
347261 | −737 |
347614 | −384 |
347998 | 0 |
348353 | 355 |
2000087 | 1652089 |
2001327 | 1653329 |
2057773 | 1709775 |
2057909 | 1709911 |
2057910 | 1709912 |
2057986 | 1709988 |
2057702 | 1709704 |
119311997 | 118963999 |
Met behulp van de inverse van formule \eqref{eq:υ_1} kunnen we het voorlopige lopende rekenmaandnummer \( μ_2 \) voor lopende dagnummer \( s \) uitrekenen alsof de tweede, derde en vierde vertragingen niet bestaan.
\begin{align} μ_2 \| = \dfloorratio{25920 s + 25920 − 12084 − 1}{765 433} = \range{\dfloorratio{25920 s + 13835}{765 433}}{25920} \label{eq:y_1p} \end{align}
Voor de \( \range{•}{25920} \) zie hoofdstuk 13.4. Voor 32-bitsgetallen heeft die formule een bereik van ongeveer 453 jaar. De omweg gegeven door formule \eqref{eq:detour} die we voor andere kalenders met een te beperkt bereik gebruikten is hier voor 32-bitsgetallen niet geschikt. Die omweg zou zijn
\begin{eqnarray*} \{ ω_2', δ_1' \} \| = \| \Div(s, 765 433) \\ μ_2' \| = \| 25920 ω_2' + \dfloorratio{25920 δ_1' + 13835}{765 433} \end{eqnarray*}
maar \( δ_1' \) kan waarden tot en met 765 432 bereiken en dan is \( 25920 δ_1' + 13835 = 25920×765432 + 13835 = 19 840 011 275 \) wat ruim viermaal te groot is voor een 32-bitsgetal.
Als je het maximale bereik wilt hebben dan kun je het volgende alternatief gebruiken, gebaseerd op formule \eqref{eq:PQR}ff:
\begin{eqnarray} \{ ω_2, δ_1 \} \| = \| \Div(s, 1447) \\ μ_2 \| = \| 49 ω_2 + \dfloorratio{23 ω_2 + 25920 δ_1 + 13835}{765 433} \end{eqnarray}
Met die omweg voor 32-bitsgetallen is de grootste mogelijke waarde van \( ω_2 \) gelijk aan \( 2^{32}/1447 ≈ 2 968 187 \), en die van \( 23 ω_2 + 25920 δ_1 + 13835 \) daarom gelijk aan slechts \( 23×2 968 187 + 25920×1446 + 13835 = 105 762 456 \), ruim klein genoeg om in een 32-bitsgetal te passen.
\({J}\) | \({s}\) | \({ω_2}\) | \({δ_1}\) | \({23ω_2+25920δ_1+13835}\) | \({μ_2}\) | \({25920 s + 13835}\) |
---|---|---|---|---|---|---|
347261 | −737 | −1 | 710 | 18417012 | −25 | −19089205 |
347614 | −384 | −1 | 1063 | 27566772 | −13 | −9939445 |
347998 | 0 | 0 | 0 | 13835 | 0 | 13835 |
348353 | 355 | 0 | 355 | 9215435 | 12 | 9215435 |
2000087 | 1652089 | 1141 | 1062 | 27567118 | 55945 | 42822160715 |
2001327 | 1653329 | 1142 | 855 | 22201701 | 55987 | 42854301515 |
2057773 | 1709775 | 1181 | 868 | 22539558 | 57898 | 44317381835 |
2057909 | 1709911 | 1181 | 1004 | 26064678 | 57903 | 44320906955 |
2057910 | 1709912 | 1181 | 1005 | 26090598 | 57903 | 44320932875 |
2057986 | 1709988 | 1181 | 1081 | 28060518 | 57905 | 44322902795 |
2057702 | 1709704 | 1181 | 797 | 20699238 | 57896 | 44315541515 |
119311997 | 118963999 | 82214 | 341 | 10743477 | 4028500 | 3083546867915 |
Om verder te komen willen we weten wat het bij \( μ_2 \) horende rekenjaarnummer \( α_3 \) en rekenmaandnummer \( μ_3 \) zijn. Als we de inverse van formule \eqref{eq:j2μ1} toepassen op \( μ_2 \) dan krijgen we het geschatte kalenderjaar en het aantal maanden sinds nieuwjaar (dus sinds kalendermaand 7), maar dat is niet altijd handig, want als dat aantal maanden 6 of meer is dan moet je weten hoeveel maanden dat kalenderjaar bevat (12 of 13) om te bepalen wat het juiste rekenjaarnummer en het juiste rekenmaandnummer zijn, en daarvoor zijn extra berekeningen nodig.
Het is slimmer om de inverse van formule \eqref{eq:j2μ1} toe te passen op \( μ_2 + 6 \), want dan vinden we het maandnummer \( μ_3 \) ten opzichte van kalendermaand 1, dus het rekenmaandnummer:
\begin{align} \{ α_3, ω_3 \} \| = \Div(19 (μ_2 + 6) + 252, 235) = \Div(19 μ_2 + 366, 235) \label{eq:μ2m} \\ μ_3 \| = \dfloorratio{ω_3}{19} \end{align}
\begin{align*} \{ α_3', ω_3' \} \| = \Div(19 μ_2 + 252, 235) = \Div(19×57890 + 252, 235) \\ \| = \Div(1 100 162, 235) = \{ 4681, 127 \} \\ μ_3' \| = \dfloorratio{ω_3}{19} = \dfloorratio{127}{19} = 6 \end{align*}
dus 6 maanden na kalendermaand 7 = rekenmaand 6 (de maand van nieuwjaar) van jaar 4681. Dat komt overeen met kalendermaand 13 = rekenmaand 12 van jaar 4681 als dat jaar 13 maanden heeft, maar met kalendermaand 1 van kalenderjaar 4681, en met rekenmaand 0 van kalenderjaar 4682, als jaar 4681 maar 12 maanden heeft. En het kalender- of rekenmaandnummer van de daaropvolgende maanden tot aan de volgende nieuwjaar zijn op dezelfde manier onduidelijk. Dus er is dan extra werk nodig (namelijk het bepalen hoeveel maanden dat jaar heeft) voordat we kunnen weten welke maand in het jaar het is.
Als we in plaats daarvan formule \eqref{eq:μ2m}ff gebruiken dan vinden we
\begin{align*} \{ α_3, ω_3 \} \| = \Div(19 μ_2 + 366, 235) = \Div(19×57890 + 366, 235) \\ \| = \Div(1 100 276, 235) = \{ 4682, 6 \} \\ μ_3 \| = \dfloorratio{ω_3}{19} = \dfloorratio{6}{19} = 0 \end{align*}
dus rekenmaand 0 van rekenjaar 4682, meteen goed.
Onderstaande tabel geeft meer voorbeelden. Rekenjaar \( a_1 \), rekenmaand \( m_0 \) en lopende maandnummer \( μ_2 \) zijn berekend uit kalenderjaar \( a \) en kalendermaand \( m \) volgens de formules uit hoofdstuk 14.7.1. Ons doel is nu om uit die \( μ_2 \) weer \( a_1 \) en \( m_0 \) af te leiden. Uit dat lopende maandnummer \( μ_2 \) zijn het jaartal \( α_3' \) en maandnummer \( μ_3' \) berekend met de inverse van formule \eqref{eq:j2μ1}, en het jaartal \( α_3 \) en maandnummer \( μ_3 \) met formule \eqref{eq:μ2m}ff. We zien dat steeds \( α_3 = a_1 \) en \( μ_3 = m_0 \), dus daarmee is ons doel bereikt.
\({a}\) | \({m}\) | \({a_1}\) | \({m_0}\) | \({μ_2}\) | \({α_3'}\) | \({μ_3'}\) | \({α_3}\) | \({μ_3}\) |
---|---|---|---|---|---|---|---|---|
4680 | 6 | 4681 | 5 | 57883 | 4680 | 12 | 4681 | 5 |
4681 | 7 | 4681 | 6 | 57884 | 4681 | 0 | 4681 | 6 |
4681 | 8 | 4681 | 7 | 57885 | 4681 | 1 | 4681 | 7 |
4681 | 9 | 4681 | 8 | 57886 | 4681 | 2 | 4681 | 8 |
4681 | 10 | 4681 | 9 | 57887 | 4681 | 3 | 4681 | 9 |
4681 | 11 | 4681 | 10 | 57888 | 4681 | 4 | 4681 | 10 |
4681 | 12 | 4681 | 11 | 57889 | 4681 | 5 | 4681 | 11 |
4681 | 1 | 4682 | 0 | 57890 | 4681 | 6 | 4682 | 0 |
4681 | 2 | 4682 | 1 | 57891 | 4681 | 7 | 4682 | 1 |
4681 | 3 | 4682 | 2 | 57892 | 4681 | 8 | 4682 | 2 |
4681 | 4 | 4682 | 3 | 57893 | 4681 | 9 | 4682 | 3 |
4681 | 5 | 4682 | 4 | 57894 | 4681 | 10 | 4682 | 4 |
4681 | 6 | 4682 | 5 | 57895 | 4681 | 11 | 4682 | 5 |
4682 | 7 | 4682 | 6 | 57896 | 4682 | 0 | 4682 | 6 |
4682 | 8 | 4682 | 7 | 57897 | 4682 | 1 | 4682 | 7 |
4682 | 9 | 4682 | 8 | 57898 | 4682 | 2 | 4682 | 8 |
4682 | 10 | 4682 | 9 | 57899 | 4682 | 3 | 4682 | 9 |
4682 | 11 | 4682 | 10 | 57900 | 4682 | 4 | 4682 | 10 |
4682 | 12 | 4682 | 11 | 57901 | 4682 | 5 | 4682 | 11 |
4682 | 13 | 4682 | 12 | 57902 | 4682 | 6 | 4682 | 12 |
4682 | 1 | 4683 | 0 | 57903 | 4682 | 7 | 4683 | 0 |
4682 | 2 | 4683 | 1 | 57904 | 4682 | 8 | 4683 | 1 |
4682 | 3 | 4683 | 2 | 57905 | 4682 | 9 | 4683 | 2 |
4682 | 4 | 4683 | 3 | 57906 | 4682 | 10 | 4683 | 3 |
4682 | 5 | 4683 | 4 | 57907 | 4682 | 11 | 4683 | 4 |
4682 | 6 | 4683 | 5 | 57908 | 4682 | 12 | 4683 | 5 |
4683 | 7 | 4683 | 6 | 57909 | 4683 | 0 | 4683 | 6 |
Als we het lopende dagnummer \( d_2 \) (van formule \eqref{eq:hebd2}) van de eerste dag van rekenmaand \( μ_3 \) van rekenjaar \( α_3 \) uitrekenen met alle toepasselijke vertragingen erbij, en dan het voorlopige dagnummer-in-de-maand \( s − d_2 \) uitrekenen, dan vinden we antwoorden die variëren tussen −2 en 29. De dagen waarvoor dit dagnummer negatief is horen in de voorgaande maand thuis, dus dan is het echte lopende maandnummer gelijk aan \( μ_2 − 1 \). Er zijn 5 963 491 zulke dagen in elke grote kalendercyclus van 8 527 680 maanden, dus niet elke maand heeft zulke dagen. Het aantal maanden in de grote kalendercyclus waarvoor de eerste twee dagen \( s \lt d_2 \) opleveren is 1 006 441, dus ongeveer 11,8% van alle maanden. En het aantal maanden waarvoor geen van de dagen \( s \lt d_2 \) opleveren is 4 767 513, dus ongeveer 55,9% van alle maanden. En 32.3% van de maanden levert één dag met \( s \lt d_2 \). Het grootste aantal maanden achter elkaar die allemaal geen dagen met \( s \lt d_2 \) hebben is 25.
De dagen waarvoor dit dagnummer niet kleiner is dan 0 en niet groter dan 28 horen zeker in maand \( μ_2 \), want alle maanden hebben tenminste 29 dagen. De dagen waarvoor dit dagnummer gelijk is aan 29 (dus de 30e dag van de maand, want de eerste dag heeft rekendagnummer 0) kunnen in de huidige maand horen, maar zouden ook nog in de eerstvolgende maand kunnen horen, omdat sommige maanden maar 29 dagen hebben.
Als we het dagnummer-in-de-maand uitrekenen ten opzichte van de eerstvolgende maand (dus voor \( μ_2 + 1 \)) dan vinden we antwoorden die variëren tussen −32 en 0. De dagen waarvoor dit dagnummer gelijk is aan 0 horen in deze eerstvolgende maand thuis (\( μ_2 + 1 \)). Er zijn 163 258 zulke dagen in elke grote kalendercyclus, dus ongeveer een op de 52 maanden heeft een dag waarvoor \( μ_2 \) eentje te klein is. Voor 97,6% van de dagen is \( μ_2 \) al goed.
Helaas is er geen eenduidig verband tussen het dagnummer ten opzichte van maand \( μ_2 \) en het dagnummer ten opzichte van maand \( μ_2 + 1 \), dus moeten we beide dagnummers uitrekenen om te bepalen in welke maand de gewenste dag valt. De minimale berekening is als volgt:
\begin{align} \{ α_3, ω_3 \} \| = \Div(19 μ_2 + 366, 235) \\ μ_3 \| = \dfloorratio{ω_3}{19} \end{align}
Bereken dan met formule \eqref{eq:hebd2} het lopende dagnummer \( d_2(α_3, μ_3) \) voor de eerste dag van die rekenmaand in dat kalenderjaar, zoals beschreven in hoofdstuk 14.7.1, en dan het voorlopige rekendagnummer \( δ_{14} \) sinds de eerste dag van die maand:
\begin{equation} δ_{14} = s − d_2(α_3, μ_3) \end{equation}
Als \( 0 ≤ δ_{14} ≤ 28 \) dan is de gezochte rekendatum \( \{ a_1, m_0, d_0 \} \) gelijk aan \( \{ α_3, μ_3, δ_{14} \} \).
\begin{equation} μ_5 = μ_2 + 1 \end{equation}
Bereken daaruit het voorlopige kalenderjaarnummer \( α_4 \), het voorlopige rekenmaandnummer \( μ_6 \), en het voorlopige rekendagnummer \( δ_{15} \):
\begin{align} \{ α_4, ω_4 \} \| = \Div(19 μ_5 + 366, 235) \\ μ_6 \| = \dfloorratio{ω_4}{19} \\ δ_{15} \| = s − d_2(α_4, μ_6) \end{align}
Als \( δ_{15} \lt 0 \) dan is de gezochte rekendatum \( \{ a_1, m_0, d_0 \} \) gelijk aan \( \{ α_3, μ_3, δ_{14} \} \). En anders is de gezochte rekendatum \( \{ a_1, m_0, d_0 \} \) gelijk aan \( \{ α_4, μ_6, δ_{15} \} \).
\begin{align} \{ a_1, ω_5 \} \| = \Div(19 μ_7 + 366, 235) \\ m_0 \| = \dfloorratio{ω_5}{19} \\ d_0 \| = s − d_2(a_1, m_0) \end{align}
\begin{align*} \{ α_3, ω_3 \} \| = \Div(19 μ_2 + 366, 235) = \Div(19×57898 + 366, 235) \\ \| = \Div(1 100 428, 235) = \{ 4682, 158 \} \\ μ_3 \| = \dfloorratio{ω_3}{19} = \dfloorratio{158}{19} = 8 \end{align*}
Dan rekenen we \( d_2(α_3, μ_3) = d_2(4682, 8) \) uit zoals beschreven in Hoofdstuk 14.7.1. We vinden \( d_2(4682, 8) = 1 709 764 \). Daarmee
\[ δ_{14} = s − d_2(α_3, μ_3) = 1 709 775 − 1 709 764 = 11 \]
Die \( δ_{14} \) is niet negatief en niet groter dan 28, dus we hebben de gezochte rekendatum al gevonden: \( \{ a_1, m_0, d_0 \} \) is gelijk aan \( \{ α_3, μ_3, δ_{14} \} = \{ 4682, 8, 11 \}\).
Voor alle voorbeeld-CJDNs vinden we
\({J}\) | \({s}\) | \({μ_2}\) | \({α_3}\) | \({μ_3}\) | \({d_2}\) | \({δ_{14}}\) | \({α_4}\) | \({μ_6}\) | \({δ_{15}}\) | \({a_1}\) | \({m_0}\) | \({d_2}\) | \({d_0}\) |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
347261 | −737 | −25 | −1 | 6 | −737 | 0 | −1 | 6 | −737 | 0 | |||
347614 | −384 | −13 | 0 | 6 | −384 | 0 | 0 | 6 | −384 | 0 | |||
347998 | 0 | 0 | 1 | 6 | 0 | 0 | 1 | 6 | 0 | 0 | |||
348353 | 355 | 12 | 2 | 6 | 355 | 0 | 2 | 6 | 355 | 0 | |||
2000087 | 1652089 | 55945 | 4524 | 9 | 1652090 | −1 | 4524 | 8 | 1652060 | 29 | |||
2001327 | 1653329 | 55987 | 4528 | 2 | 1653329 | 0 | 4528 | 2 | 1653329 | 0 | |||
2057702 | 1709704 | 57896 | 4682 | 6 | 1709704 | 0 | 4682 | 6 | 1709704 | 0 | |||
2057773 | 1709775 | 57898 | 4682 | 8 | 1709764 | 11 | 4682 | 8 | 1709764 | 11 | |||
2057909 | 1709911 | 57903 | 4683 | 0 | 1709912 | −1 | 4682 | 12 | 1709883 | 28 | |||
2057910 | 1709912 | 57903 | 4683 | 0 | 1709912 | 0 | 4683 | 0 | 1709912 | 0 | |||
2057986 | 1709988 | 57905 | 4683 | 2 | 1709971 | 17 | 4683 | 2 | 1709971 | 17 | |||
2061126 | 1713128 | 58011 | 4691 | 10 | 1713099 | 29 | 4691 | 11 | −1 | 4691 | 10 | 1713099 | 29 |
119311997 | 118963999 | 4028500 | 325710 | 0 | 118964000 | −1 | 325709 | 12 | 118963971 | 28 | |||
Het aantal berekeningen dat je doet is dan niet voor alle datums hetzelfde. Als het voordeliger is als wel voor alle datums hetzelfde aantal berekeningen gedaan worden, bereken dan zoals hieronder staat.
\begin{equation} μ_3 = μ_2 + 1 \end{equation}
Bereken daaruit het voorlopige kalenderjaarnummer \( α_3 \) en het voorlopige rekenmaandnummer \( μ_4 \):
\begin{align} \{ α_3, ω_3 \} \| = \Div(19 μ_3 + 366, 235) \\ μ_4 \| = \dfloorratio{ω_3}{19} \end{align}
Bereken dan het lopende dagnummer \( d_2(α_3, μ_4) \) voor de eerste dag van dat rekenjaar en rekenmaand, zoals beschreven in hoofdstuk 14.7.1, en dan het voorlopige rekendagnummer \( δ_{14} \) sinds de eerste dag van die maand:
\begin{equation} δ_{14} = s − d_2(α_3, μ_4) \end{equation}
\begin{equation} μ_5 = μ_3 + \dfloorratio{δ_{14}}{64} \end{equation}
(De deler 64 in bovenstaande deling moet groter zijn dan 32 omdat \( δ_{14} \) alle waarden tussen −32 en 0 kan hebben en we willen dat \( μ_5 = μ_3 − 1 \) als \( δ_{14} \lt 0 \). We kiezen 64 omdat dat de eerste macht van 2 groter dan 32 is, en misschien daarmee de deling ietsje sneller wordt.)
Bereken daaruit het voorlopige rekenjaarnummer \( α_4 \), het voorlopige rekenmaandnummer \( μ_6 \), en het voorlopige rekendagnummer \( δ_{15} \):
\begin{align} \{ α_4, ω_4 \} \| = \Div(19 μ_5 + 366, 235) \\ μ_6 \| = \dfloorratio{ω_4}{19} \\ δ_{15} \| = s − d_2(α_4, μ_6) \end{align}
Het uiteindelijke lopende maandnummer \( μ_7 \) is
\begin{equation} μ_7 = μ_5 + \dfloorratio{δ_{15}}{64} \end{equation}
Bereken daaruit het rekenjaarnummer \( a_1 \), het rekenmaandnummer \( m_0 \), en het rekendagnummer \( d_0 \):
\begin{align} \{ a_1, ω_5 \} \| = \Div(19 μ_7 + 366, 235) \\ m_0 \| = \dfloorratio{ω_5}{19} \\ d_0 \| = s − d_2(a_1, m_0) \end{align}
\begin{align*} μ_3 \| = μ_2 + 1 = 57898 + 1 = 57899 \\ \{ α_3, ω_3 \} \| = \Div(19×57899 + 366, 235) = \Div(1 100 447, 235) = \{ 4682, 177 \} \\ μ_4 \| = \dfloorratio{ω_3}{19} = \dfloorratio{177}{19} = 9 \end{align*}
Dan kunnen we \( d_2(α_3, μ_4) = d_2(4682, 9) \) uitrekenen zoals beschreven in Hoofdstuk 14.7.1, en vinden \( d_2(4682, 9) = 1 709 794 \). Daarmee is
\[ δ_{14} = s − d_2(4682, 9) = 1 709 775 − 1 709 794 = −19 \]
Dan
\[ μ_5 = μ_3 + \dfloorratio{δ_{14}}{64} = 57899 + \dfloorratio{−19}{64} = 57898 \]
Daarmee kunnen we \( α_4 \), \( μ_6 \), \( d_2(α_4 \), \( μ_6) \), \( δ_{15} \) uitrekenen zoals \( α_3 \), \( μ_4 \), \( d_2(α_3, μ_4) \), \( δ_{14} \) hierboven. We vinden \( α_4 = 4682 \), \( μ_6 = 8 \), \( δ_{15} = 11 \). Dan
\[ μ_7 = μ_5 + \dfloorratio{δ_{15}}{64} = 57899 + \dfloorratio{11}{64} = 57899 \]
dus \( μ_7 = μ_5 \) en daarmee veranderen de getallen niet meer en vinden we uiteindelijk \( a_1 = 4682, m_0 = 8, d_0 = 11 \).
Voor alle voorbeeld-CJDNs vinden we
\({J}\) | \({s}\) | \({μ_2}\) | \({μ_3}\) | \({α_3}\) | \({ω_3}\) | \({μ_4}\) | \({d_2}\) | \({δ_{14}}\) |
---|---|---|---|---|---|---|---|---|
347261 | −737 | −25 | −24 | −1 | 145 | 7 | −707 | −30 |
347614 | −384 | −13 | −12 | 0 | 138 | 7 | −354 | −30 |
347998 | 0 | 0 | 1 | 1 | 150 | 7 | 30 | −30 |
348353 | 355 | 12 | 13 | 2 | 143 | 7 | 385 | −30 |
2000087 | 1652089 | 55945 | 55946 | 4524 | 200 | 10 | 1652119 | −30 |
2001327 | 1653329 | 55987 | 55988 | 4528 | 58 | 3 | 1653359 | −30 |
2057702 | 1709704 | 57896 | 57897 | 4682 | 139 | 7 | 1709734 | −30 |
2057773 | 1709775 | 57898 | 57899 | 4682 | 177 | 9 | 1709794 | −19 |
2057909 | 1709911 | 57903 | 57904 | 4683 | 37 | 1 | 1709942 | −31 |
2057910 | 1709912 | 57903 | 57904 | 4683 | 37 | 1 | 1709942 | −30 |
2057986 | 1709988 | 57905 | 57906 | 4683 | 75 | 3 | 1710001 | −13 |
119311997 | 118963999 | 4028500 | 4028501 | 325710 | 35 | 1 | 118964030 | −31 |
\({J}\) | \({s}\) | \({μ_5}\) | \({α_4}\) | \({ω_4}\) | \({μ_6}\) | \({d_2}\) | \({δ_{15}}\) |
---|---|---|---|---|---|---|---|
347261 | −737 | −25 | −1 | 126 | 6 | −737 | 0 |
347614 | −384 | −13 | 0 | 119 | 6 | −384 | 0 |
347998 | 0 | 0 | 1 | 131 | 6 | 0 | 0 |
348353 | 355 | 12 | 2 | 124 | 6 | 355 | 0 |
2000087 | 1652089 | 55945 | 4524 | 181 | 9 | 1652090 | −1 |
2001327 | 1653329 | 55987 | 4528 | 39 | 2 | 1653329 | 0 |
2057702 | 1709704 | 57896 | 4682 | 120 | 6 | 1709704 | 0 |
2057773 | 1709775 | 57898 | 4682 | 158 | 8 | 1709764 | 11 |
2057909 | 1709911 | 57903 | 4683 | 18 | 0 | 1709912 | −1 |
2057910 | 1709912 | 57903 | 4683 | 18 | 0 | 1709912 | 0 |
2057986 | 1709988 | 57905 | 4683 | 56 | 2 | 1709971 | 17 |
119311997 | 118963999 | 4028500 | 325710 | 16 | 0 | 118964000 | −1 |
\({J}\) | \({s}\) | \({μ_7}\) | \({a_1}\) | \({ω_5}\) | \({m_0}\) | \({d_2}\) | \({d_0}\) |
---|---|---|---|---|---|---|---|
347261 | −737 | −25 | −1 | 126 | 6 | −737 | 0 |
347614 | −384 | −13 | 0 | 119 | 6 | −384 | 0 |
347998 | 0 | 0 | 1 | 131 | 6 | 0 | 0 |
348353 | 355 | 12 | 2 | 124 | 6 | 355 | 0 |
2000087 | 1652089 | 55944 | 4524 | 162 | 8 | 1652060 | 29 |
2001327 | 1653329 | 55987 | 4528 | 39 | 2 | 1653329 | 0 |
2057702 | 1709704 | 57896 | 4682 | 120 | 6 | 1709704 | 0 |
2057773 | 1709775 | 57898 | 4682 | 158 | 8 | 1709764 | 11 |
2057909 | 1709911 | 57902 | 4682 | 234 | 12 | 1709883 | 28 |
2057910 | 1709912 | 57903 | 4683 | 18 | 0 | 1709912 | 0 |
2057986 | 1709988 | 57905 | 4683 | 56 | 2 | 1709971 | 17 |
119311997 | 118963999 | 4028499 | 325709 | 232 | 12 | 118963971 | 28 |
\begin{equation} a = a_1 + \dfloorratio{m_0 − 6}{7} \end{equation}
\({m_0}\) | \({\D a}\) |
---|---|
0 | −1 |
1 | −1 |
2 | −1 |
3 | −1 |
4 | −1 |
5 | −1 |
6 | 0 |
7 | 0 |
8 | 0 |
9 | 0 |
10 | 0 |
11 | 0 |
12 | 0 |
\[ a = a_1 + \dfloorratio{m_0 − 6}{7} = 4682 + \dfloorratio{8 − 6}{7} = 4682 + \dfloorratio{2}{7} = 4682 \]
Voor alle voorbeeld-CJDNs vinden we
\({J}\) | \({a_1}\) | \({m_0}\) | \({d_0}\) | \({a}\) | \({m}\) | \({d}\) |
---|---|---|---|---|---|---|
347261 | −1 | 6 | 0 | −1 | 7 | 1 |
347614 | 0 | 6 | 0 | 0 | 7 | 1 |
347998 | 1 | 6 | 0 | 1 | 7 | 1 |
348353 | 2 | 6 | 0 | 2 | 7 | 1 |
2000087 | 4524 | 8 | 29 | 4524 | 9 | 30 |
2001327 | 4528 | 2 | 0 | 4527 | 3 | 1 |
2057702 | 4682 | 6 | 0 | 4682 | 7 | 1 |
2057773 | 4682 | 8 | 11 | 4682 | 9 | 12 |
2057909 | 4682 | 12 | 28 | 4682 | 13 | 29 |
2057910 | 4683 | 0 | 0 | 4682 | 1 | 1 |
2057986 | 4683 | 2 | 17 | 4682 | 3 | 18 |
119311997 | 325709 | 12 | 28 | 325709 | 13 | 29 |
\begin{align} m \| = m_0 + 1 \\ d \| = d_0 + 1 \end{align}
Samenvattend:
\begin{align} s \| = J − 347 998 \\ μ_2 \| = \range{\dfloorratio{25920 s + 13835}{765 433}}{25920} \\ \{ α_3, ω_3 \} \| = \Div(19 μ_2 + 366, 235) \\ μ_3 \| = \dfloorratio{ω_3}{19} \\ δ_{14} \| = s − d_2(α_3, μ_3) \end{align}
met \( d_2 \) berekend zoals beschreven in hoofdstuk 14.7.1. Een alternatief met groter bereik voor \( μ_2 \):
\begin{align} \{ ω_2, δ_1 \} \| = \Div(s, 1447) \\ μ_2 \| = 49 ω_2 + \dfloorratio{23 ω_2 + 25920 δ_1 + 13835}{765 433} \end{align}
Als \( 0 \le δ_{14} \le 28 \) dan
\begin{equation} \{ a_1, m_0, d_0 \} = \{ α_3, μ_3, δ_{14} \} \end{equation}
Anders, als \( δ_{14} = 29 \) dan
\begin{align} μ_5 \| = μ_2 + 1 \\ \{ α_4, ω_4 \} \| = \Div(19 μ_5 + 366, 235) \\ μ_6 \| = \dfloorratio{ω_4}{19} \\ δ_{15} \| = s − d_2(α_4, μ_6) \\ δ_{15} \lt 0 \| ⇒ \{ a_1, m_0, d_0 \} = \{ α_3, μ_3, δ_{14} \} \\ δ_{15} \ge 0 \| ⇒ \{ a_1, m_0, d_0 \} = \{ α_4, μ_6, δ_{15} \} \end{align}
Anders is \( δ_{14} \lt 0 \), en dan
\begin{align} μ_7 \| = μ_2 − 1 \\ \{ a_1, ω_5 \} \| = \Div(19 μ_7 + 366, 235) \\ m_0 \| = \dfloorratio{ω_5}{19} \\ d_0 \| = s − d_2(a_1, m_0) \end{align}
Als we eenmaal \( \{ a_1, m_0, d_0 \} \) gevonden hebben dan volgt nog:
\begin{align} a \| = a_1 + \dfloorratio{m_0 − 6}{7} \\ m \| = m_0 + 1 \\ d \| = d_0 + 1 \end{align}
Als de verdeling van dagen over maanden onafhankelijk is van de verdeling van maanden over jaren, dan zal een bepaalde maand van het jaar niet in elk jaar dezelfde lengte hebben. Bijvoorbeeld, de eerste maand van jaar 1 van de Babylonische kalender heeft 29 dagen, maar de eerste maand van jaar 2 heeft 30 dagen. Het zou voor het hoofdrekenen met de kalender wel handig zijn als de meeste maanden elk jaar dezelfde lengte hadden. Kunnen we een zongebonden maankalender maken die dat heeft?
Het is met de gegevens van de cyclus van Meton niet mogelijk om een gegeven maand even lang te laten zijn in elk jaar waarin hij zit. Als we een vast aantal van de eerste 12 kalendermaanden in elk jaar lang maken (met 30 dagen), dan is het aantal daarmee overeenkomende lange maanden in de cyclus van 19 jaar gelijk aan een veelvoud van 19. Als de 13e maand altijd kort is dan zou het totale aantal lange maanden gelijk zijn aan een veelvoud van 19, en als de 13e maand altijd lang is dan zou het totale aantal lange maanden gelijk zijn aan 7 (het aantal jaren met 13 maanden in de cyclus van 19 jaar) plus een veelvoud van 19, maar de cyclus van Meton vereist 125 = 6×19 + 11 lange maanden en dat past bij geen van de twee mogelijkheden, dus kan de lengte van één of meer maanden niet in elk jaar hetzelfde zijn.
We willen het kleinste aantal verschillende maandlengtes gebruiken, dus alleen maanden van 29 of 30 dagen.
Als we de voorgaande kalenderrekentechnieken willen gebruiken dan is het het handigste als we voor het rekenen tussen maanden en dagen maar één rechte lijn nodig hebben, maar dan is het nodig dat zowel lange jaren als korte jaren dezelfde rechte lijn gebruiken en dus dezelfde maandlengtes hebben, afgezien van verkorting helemaal aan het eind door de jaarlengte.
Er moeten 125 lange maanden (van 30 dagen) zijn en 110 korte maanden (van 29 dagen) in elke periode van 19 jaar = 235 maanden. Als \( n \) van de eerste 11 maanden van elk jaar lang zijn dan levert dat \( 19n \) lange maanden op in de periode van 19 jaar, en dan moeten \( 125 − 19n \) van de 26 12e en 13e maanden lang zijn, dus \( 125 − 19n \) moet tussen 0 en 26 (inclusief) zijn, en dat betekent dat \( n = 6 \) moet zijn, want \( n = 5 \) levert 30 (te groot) en \( n = 7 \) levert −8 (te klein).
\( n = 6 \) levert 11 lange 12e en 13e maanden op. Die 11 lange maanden kunnen niet allemaal 13e maand zijn want er zijn maar 7 13e maanden, dus moeten sommige 12e maanden lang zijn.
Een lange maand mag kort worden als die aan het eind van het jaar zit, maar niet als er nog een maand volgt in hetzelfde jaar, dus als sommige 12e maanden lang zijn dan mogen er alleen korte 12e maanden zijn als die de laatste maand van het jaar zijn, dus als het jaar 12 maanden heeft. Dus we kunnen de volgende soorten jaren hebben:
maand 12 | maand 13 | jaarlengte |
---|---|---|
kort | geen | 354 |
lang | geen | 355 |
lang | kort | 384 |
lang | lang | 385 |
Er moeten 7 lange jaren (van 13 maanden) en 12 korte jaren (van 12 maanden) zijn in elke 19 jaar. Als die lange en korte jaren alletwee zo kort mogelijk zijn (dus 354 en 384 dagen) dan levert dat 7×384 + 12×354 = 6936 dagen op, dus dan moeten er nog 4 dagen bij. Dat betekent dat 4 jaren één dag langer moeten worden, dus 355 of 385 dagen. Dat betekent dat er tenminste drie verschillende jaarlengtes nodig zijn, en dat kan niet met een kalenderniveau van type 2 of 3, dus hebben we een kalenderniveau van type 4 nodig.
We koppelen de lunisolaire kalender aan de de moderne (Gregoriaanse) kalender aan de hand van de volgende overwegingen:
Ik heb gezocht naar het moderne kalenderjaar tussen 1900 en 2100 waarin de maanstand van de middelbare Maan aan het begin van het jaar (0 uur UTC aan het begin van 1 januari) zo dicht mogelijk bij nieuwe maan was, en dat blijkt het jaar 2033 te zijn. Dus we stellen 1 januari 2033 gelijk aan de eerste dag van de eerste maand van het jaar 2033 in de lunisolaire kalender.
De berekeningen zijn schematisch:
a ━━━━━━━━━━━━━━━━━━━━┓ m ─(−1)─ m₀ ──┐ ┃ d ─(−1)─ d₀ ─(1)─ d₁─(2)━ s ━(+J₀)━ J
De samenvatting van de kalenderniveau's is
(n) | \({f}\) | \({g}\) | \({q}\) | \({r_i}\) | \({h_i}\) | \({t_i}\) | \({g_i}\) | \({γ_i}\) | \({p}\) |
---|---|---|---|---|---|---|---|---|---|
1 | 384 | 13 | 29 | 7 | 7 | 29.538462 | |||
2.1 | 6940 | 19 | 354 | 30 | 7 | 2 | 19 | 1 | 365.26316 |
2.2 | 1 | 4 | 18 | 19 | 1 |
\begin{align*} m_0 \| = m − 1 \\ d_0 \| = d − 1 \end{align*}
\begin{align} d_1 \| = \dfloorratio{384 m_0 + 7}{13} + d_0 \\ \| = \dfloorratio{384 (m − 1) + 7}{13} + d − 1 \notag \\ \| = \dfloorratio{384 m − 390}{13} + d \end{align}
Dit levert op dat maand 12 lang is (met 30 dagen) en maand 13 kort (met 29 dagen) en dat 6 van de eerste 11 maanden altijd lange maanden zijn.
\[ d_1 = \dfloorratio{384×4 + 7}{13} + 0 = \dfloorratio{1543}{13} = 118 \]
dus de eerste dag van de vijfde maand (\( m_0 = 4 \)) is de 118e dag sinds de eerste dag van het jaar.
Voor de eerste dag van de eerste 14 maanden vinden we de volgende resultaten (met \( L \) de lengte van de maand):
\({m}\) | \({m_0}\) | \({d_1(d_0=0)}\) | \({L}\) |
---|---|---|---|
1 | 0 | 0 | 30 |
2 | 1 | 30 | 29 |
3 | 2 | 59 | 30 |
4 | 3 | 89 | 29 |
5 | 4 | 118 | 30 |
6 | 5 | 148 | 29 |
7 | 6 | 177 | 30 |
8 | 7 | 207 | 29 |
9 | 8 | 236 | 30 |
10 | 9 | 266 | 29 |
11 | 10 | 295 | 30 |
12 | 11 | 325 | 30 |
13 | 12 | 355 | 29 |
14 | 13 | 384 | |
\begin{equation} s = 354 a + 30\dfloorratio{7 a + 2}{19} + \dfloorratio{4 a + 18}{19} + d_1 \end{equation}
De volgende tabel toont de lopende dagnummers voor 20 jaren, en de lengte \( L \) voor de eerste 19 daarvan. Dat patroon van jaarlengtes herhaalt zich elke 19 jaar. Er zijn 8 jaren van 354 dagen lang, 4 jaren van 355 dagen lang, en 7 jaren van 384 dagen lang, samen 6940 dagen in 19 jaar.
\({a}\) | \({s(d_1=0)}\) | \({L}\) |
---|---|---|
0 | 0 | 355 |
1 | 355 | 354 |
2 | 709 | 384 |
3 | 1093 | 354 |
4 | 1447 | 355 |
5 | 1802 | 384 |
6 | 2186 | 354 |
7 | 2540 | 384 |
8 | 2924 | 354 |
9 | 3278 | 355 |
10 | 3633 | 384 |
11 | 4017 | 354 |
12 | 4371 | 354 |
13 | 4725 | 384 |
14 | 5109 | 355 |
15 | 5464 | 384 |
16 | 5848 | 354 |
17 | 6202 | 354 |
18 | 6556 | 384 |
19 | 6940 | |
\begin{align*} s \| = 354 a + 30\dfloorratio{7 a + 2}{19} + \dfloorratio{4 a + 18}{19} + d_1 \\ \| = 354×2033 + 30\dfloorratio{7×2033 + 2}{19} + \dfloorratio{4×2033 + 18}{19} + 0 \\ \| = 719 682 + 30\dfloorratio{14233}{19} + \dfloorratio{8150}{19} \\ \| = 719 682 + 30×749 + 428 = 742 580 \end{align*}
\begin{equation} J = s + J_0 = s + 1 721 019 \end{equation}
\[ J = s + J_0 = 742 580 + 1 721 019 = 2 463 599 \]
dus de CJDN die hoort bij de eerste dag van jaar 2033 in deze maankalender is 2 463 599, en dat komt overeen met de eerste dag van jaar 2033 in de moderne (Gregoriaanse) kalender.
Samenvattend:
\begin{align} d_1 \| = \dfloorratio{384 m − 390}{13} + d \\ s \| = 354 a + 30\dfloorratio{7 a + 2}{19} + \dfloorratio{4 a + 18}{19} + d_1 \\ J \| = s + 1 721 019 \end{align}
\begin{align*} d_1 \| = \dfloorratio{384 m − 390}{13} + d = \dfloorratio{384×1 − 390}{13} \\ \| = \dfloorratio{−6}{13} + 1 = −1 + 1 = 0 \\ s \| = 354 a + 30\dfloorratio{7 a + 2}{19} + \dfloorratio{4 a + 18}{19} + d_1 \\ \| = 354×2033 + 30\dfloorratio{7×2033 + 2}{19} + \dfloorratio{4×2033 + 18}{19} + 0 \\ \| = 719 682 + 30\dfloorratio{14233}{19} + \dfloorratio{8150}{19} \\ \| = 719 682 + 30×749 + 428 = 742 580 \\ J \| = s + 1 721 019 = 742 580 + 1 721 019 = 2 463 599 \end{align*}
dus dag 1 van maand 1 van jaar 2033 in de maankalender komt overeen met CJDN 2 463 599, die overeenkomt met 1 januari 2033 in de moderne (Gregoriaanse) kalender.
De berekeningen zijn schematisch:
a ━━━━━━━━━━━━━━━━━━━━┓ m ─(−1)─ m₀ ──┐ ┃ d ─(−1)─ d₀ ─(1)─ d₁─(2)━ s ━(+J₀)━ J
De samenvatting van de kalenderniveau's is
(n) | \({f}\) | \({g}\) | \({q}\) | \({r_i}\) | \({h_i}\) | \({t_i}\) | \({g_i}\) | \({γ_i}\) | \({p}\) |
---|---|---|---|---|---|---|---|---|---|
1 | 384 | 13 | 29 | 7 | 7 | 29.538462 | |||
2.2 | 6940 | 19 | 354 | 30 | 7 | 2 | 19 | 1 | 365.26316 |
2.3 | 1 | 4 | 18 | 19 | 1 |
De berekeningen zijn als volgt:
\begin{equation} s = J − J_0 = J − 1 721 019 \end{equation}
\[ s = J − J_0 = 2 459 695 − 1 721 019 = 738 676 \]
\begin{align} g s \| + g\dparen{\sum_{r_i \gt 0} r_i} − \dparen{\sum_i γ_ir_it_i} − 1 \notag \\ \| = 19 s + 19×31 − (1×30×2 + 1×1×18) = 19 s + 511 \\ α_2 \| = \range{\dfloorratio{19 s + 511}{6940}}{19} \\ δ_2 \| = s − q α_2 − \dparen{\sum_i r_i \dfloorratio{h_i α_2 + t_i}{g_i}} \notag \\ \| = s − 354 α_2 − 30 \dfloorratio{7 α_2 + 2}{19} − \dfloorratio{4 α_2 + 18}{19} \\ a \| = α_2 + \dfloorratio{δ_2}{q + \sum_{r_i \gt 0} r_1} = α_2 + \dfloorratio{δ_2}{385} \notag \\ d_1 \| = s − 354 a − 30 \dfloorratio{7 a + 2}{19} − \dfloorratio{4 a + 18}{19} \end{align}
Voor de \( \range{•}{19} \) zie hoofdstuk 13.4. Voor 32-bitsgetallen heeft die formule een bereik van ongeveer 619 duizend jaar. Als je het maximale bereik wilt hebben dan kun je het volgende alternatief gebruiken:
\begin{eqnarray} \{ ω_1, δ_1 \} \| = \| \Div(s, 6940) \\ α_1 \| = \| \dfloorratio{19 δ_1 + 511}{6940} \\ α_2 \| = \| 19 ω_1 + α_1 \end{eqnarray}
\({s}\) | \({ω_1}\) | \({δ_1}\) | \({α_1}\) | \({α_2}\) | \({19 s + 511}\) |
---|---|---|---|---|---|
−1 | −1 | 6939 | 19 | 0 | 492 |
0 | 0 | 0 | 0 | 0 | 511 |
1 | 0 | 1 | 0 | 0 | 530 |
738676 | 106 | 3036 | 8 | 2022 | 14035355 |
201301639 | 29005 | 6939 | 19 | 551114 | 3824731652 |
Voor \( s = 201 301 639 \) geeft de orignele berekening het tussenresultaat \( 19×201 301 639 + 511 = 3 824 731 652 \) dat te groot is om in een 32-bitsgetal (met teken) te passen, maar met de omweg is het eindresultaat 551 114 groter dan elk tussenresultaat, en ruim klein genoeg om in een 32-bitsgetal te passen.
\begin{align*} ω_2 \| = \range{19 s + 511}{19} = 19×738 676 + 511 = 14 035 355 \\ α_2 \| = \dfloorratio{ω_2}{6940} = \dfloorratio{14 035 355}{6940} = 2022 \end{align*}
of
\begin{align*} \{ ω_1, δ_1 \} \| = \Div(s, 6940) = \Div(738 676, 6940) = \{ 106, 3036 \} \\ α_2 \| = 19 ω_1 + \dfloorratio{19 δ_1 + 511}{6940} = 19×106 + \dfloorratio{19×3036 + 511}{6940} \\ \| = 2014 + \dfloorratio{58195}{6940} = 2014 + 8 = 2022 \end{align*}
en dan
\begin{align*} δ_2 \| = s − 354 α_2 − 30 \dfloorratio{7 α_2 + 2}{19} − \dfloorratio{4 α_2 + 18}{19} \\ \| = 738 676 − 354×2022 − 30 \dfloorratio{7×2022 + 2}{19} − \dfloorratio{4×2022 + 18}{19} \\ \| = 738 676 − 715 788 − 30 \dfloorratio{14156}{19} − \dfloorratio{8106}{19} \\ \| = 22888 − 30×745 − 426 = 112 \\ a \| = α_2 + \dfloorratio{δ_2}{385} = 2022 + \dfloorratio{112}{385} = 2022 \\ d_1 \| = s − 354 a − 30 \dfloorratio{7 a + 2}{19} − \dfloorratio{4 a + 18}{19} = 112 \end{align*}
\begin{align} \{ m_0, ω_3 \} \| = \Div(gd_1 + g − t − 1, f) = \Div(13 d_1 + 13 − 7 − 1, 384) \notag \\ \| = \Div(13 d_1 + 5, 384) \\ d_0 \| = \dfloorratio{ω_3}{g} = \dfloorratio{ω_3}{13} \end{align}
\begin{align*} \{ m_0, ω_3 \} \| = \Div(13 d_1 + 5, 384) = \Div(13×112 + 5, 384) \\ \| = \Div(1461, 384) = \{ 3, 309 \} \\ d_0 \| = \dfloorratio{ω_3}{13} = \dfloorratio{309}{13} = 23 \end{align*}
\begin{align} m \| = m_0 + 1 \\ d \| = d_0 + 1 = \dfloorratio{ω_3}{13} + 1 \end{align}
We kunnen \( m \) ietsje sneller vinden via
\begin{equation} \{ m, ω_3 \} = \{ m_0 + 1, ω_3 \} = \Div(13 d_1 + 5 + 384, 384) = \Div(13 d_1 + 389, 384) \end{equation}
Samenvattend:
\begin{align} s \| = J − 1 721 019 \\ α_2 \| = \range{\dfloorratio{19 s + 511}{6940}}{19} \\ δ_2 \| = s − 354 α_2 − 30 \dfloorratio{7 α_2 + 2}{19} − \dfloorratio{4 α_2 + 18}{19} \\ a \| = α_2 + \dfloorratio{δ_2}{385} \\ d_1 \| = s − 354 a − 30 \dfloorratio{7 a + 2}{19} − \dfloorratio{4 a + 18}{19} \\ \{ m, ω_3 \} \| = \Div(13 d_1 + 389, 384) \\ d \| = \dfloorratio{ω_3}{13} + 1 \end{align}
Alternatief met groter bereik voor de berekening van \( α_2 \):
\begin{align} \{ ω_1, δ_1 \} \| = \Div(s, 6940) \\ α_1 \| = \dfloorratio{19 δ_1 + 511}{6940} \\ α_2 \| = 19 ω_1 + α_1 \end{align}
\begin{align*} s \| = J − 1 721 019 = 2 459 695 − 1 721 019 = 738 676 \\ α_2 \| = \range{\dfloorratio{19s + 511}{6940}}{19} = \dfloorratio{19×738 676 + 511}{6940} = \dfloorratio{14 035 355}{6940} = 2022 \\ δ_2 \| = s − 354 α_2 − 30 \dfloorratio{7 α_2 + 2}{19} − \dfloorratio{4 α_2 + 18}{19} \\ \| = 738 676 − 354×2022 − 30 \dfloorratio{7×2022 + 2}{19} − \dfloorratio{4×2022 + 18}{19} \\ \| = 738 676 − 715 788 − 30 \dfloorratio{14156}{19} − \dfloorratio{8106}{19} \\ \| = 22888 − 30×745 − 426 = 112 \\ a \| = α_2 + \dfloorratio{δ_2}{385} = 2022 + \dfloorratio{112}{385} = 2022 \\ d_1 \| = s − 354 a − 30 \dfloorratio{7 a + 2}{19} − \dfloorratio{4 a + 18}{19} = 112 \\ \{ m, ω_3 \} \| = \Div(13 d_1 + 389, 384) = \Div(13×112 + 389, 384) = \Div(1845, 384) = \{ 4, 309 \} \\ d \| = \dfloorratio{ω_3}{13} + 1 = \dfloorratio{309}{13} + 1 = 23 + 1 = 24 \end{align*}
dus de gezochte datum is dag 24 van maand 4 van jaar 2022, net als hierboven.
Hier zijn voor enkele jaren de data (jaar-maand-dag) in de moderne (Gregoriaanse) kalender die overeenkomen met nieuwjaar in de maankalender.
\({a}\) | D | |
---|---|---|
2019 | 2018-12-08 | 8 |
2020 | 2019-12-27 | 27 |
2021 | 2020-12-15 | 15 |
2022 | 2022-01-03 | 34 |
2023 | 2022-12-23 | 23 |
2024 | 2023-12-13 | 13 |
2025 | 2024-12-31 | 31 |
2026 | 2025-12-20 | 20 |
2027 | 2026-12-09 | 9 |
2028 | 2027-12-28 | 28 |
2029 | 2028-12-17 | 17 |
2030 | 2030-01-05 | 5 |
2031 | 2030-12-25 | 25 |
2032 | 2031-12-14 | 14 |
2033 | 2033-01-01 | 32 |
2034 | 2033-12-22 | 22 |
2035 | 2034-12-11 | 11 |
2036 | 2035-12-30 | 30 |
2037 | 2036-12-18 | 18 |
2038 | 2037-12-08 | 8 |
De religieuze Islamitische kalender hangt af van waarnemingen en is daarom niet te vangen in formules. De administratieve kalender heeft vaste regels en is wel te beschrijven door formules. In de administratieve kalender hebben de oneven maanden 30 dagen en de even maanden 29, behalve dat de laatste maand soms 29 en soms 30 dagen heeft. Daarmee heeft een jaar 354 of 355 dagen. Van elke 30 jaren zijn er 11 lang (met 355 dagen) en de rest kort (met 354 dagen). Een complete cyclus heeft daarmee 11×355 + 19×354 = 10631 dagen.
Rob van Gent (op //www.staff.science.uu.nl/~gent0113/islam/islam_tabcal.htm) noemt vier verschillende manieren die gebruikt worden om de 11 schrikkeljaren over elke cyclus van 30 jaren te verdelen. Tabel 3 meldt die manieren en hun schrikkeljaarverdeling en geeft de bijbehorende \( r \) (zoals in formule \eqref{eq:Nisl}).
Tabel 3: Schrikkeljaren in Islamitische Kalender
Type | Schrikkeljaren | \({r}\) | Oorsprong/Gebruik |
---|---|---|---|
I | 2 5 7 10 13 15 18 21 24 26 29 | 15 | Kūshyār ibn Labbān, Ulugh Beg |
II | 2 5 7 10 13 16 18 21 24 26 29 | 14 | al-Fazārī, al-Khwārizmī, al-Battānī, Toledo- en Alfonsijnse Tafels |
III | 2 5 8 10 13 16 19 21 24 27 29 | 11 | Fātimiden-, Misri- of Bohrakalender |
IV | 2 5 8 11 13 16 19 21 24 27 30 | 9 | Habash al-Hāsib, al-Bīrūnī, Elias van Nisibis |
Het aantal lange jaren tussen het begin van jaar 0 en het begin van jaar \( a \) is
\begin{equation} N = \dfloorratio{11a + r}{30} \label{eq:Nisl} \end{equation}
Er zijn van elk type nog twee varianten: de astronomische telling "a" volgens welke de eerste dag van de kalender (1 Muharram van jaar 1) begon bij zonsondergang van woensdag 14 juli 622 (ongeveer CJD 1 948 438.75), en de burgerlijke telling "c" volgens welke de kalender begon bij zonsondergang van donderdag 15 juli 622 (ongeveer CJD 1 948 439.75). De meestgebruikte telling is IIc.
Voor het onderste kalenderniveau zoeken we een rechte lijn die afwisselend 30 en 29 dagen geeft behalve dat de 12e maand 30 dagen heeft, en voor korte jaren (met 354 dagen) snijden we de laatste dag er vanaf. In een kalender gebaseerd op een rechte lijn voor 355/12 wordt de afwisseling van 29 en 30 dagen al verstoord na 5 of 7 maanden, maar wij hebben een afwisseling van 29 en 30 dagen nodig die onafgebroken is voor tenminste 11 maanden. Daarvoor blijkt \( p \) hooguit 29 + 6/11 te moeten zijn, en 355/12 = 29 + 7/12 is groter dan dat. We gebruiken \( p = 29 \frac{6}{11} = 325/11 \).
In de Islamitische kalender lopen kalenderdagen van zonsondergang tot zonsondergang. De CJDN-kalenderdagen lopen van middernacht tot middernacht. Voor de berekeningen maken we de koppeling midden op de dag. De CJDN die volgens onderstaande formules bij een bepaalde Islamitische kalenderdatum hoort hoort daarbij tussen middernacht en zonsondergang. Tussen zonsondergang en middernacht is volgens de Islamitische tijdrekening de volgende dag al begonnen, maar volgens de CJDN nog niet.
De berekeningen zijn schematisch als volgt:
a ━(−1)━ a₀ ━━━━━━━━━━┓ m ─(−1)─ m₀ ──┐ ┃ d ─(−1)─ d₀ ─(1)─ d₁─(2)━ s ━(+J₀)━ J
De samenvatting van de kalenderniveau's is
(n) | \({f}\) | \({g}\) | \({q}\) | \({h}\) | \({t}\) | \({p}\) |
---|---|---|---|---|---|---|
1 | 325 | 11 | 29 | 6 | 5 | 29.545455 |
2 | 10631 | 30 | 354 | 11 | \({r}\) | 354.36667 |
\begin{eqnarray} a_0 \| = \| a − 1 \\ m_0 \| = \| m − 1 \\ d_0 \| = \| d − 1 \end{eqnarray}
\begin{align} d_1 \| = \dfloorratio{325 m_0 + 5}{11} + d_0 \\ \| = \dfloorratio{325 (m − 1) + 5}{11} + d − 1 \notag \\ \| = \dfloorratio{325 m − 320}{11} + d − 1 \notag \\ \| = \dfloorratio{325 m − 331}{11} + d \end{align}
\begin{align} s \| = \range{\dfloorratio{10631 a_0 + r}{30}}{30} + d_1 \\ \| = \range{\dfloorratio{10631 (a − 1) + r}{30}}{30} + d_1 \notag \\ \| = \range{\dfloorratio{10631 a + r − 10631}{30}}{30} + d_1 \\ \| = 354 a_0 + \dfloorratio{11 a_0 + r}{30} + d_1 \\ \| = 354 (a − 1) + \dfloorratio{11 (a − 1) + r}{30} + d_1 \notag \\ \| = 354 a − 354 + \dfloorratio{11 a + r − 11}{30} + d_1 \notag \\ \| = 354 a + \dfloorratio{11 a + r − 3905}{30} + d_1 \end{align}
Voor de \( \range{•}{30} \) zie hoofdstuk 13.4. Voor 32-bitsgetallen heeft die formule een bereik van ongeveer 404 duizend islamitische kalenderjaren. De daaropvolgende formule heeft het grootst mogelijke bereik, wat voor 32-bitsgetallen gelijk is aan ongeveer 12,1 miljoen islamitische kalenderjaren.
\begin{equation} J = s + J_0 \end{equation}
Samenvattend:
\begin{align} d_1 \| = \dfloorratio{325 m − 331}{11} + d \\ s \| = \range{\dfloorratio{10631 a + r − 10631}{30}}{30} + d_1 \\ \| = 354 a + \dfloorratio{11 a + r − 10631}{30} + d_1 \\ J \| = s + J_0 \end{align}
\begin{align*} d_1 \| = \dfloorratio{325 m − 331}{11} + d = \dfloorratio{325×8 − 331}{11} + 29 \\ \| = \dfloorratio{2269}{11} + 29 = 206 + 29 = 235 \\ s \| = \range{\dfloorratio{10631 a + r − 10631}{30}}{30} + d_1 \\ \| = \dfloorratio{10631×1432 + 14 − 10631}{30} + 235 \\ \| = \dfloorratio{15 212 975}{30} + 235 = 507 099 + 235 = 507 334 \\ \| = 354 a + \dfloorratio{11 a + r − 10631}{30} + d_1 \\ \| = 354×1432 + \dfloorratio{11×1432 + 14 − 10631}{30} + 235 \\ \| = 506 928 + \dfloorratio{5135}{30} + 235 = 506 928 + 171 + 235 = 507 334 \\ J \| = s + J_0 = 507 334 + 1 948 440 = 2 455 774 \end{align*}
Nu gaan we in de omgekeerde richting. De berekeningen zijn schematisch als volgt:
a ━(−1)━ a₀ ━━━━━━━━━━┓ m ─(−1)─ m₀ ──┐ ┃ d ─(−1)─ d₀ ─(1)─ d₁─(2)━ s ━(+J₀)━ J
De samenvatting van de kalenderniveau's is
(n) | \({f}\) | \({g}\) | \({q}\) | \({h}\) | \({t}\) | \({p}\) |
---|---|---|---|---|---|---|
1 | 325 | 11 | 29 | 6 | 5 | 29.545455 |
2 | 10631 | 30 | 354 | 11 | \({r}\) | 354.36667 |
\begin{equation} s = J − J_0 \end{equation}
\begin{eqnarray} \{ a_0, ω_2 \} \| = \| \range{\Div(30 s + 29 − r, 10631)}{30} \\ d_1 \| = \| \dfloorratio{ω_2}{30} \end{eqnarray}
Voor de \( \range{•}{30} \) zie hoofdstuk 13.4. Voor 32-bitsgetallen heeft die formule een bereik van ongeveer 404 duizend islamitische kalenderjaren. Als je het maximale bereik wilt hebben dan kun je het volgende alternatief gebruiken:
\begin{eqnarray} \{ ω_1, δ_1 \} \| = \| \Div(s, 10631) \\ \{ α_1, ω_2 \} \| = \| \Div(30 δ_1 + 29 − r, 10631) \\ a_0 \| = \| 30 ω_1 + α_1 \end{eqnarray}
\({s}\) | \({ω_1}\) | \({δ_1}\) | \({α_1}\) | \({ω_2}\) | \({a_0}\) | \({30 s + 15}\) |
---|---|---|---|---|---|---|
−1 | −1 | 10630 | 29 | 10616 | −1 | −15 |
0 | 0 | 0 | 0 | 15 | 0 | 15 |
1 | 0 | 1 | 0 | 45 | 0 | 45 |
507334 | 47 | 7677 | 21 | 7074 | 1431 | 15220035 |
177006149 | 16649 | 10630 | 29 | 10616 | 499499 | 5310184485 |
Voor \( s = 177 006 149 \) geeft de orignele berekening het tussenresultaat \( 30×177 006 149 + 15 = 5 310 184 485 \) dat veel te groot is om in een 32-bitsgetal (met teken) te passen, maar met de omweg is het eindresultaat 499 499 groter dan elk tussenresultaat, en ruim klein genoeg om in een 32-bitsgetal te passen.
\begin{eqnarray} \{ m_0, ω_3 \} \| = \| \Div(11 d_1 + 5, 325) \\ d_0 \| = \| \dfloorratio{ω_3}{11} \end{eqnarray}
\begin{eqnarray} a \| = \| a_0 + 1 \\ m \| = \| m_0 + 1 \\ d \| = \| d_0 + 1 = \dfloorratio{ω_3}{11} + 1 \end{eqnarray}
We kunnen \( m \) ietsje sneller vinden via
\begin{equation} \{ m, ω_3 \} = \{ m_0 + 1, ω_3 \} = \Div(11 d_1 + 5 + 325, 325) = \Div(11 d_1 + 330, 325) \end{equation}
Samengevat:
\begin{align} s \| = J − J_0 \\ \{ a_0, ω_2 \} \| = \range{\Div(30 s + 29 − r, 10631)}{30} \\ d_1 \| = \dfloorratio{ω_2}{30} \\ a \| = a_0 + 1 \\ \{ m, ω_3 \} \| = \Div(11 d_1 + 330, 325) \\ d \| = \dfloorratio{ω_3}{11} + 1 \end{align}
Alternatief met groter bereik voor de berekening van \( a_0 \) en \( ω_2 \):
\begin{align} \{ ω_1, δ_1 \} \| = \Div(s, 10631) \\ \{ α_1, ω_2 \} \| = \Div(30 δ_1 + 29 − r, 10631) \\ a_0 \| = 30 ω_1 + α_1 \end{align}
\begin{align*} s \| = 2 455 774 − 1 948 440 = 507 334 \\ \{ a_0, ω_2 \} \| = \Div(30×507 334 + 15, 10631) = \Div(15 220 035, 10631) = \{1431, 7074\} \\ d_1 \| = \dfloorratio{7074}{30} = 235 \\ \{ m_0, ω_3 \} \| = \Div(11×235 + 5, 325) = \Div(2590, 325) = \{7, 315\} \\ d_0 \| = \dfloorratio{315}{11} = 28 \\ a \| = 1431 + 1 = 1432 \\ m \| = 7 + 1 = 8 \\ d \| = 28 + 1 = 29 \end{align*}
ofwel 29 Sha`ban 1432.
De Maya uit Anahuac (Midden-Amerika) gebruikten drie verschillende kalenders, waarvan er twee (de Tzolkin en de Haab) periodiek waren met vrij korte perioden, en de derde (de Lange Telling) misschien ook wel als periodiek bedoeld was maar die zulke lange perioden heeft dat hij in de praktijk als doorlopend (in plaats van periodiek) kan worden beschouwd.
Verschillende gebieden in Midden-Amerika hadden iets verschillende versies van deze kalenders, met andere namen voor dagen en maanden, andere manieren om jaren aan te geven, en soms telde men dagen vanaf dag 0 in plaats van vanaf dag 1. Hieronder geven we de kalenders van de stad Tikal.
De Haab heeft een dagnummer en een maand, maar geen jaarnummer. Er zijn 18 maanden van 20 dagen, plus een 19e maand van 5 dagen, en dat is samen 365 dagen, en dat noemen we het Haab-jaar. Er zijn geen schrikkeldagen. De maanden hebben een naam, en de dagen hebben een nummer dat begint bij 0.
Wij schrijven een datum in de Haab als \( \{ h_d, h_m \} \) waarin \( h_d \) het dagnummer is (van 0 tot 19) en \( h_m \) het maandnummer (van 1 tot 19).
Om een CJDN \( J \) om te rekenen naar een Haab-datum \( \{ h_d, h_m \} \) moeten we eerst \( H \) uitrekenen, het aantal dagen sinds het begin van het huidige Haab-jaar (met \( H = 0 \) voor de eerste dag van het Haab-jaar).
\begin{align} H \| = \dmodp{J + 65}{365} \\ h_m \| = \dfloorratio{H}{20} + 1 \\ h_d \| = \dmodp{H}{20} \end{align}
\begin{align*} H \| = \dmodp{J + 65}{365} = \dmodp{2 439 175}{365} = 245 \\ h_m \| = \dfloorratio{245}{20} + 1 = 13 \\ h_d \| = \dmodp{245}{20} = 5 \end{align*}
dus die dag is 245 dagen sinds het begin van het huidige Haab-jaar en komt overeen met de 5e dag van de 13e maand, dus \( \{ 5. 13 \} \).
Om een Haab-datum \( \{ h_d, h_m \} \) om te rekenen naar een CJDN rekenen we eerst \( H \) uit
\begin{equation} H = h_d + 20×(h_m − 1) \end{equation}
We weten dan dat
\begin{equation} J ≡ H − 65 \pmod{365} \end{equation}
Omdat er geen jaarnummer in de Haab zit komt deze Haab-datum elke 365 dagen weer terug. We kunnen formule \eqref{eq:nearestle} gebruiken om de laatste \( J \) op of voor een bepaalde \( J_0 \) te vinden die overeenkomt met deze Haab-datum:
\begin{equation} J = J_0 − \dmodp{J_0 − H + 65}{365} \end{equation}
Wat is de laatste CJDN in het jaar 1965 die overeenkomt met Haab-datum \( \{5,13\} \)? Dan zoeken we de laatste \( J ≡ 180 \pmod{365} \) op of voor CJDN \( J_0 = 2 439 126 \) (die overeenkomt met 31 december 1965), met behulp van formule \eqref{eq:nearestle}. We vinden
\begin{align*} J \| = J_0 − \dmodp{J_0 − 180}{365} \\ \| = 2 439 126 − \dmodp{2 438 946}{365} \\ \| = 2 439 126 − 16 = 2 439 110 \end{align*}
De Tzolkin heeft een periode van 20 dagen (de venteina) met een naam voor elke dag, en een periode van 13 dagen (de trecena) met een nummer voor elke dag (te beginnen bij 1).
Wij schrijven een datum in de Tzolkin als \( \{ t_t, t_v \} \), waarin \( t_t \) het dagnummer in de trecena is (van 1 tot 13) en \( t_v \) het dagnummer in de venteina (van 1 tot 20).
De trecena en venteina lopen allebei tegelijk op, dus na dag \( \{ 2, 7 \} \) komt dag \( \{ 3, 8 \} \) en dan \( \{ 4, 9 \} \), enzovoort. Omdat 13 en 20 relatief priem zijn komen alle mogelijke combinaties van venteina en trecena voor in deze kalender, dus na 13×20 = 260 dagen herhalen de datums zich weer.
We rekenen CJDN \( J \) als volgt om naar een Tzolkin-datum \( \{ t_t, t_v \} \):
\begin{align} t_t \| = \dmodp{J + 5}{13} + 1 \label{eq:trecena2} \\ t_v \| = \dmodp{J + 16}{20} + 1 \label{eq:venteina2} \end{align}
\begin{align*} t_t \| = \dmodp{2 439 110 + 5}{13} + 1 = 3 + 1 = 4 \\ t_v \| = \dmodp{2 439 110 + 16}{20} + 1 = 6 + 1 = 7 \end{align*}
dus die datum is \( \{ 4, 7 \} \).
Om een Tzolkin-datum \( \{ t_t, t_v \} \) om te rekenen naar een CJDN moeten we de twee gelijktijdige congruenties van vergelijkingen \eqref{eq:trecena2} en \eqref{eq:venteina2} oplossen, ofwel
\begin{align} J \| ≡ t_t − 6 \pmod{13} \\ J \| ≡ t_v − 17 \pmod{20} \end{align}
We combineren die congruenties op de manier van hoofdstuk 13.12.3. We hebben \( x_1 = t_t \), \( x_2 = t_v \), \( p_1 = 13 \), \( p_2 = 20 \), \( a_1 = 6 \), \( a_2 = 17 \). Dan
\begin{align} C_1 \| = x_1 − a_1 = t_t − 6 \\ P_1 \| = p_1 = 13 \end{align}
De grootste gemene deler van 13 en 20 is 1:
\begin{align} g_2 \| = 1 \\ Q_1 \| = \frac{P_1}{g_2} = \frac{13}{1} = 13 \\ q_2 \| = \frac{p_2}{g_2} = \frac{20}{1} = 20 \end{align}
We zoeken nu \( r_2 \) die voldoet aan \( r_2Q_1 ≡ 1 \pmod{q_2} \) ofwel \( 13r_2 ≡ 1 \pmod{20} \) en vinden \( r_2 = 17 \), want \( 13×17 = 221 ≡ 1 \pmod{20} \). Dan
\begin{align} \| \begin{split} C_2 \| = C_1 (1 − r_2Q_1) + (x_2 − a_2) r_2Q_1 \\ \| = (t_t − 6)×(1 − 17×13) + (t_v − 17)×17×13 \\ \| = 221 t_v − 220 t_t − 2437 \end{split} \\ P_2 \| = p_2Q_1 = 20×13 = 260 \end{align}
dus de oplossing is
\begin{equation} J ≡ 221 t_v − 220 t_t − 2437 = −39 t_v + 40 t_t − 97 \pmod{260} \end{equation}
\[ J ≡ −39×7 + 40×4 − 97 ≡ 50 \pmod{260} \]
Dat klopt met \( J = 2 439 110 \) want \( 2 439 110 = 9381×260 + 50 ≡ 50 \pmod{260} \).
\[ J ≡ −39×7 + 40×4 − 97 ≡ 50 \pmod{260} \]
Omdat er geen jaarnummer in de Tzolkin zit komt deze Tzolkin-datum elke 260 dagen weer terug. We kunnen formule \eqref{eq:nearestle} gebruiken om de laatste \( J \) op of voor een bepaalde \( J_0 \) te vinden die overeenkomt met deze Tzolkin-datum:
\begin{equation} J = J_0 − \dmodp{J_0 − 40 t_t + 39 t_v + 97}{260} \end{equation}
\[ J = 2 439 126 − \dmodp{2 439 126 − 50}{260} = 2 439 126 − 16 = 2 439 110 \]
Voor het aantal dagen \( T \) sinds de laatste \( \{ 1, 1 \} \) geldt
\begin{equation} \begin{split} T \| ≡ 40 (t_t − 1) − 39 (t_v − 1) \\ \| ≡ 40 t_t − 39 t_v − 1 \\ \| ≡ 40 t_t + 221 t_v − 1 \pmod{260} \end{split} \end{equation}
dus
\begin{equation} T ≡ \dmodp{40 t_t + 221 t_v − 1}{260} \end{equation}
\[ T = \dmodp{40×4 + 221×7 − 1}{260} = \dmodp{1706}{260} = 146 \]
dus de laatste dag daarvoor die \( \{ 1, 1 \} \) had was CJDN
\[ J = 2 439 110 − 146 = 2 438 964 \]
en dat klopt, want
\begin{align*} t_t \| = \dmodp{J + 5}{13} + 1 = \dmodp{2 438 969}{13} + 1 = 1 \\ t_v \| = \dmodp{J + 16}{20} + 1 = \dmodp{2 438 980}{20} + 1 = 1 \end{align*}
Soms wordt een datum aangegeven met Tzolkin en Haab. Van CJDN naar Tzolkin en Haab staat hierboven beschreven. Van een datum met Tzolkin en Haab naar CJDN is weer iets lastiger. We moeten dan tegelijkertijd oplossen:
\begin{align} J \| ≡ H − 65 \pmod{365} \\ J \| ≡ T − 96 \pmod{260} \end{align}
De eerste formule vonden we voor de Haab alleen, en de tweede formule voor de Tzolkin alleen. Deze formules hebben weer de vorm van hoofdstuk 13.12.3, met \( x_1 = H \), \( x_2 = T \), \( p_1 = 365 \), \( p_2 = 260 \), \( a_1 = 65 \), \( a_2 = 96 \). Dan
\begin{align} C_1 \| = x_1 − a_1 = H − 65 \\ P_1 \| = p_1 = 365 \end{align}
De grootste gemene deler van 365 en 260 is 5, dus
\begin{align} g_2 \| = 5 \\ Q_1 \| = \frac{P_1}{g_1} = \frac{365}{5} = 73 \\ q_2 \| = \frac{p_2}{g_1} = \frac{260}{5} = 52 \end{align}
We zoeken nu \( r_2 \) die voldoet aan \( r_2Q_1 ≡ 1 \pmod{q_2} \) ofwel \( 73r_2 ≡ 1 \pmod{52} \) en vinden \( r_2 = 5 \), want \( 73×5 = 365 = 7×52 + 1 ≡ 1 \pmod{52} \). Dan
\begin{align} \| \begin{split} C_2 \| = C_1 (1 − r_2Q_1) + (x_2 − a_2) r_2Q_1 \\ \| = (H − 65)×(1 − 5×73) + (T − 96)×5×73 \\ \| = 365 T − 364 H − 11380 \end{split} \\ P_2 \| = p_2Q_1 = 365×52 = 18980 \end{align}
dus de oplossing is
\begin{equation} J ≡ 365 T − 364 H − 11380 ≡ 365 T − 364 H + 7600 \pmod{18980} \end{equation}
De Tzolkin en Haab hebben samen een periode van 18980 dagen, ofwel ongeveer 52 jaar.
Omdat \( g_2 \) niet gelijk is aan 1 komen niet alle mogelijke combinaties van \( H \) en \( T \) voor in de kalender. Je krijgt uit voorgaande formule wel voor alle combinaties van \( H \) en \( T \) een antwoord, maar dat antwoord is alleen bruikbaar voor combinaties van \( H \) en \( T \) die ook echt in de kalender voorkomen. Dat zijn combinaties waarvoor \( H − T ≡ 65 − 96 ≡ 4 \pmod{5} \).
De Lange Telling telt dagen en heeft een serie steeds langere perioden. De kleinste is 20 dagen, de volgende is 18 keer zo lang (dus 360 dagen), en daarna is elke volgende periode steeds 20 keer zo lang als de vorige. Het getal voor elke periode begint bij 0. Vaak zijn datums in de Lange Telling gegeven met vijf getallen, maar nog langere perioden zijn bekend, tot het negende getal toe. De langst bekende periode komt overeen met ongeveer 63 miljoen jaar. Hieronder gaan we er van uit dat de Lange Telling vijf getallen bevat, en kan het vijfde getal willekeurig groot worden.
De begindatum 0.0.0.0.0 van de Lange Telling komt waarschijnlijk overeen met CJDN \( J_0 = 584 283 \) (6 september −3113 in de Juliaanse kalender).
Het omrekenen tussen Lange Telling \( l_5.l_4.l_3.l_2.l_1 \) en CJDN \( J \) gaat schematisch als volgt:
l₅ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ l₄ ────────────────────┐ ┃ l₃ ───────────┐ │ ┃ l₂ ──┐ │ │ ┃ l₁ ─(1)─ d₁ ─(2)─ d₂ ─(3)─ d₃ ─(4)━ s ━(+J₀)━ J
De samenvatting van de kalenderniveau's is
(n) | \({f}\) | \({g}\) | \({q}\) | \({h}\) | \({t}\) | \({p}\) |
---|---|---|---|---|---|---|
1 | 20 | 1 | 20 | 0 | 0 | 20 |
2 | 360 | 1 | 360 | 0 | 0 | 360 |
3 | 7200 | 1 | 7200 | 0 | 0 | 7200 |
4 | 144000 | 1 | 144000 | 0 | 0 | 144000 |
Van Lange Telling naar CJDN:
\begin{eqnarray} d_1 \| = \| 20 l_2 + l_1 \\ d_2 \| = \| 360 l_3 + d_1 \\ d_3 \| = \| 7200 l_4 + d_2 \\ d_4 \| = \| 144 000 l_5 + d_3 \\ J \| = \| d_4 + J_0 = d_4 + 584 283 \end{eqnarray}
Van CJDN naar Lange Telling:
\begin{eqnarray} d_4 \| = \| J − J_0 = J − 584 283 \\ \{ l_5, d_3 \} \| = \| \Div(d_4, 144 000) \\ \{ l_4, d_2 \} \| = \| \Div(d_3, 7200) \\ \{ l_3, d_1 \} \| = \| \Div(d_2, 360) \\ \{ l_2, l_1 \} \| = \| \Div(d_1, 20) \end{eqnarray}
\begin{align*} d_1 \| = 20 l_2 + l_1 = 20×5 + 7 = 107 \\ d_2 \| = 360 l_3 + d_1 = 360×12 + 107 = 4427 \\ d_3 \| = 7200 l_4 + d_2 = 7200×17 + 4427 = 126 827 \\ d_4 \| = 144 000 l_5 + d_3 = 144 000×12 + 126 827 = 1 854 827 \\ J \| = d_4 + 584 283 = 1 854 827 + 584 283 = 2 439 110 \end{align*}
Welke Lange Telling \( L \) komt overeen met CJDN \( J = 2 439 110 \)? Dan is
\begin{align*} \{ l_5, d_3 \} \| = \Div(2 439 110 − 584 283, 144 000) \\ \| = \Div(1 854 827, 144 000) = \{ 12, 126 827 \} \\ \{ l_4, d_2 \} \| = \Div(126 827, 7200) = \{ 17, 4427 \} \\ \{ l_3, d_1 \} \| = \Div(4427, 360) = \{ 12, 107 \} \\ \{ l_2, l_1 \} \| = \Div(107, 20) = \{ 5, 7 \} \end{align*}
Het antwoord is \( L = 12.17.12.5.7 \).
Als je wilt weten hoeveel dagen er zijn tussen twee datums, dan kun je dat precies uitrekenen door het CJDN van beide datums van elkaar af te trekken. Als je genoegen neemt met een mogelijke fout van een paar dagen, dan kun je het ook schatten uit het verschil gemeten in kalenderjaren, kalendermaanden, en kalenderdagen.
Zulke informatie (het aantal kalenderjaren, maanden en dagen) is in de meeste kalenders niet voldoende om het preciese aantal dagen uit te reken, want niet elk jaar bevat even veel dagen als elk ander jaar en niet elke maand bevat even veel dagen als elke andere maand (in alle kalenders).
Stel dat de tweede datum \( j \) kalenderjaren en \( m \) kalendermaanden en \( d \) kalenderdagen later is dan de eerste (beide in dezelfde kalender, de Gregoriaanse kalender of Joodse kalender of administratieve Islamitische kalender of Egyptische kalender), waarbij je gewoon het jaartal, maandnummer en dagnummer van de tweede datum aftrekt van die van de eerste datum (die later moet zijn). De variabele \( j \) mag positief of nul zijn, maar niet negatief. De variabelen \( m \) en \( d \) mogen positief of nul of negatief zijn, maar \( m \) mag niet overeenkomen met meer dan een kalenderjaar, en \( d \) mag niet overeenkomen met meer dan een kalendermaand. Voor de joodse kalender stellen we dat tisjrie maand nummer 1 is en dat adar Ⅱ samen met adar Ⅰ als maand nummer 6 gerekend wordt (zodat maand 6 tot 59 dagen lang kan zijn). Voor de Egyptische kalender rekenen we de laatste 5 dagen van het jaar als een 13e maand. Dan kun je het aantal dagen \( n \) tussen de twee datums schatten met de formule
\begin{equation} n = \dfloor{a j + b m + c d} \end{equation}
met \( a \), \( b \) en \( c \) uit de volgende tabel:
\({a}\) | \({b}\) | \({c}\) | \({|Δ|_\text{max}}\) | \({σ}\) | \({p_0}\) | |
---|---|---|---|---|---|---|
Gregoriaans | 365.24 | 30.4 | 1 | 4 | 1.1 | 35 % |
Joods | 365.25 | 31.0 | 0.9 | 37 | 12.9 | 3 % |
Islamitisch | 354.367 | 29.5 | 1 | 2 | 0.6 | 62 % |
Egyptisch | 365 | 30 | 1 | 0 | 0 | 100 % |
De \( |Δ|_\text{max} \) uit de tabel toont de grootste fout (gemeten in dagen) die je met die formule voor die kalender maakt (gebaseerd op 10.000 willekeurige testdatums) voor datums die niet meer dan 400 jaar uiteen zijn. De \( σ \) toont de standaardafwijking (zeg maar de gemiddelde fout, ook gemeten in dagen). De \( p_0 \) toont de kans dat het geschatte aantal dagen \( n \) tussen de twee datums precies goed is.
Het is wel duidelijk dat de Egyptische kalender het meest regelmatig is, want die geeft de kleinste fouten (namelijk nul). Daarna volgt de administratieve Islamitische kalender, dan de Gregoriaanse kalender (met meer variatie in de maandlengten dan de Islamitische kalender), en als laatste de Joodse kalender (met variatie in het aantal maanden per jaar).
In de Joodse kalender geeft dit \( n = \dfloor{365.25×14 + 31.0×−4 + 0.9×−8} = \dfloor{4982.3} = 4983 \) dagen, hetgeen heel toevallig gelijk is aan het echte aantal dagen tussen die twee datums in de Joodse kalender.
In de administratieve Islamitische kalender geeft dit \( n = \dfloor{354.367×14 + 29.5×−4 − 8} = \dfloor{4835.138} = 4835 \) dagen, hetgeen gelijk is aan het echte aantal dagen tussen die twee datums in de administratieve Islamitische kalender.
In de Egyptische kalender geeft dit \( n = \dfloor{365×14 + 30×−4 − 8} = \dfloor{4982} = 4982 \) dagen, hetgeen gelijk is aan het echte aantal dagen tussen die twee datums in de Egyptische kalender.
//aa.quae.nl/nl/reken/juliaansedag.html;
Laatst vernieuwd: 2025-01-23