logo To Foot
© J R Stockton, ≥ 2009-01-04

On Rektor Chr. Zeller's Card
"Das Ganze der Kalender-Rechnung"

No-Frame * Framed Index * Frame This
Links within this site :-

The Card "Das Ganze der Kalender-Rechnung"

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.

As sent, 1397×2119, BMP

Reduced Image of the Card



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 q, Month m, year A, to find the Day-of-Week.

  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 A, to determine the Paschal Full Moon Day.

  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 A and the Paschal Full Moon Number b, to find the Date of Easter.

  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.

Notes on the Card

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.

Task 1. Day of the Week

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 2. Paschal Full Moon
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.

For the Old Calendar

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.

For the New Calendar

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.

Tests for the Card

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.

: Years (≥0)     : Report errors on new page/tab; else by an alert
  Test Old and New Day-of-Week, about one day of every month
  Test Old and New Day-of-Week, every Gregorian day
  Test Julian Paschal Full Moon and Easter Sunday
Apply 1886 II.1 Notes :-
1. Use (8(A/100)+13)/25     - using A/300 is only valid for AD 1500 to 4199 inclusive
2. Handle the "rare exceptional cases" in Task :   0   2   3   (2 is best)
  Test Gregorian Paschal Full Moon and Easter Sunday
Zeller is continued after zeller-c.htm#Opus.
1882, 1883, 1885, 1886.
Home Page
Mail: no HTML
© Dr J R Stockton, near London, UK.
All Rights Reserved.
These pages are tested mainly with Firefox and W3's Tidy.
This site, http://www.merlyn.demon.co.uk/, is maintained by me.