© J R Stockton, ≥ 2009-01-04

"Das Ganze der Kalender-Rechnung".

Links within this site :-

**Merlyn Home Page**- Site Index, E-Mail, Copying**This Page**:-- My Main Zeller Page, with :-
- Papers published by Zeller :-
- The Date of Easter Sunday
- The Calculation of Easter Sunday after the Book of Common Prayer of the Church of England
- For more date/time pages, and links, see Date and Time Index and Links
- JavaScript Include Files

On 2008-11-04, Gerhard Zeller of the Martinszeller-Verein
kindly sent me an image^{†} of a card (*eine
Postkarte*) which had been produced by Rektor Christian Zeller to
summarise his date methods for his family and
others. I do not know exactly when the Card was produced, but it was
cited on 1886-06-03.

Translated by me, with help from Claus Tøndering, and Claudia & Ian Barnes, late 2008.

Chr. Zeller, Seminary Rektor, Markgröningen

The Essentials of Calendar Calculation.

Task 1. From the three Date numbers : Day Rule. In the old Calendar the sum
*q + 2m + (3m+3)/5 + A + A/4*
in the new Calendar this sum reduced by
*(A/100 - A/400 - 2)*
then divide by 7, the remainder is the number of the
day-of-week required.

Fractions are omitted ; Jan. and Feb. are to be taken as the 13th and 14th months of the previous year. If the division is exact, use 7 for the remainder.

Task 2. From the Year Number

Rule. In the old Cal. the sum
*19 A - A/19 + 15 *

in the new Cal. this sum increased by
*(A/100 - A/300 - A/400)*
then divide by 30; the remainder *b*
[ With the highlighted
adjustment of Task 3 done here instead, by decrementing b in those two
cases, the Paschal Full Moon will always be correct. ]
shows how many days after March 21st the Paschal Full Moon will be.

Task 3. From the Year Number

Rule. In the old Cal. 6-times *A/4 - A - b*
[ This
interpretation works : *6×(A/4) - A - b* ]

in the new Cal. this increased by *(A/100 - A/400 - 2)*

then divide by 7; the remainder gives how many days after the
Paschal Full Moon the Easter festival is.

If the division is exact, use 7 as the remainder
; 0 only in
two rare exceptional cases: when *b=28* and when also by the
division *A/19* the remainder is more than 10, or when *b=29*
will be
[ With that there, one always
gets a correct Easter date, so the Paschal Full Moon must then sometimes
be wrong. ].

The calculations will be shorter if the sums that are to be divided by 7 or 30 are reduced by multiples of 7 or 30 during the summation.

Reproduction prohibited ; further copies are to be

had for 10 Pf. in the orphanage at Markgröningen

and from A. Müller, Stuttgart, Kronprinzstr. 3.

Zeller uses "Old Calendar" for the Julian Calendar, and "New Calendar" for the Gregorian Calendar.

The green-highlighted part of Task 3 is only to be used for the New Calendar.

If the Gregorian Paschal Full Moon date is to be always correct, the adjustment done by the highlighted part of Task 3 must be performed in Task 2.

Tests here can run from the beginning of fictitious year AD 0. Using the expressions on the Card, one can get, for rather early years, into mod-of-negative errors. Zeller, being pre-computer, would surely expect that in these cases the obvious correction would be made; and he might not have cared to cover such extreme cases anyway.

Otherwise, I have found no cases where mod-of-negative might occur. Where division by 7 gives 0, the Card says (generally) that 7 should be used instead.

Consider Likely Errors in Implementations and Common Notes, written for the papers of 1882 to 1886.

Zeller does not actually here define the Day-of-Week numbering, which is the obvious Sun=1 to Sat=7.

Tests verify Task 1, for both calendars, for all dates after
AD 0000-02-29, before which *A* becomes negative.
One can add a multiple of 28 or 400, such as 2800, years.

Task 3. Easter Sunday

For some years in the zeroth centade, the first expression in Task 3
gives a negative result, leading to a *mod 7* error and giving
Easter a week too early. Easter was not defined in that centade, but it
is nice to be able to use any non-negative year. The remedy is to add a
sufficient multiple of 7, for which 77 suffices.

A full test, covering the Julian repeat interval of 532 years, confirms Task 3 (with the questionable part not applied, and using 77 as above) for the date of Julian Easter Sunday, which implies that the Old Calendar part of Task 2 is also correct.

Tests do not confirm the unmodified algorithm of Tasks 2 & 3 for the date of Gregorian Easter Sunday, although most years are correct.

Task 2 uses, for the New Calendar only, a division by 300. The only
corresponding divisions in the four Papers are in the
1886 paper :
by 3 in II.1.B.2 (but see the following Note 1) and by 300 in its
Afterword (*Nachtrag*). Because *A/300* is used, the
printed method is not valid before the year AD 1500 or
after the year AD 4199.

Most of the second paragraph of Task 3, "*0 nur in zwei ...
wird.*", only applies to the New Calendar; and that the adjustment
should really be applied in Task 2. It represents a complication in the
determination of the Gregorian Paschal Full Moon, introduced for complex
reasons. Also, as placed in the Card, it breaks the logic that Easter
Sunday is always *after* the day of the Paschal Full Moon. However,
the Card does give a correct value for the date of Easter Sunday.

Task 3, when without *; 0 ... wird* (Note 2), is doing what it
should do to go from Paschal Full Moon to Easter Sunday, for both
Calendars.

With the adjustment performed in Task 2, correct dates are always given for both the Paschal Full Moon and Easter Sunday.

The Gregorian Easter test has been run over the full cycle of 5700000 years.

"10 Pf." means [a price of] ten pfennigs (a tenth of a Mark) - almost a penny-farthing (1¼d) in British money of the time, and about €?.?? in current money.

In currencies of the time, German gold mark gives 10 Mark = 3.58 g gold, and Pound sterling says that 1 sovereign contained 7.3 g gold. Therefore 10 Pf was equivalent to 1.184 d. Considering only the value of gold, that might be roughly £0.70 or €0.90 in mid-2008 currency.

For the Gregorian-Julian date difference (`GJdif`), see in
Date and Time Scales.

Code lines marked `// Z` represent operations given in the
Card; lines marked `// J` represent my adjustments to the Easter
algorithm; the unmarked lines are for testing.

In the code, `((X/Y)|0)` or `(X/Y|0)` is faster than
`Math.floor(X/Y)`, which in C would be `X\Y` and in Pascal
`X div Y`, integer division; and `X%Y` is Pascal `X mod
Y`, the remainder operation.

The "known good" Easter routines have been fully tested against trustworthy sources.

Paschal Full Moon (PFM) and Easter Sunday (ESu) have been successfully tested in Opera 9.27 from Year 0 over more than one full cycle of each calendar.