Perpetual calendar

Illustration from 1881 U.S. Patent 248872, for a perpetual calendar paperweight. The upper section is rotated to reveal one of seven lists of years (splitting leap years) for which the seven calendars below apply.
A 50 year "pocket calendar" that is adjusted by turning the dial to place the name of the month under the current year. One can then deduce the day of the week, or the date.

A perpetual calendar is a calendar valid for many years, usually designed to allow the calculation of the day of the week for a given date in the future.

For the Gregorian and Julian calendars, a perpetual calendar typically consists of one of two general variations:

The seven calendars may be combined into one, either with 13 columns of which only seven are revealed,[2][3] or with movable day-of-week names (as shown in the pocket perpetual calendar picture.

Note that such a perpetual calendar fails to indicate the dates of moveable feasts such as Easter, which are calculated based on a combination of events in the Tropical year and lunar cycles. These issues are dealt with in great detail in Computus.

An early example of a perpetual calendar for practical use is found in the manuscript GNM 3227a. The calendar covers the period of 1390–1495 (on which grounds the manuscript is dated to c. 1389). For each year of this period, it lists the number of weeks between Christmas day and Quinquagesima. This is the first known instance of a tabular form of perpetual calendar allowing the calculation of the moveable feasts which became popular during the 15th century.[4]

Other uses of the term "perpetual calendar"

These meanings are beyond the scope of the remainder of this article.

Algorithms

Perpetual calendars use algorithms to compute the day of the week for any given year, month, and day of month. Even though the individual operations in the formulas can be very efficiently implemented in software (requiring no processor-intensive floating-point operations), they are too complicated for most people to perform all of the arithmetic mentally.[6] Perpetual calendar designers hide the complexity in tables to simplify their use.

A perpetual calendar employs a table for finding which of fourteen yearly calendars to use. A table for the Gregorian calendar expresses its 400-year grand cycle: 303 common years and 97 leap years total to 146,097 days, or exactly 20,871 weeks. This cycle breaks down into one 100-year period with 25 leap years, making 36,525 days, or one day less than 5,218 full weeks; and three 100-year periods with 24 leap years each, making 36,524 days, or two days less than 5,218 full weeks.

Within each 100-year block, the cyclic nature of the Gregorian calendar proceeds in exactly the same fashion as its Julian predecessor: A common year begins and ends on the same day of the week, so the following year will begin on the next successive day of the week. A leap year has one more day, so the year following a leap year begins on the second day of the week after the leap year began. Every four years, the starting weekday advances five days, so over a 28-year period it advances 35, returning to the same place in both the leap year progression and the starting weekday. This cycle completes three times in 84 years, leaving 16 years in the fourth, incomplete cycle of the century.

A major complicating factor in constructing a perpetual calendar algorithm is the peculiar and variable length of February, which was at one time the last month of the year, leaving the first 11 months March through January with a five-month repeating pattern: 31, 30, 31, 30, 31, ..., so that the offset from March of the starting day of the week for any month could be easily determined. Zeller's congruence, a well-known algorithm for finding the day of week for any date, explicitly defines January and February as the "13th" and "14th" months of the previous year in order to take advantage of this regularity, but the month-dependent calculation is still very complicated for mental arithmetic:

\left\lfloor\frac{(m+1)26}{10}\right\rfloor \mod 7,

Instead, a table-based perpetual calendar provides a simple look-up mechanism to find offset for the day of week for the first day of each month. To simplify the table, in a leap year January and February must either be treated as a separate year or have extra entries in the month table:

Month Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
Add 0 3 3 6 1 4 6 2 5 0 3 5
For leap years 6 2

Perpetual Julian and Gregorian calendar table

For Julian dates before 1300 and after 1999 the year in the table which differs by an exact multiple of 700 years should be used. For Gregorian dates after 2299,the year in the table which differs by an exact multiple of 400 years should be used. The values "r0" through "r6" indicate the remainder when the Hundreds value is divided by 7 and 4 respectively, indicating how the series extend in either direction. Both Julian and Gregorian values are shown 1500–1999 for convenience.

For each component of the date (the hundreds, remaining digits and month), the corresponding numbers in the far right hand column on the same line are added to each other and the day of the month. This total is then divided by 7 and the remainder from this division located in the far right hand column. The day of the week is beside it. Bold figures (e.g. 04) denote leap year. If a year ends in 00 and its hundreds are in bold it is a leap year. Thus 19 indicates that 1900 is not a Gregorian leap year, (but 19 in the Julian column indicates that it is a Julian leap year, as are all Julian x00 years). 20 indicates that 2000 is a leap year. Use Jan and Feb only in leap years.

100s of YearsRemaining Year DigitsMonthD
o
W
#
Julian
(r ÷ 7)
Gregorian
(r ÷ 4)
r5 1916 20 r000 06 17 2328 34 45 5156 62 73 7984 90 Jan OctSa0
r4 1815 19 r301 07 12 18 29 35 40 4657 63 68 74 85 91 96MaySu1
r3 17
N/A
02 13 19 2430 41 47 5258 69 75 8086 97 FebAugM2
r2 1618 22 r203 08 14 2531 36 42 5359 64 70 8187 92 98Feb Mar NovTu3
r1 15
N/A
09 15 20 26 37 43 48 54 65 71 76 82 93 99 JunW4
r0 1417 21 r104 10 21 2732 38 49 5560 66 77 8388 94 Sep DecTh5
r6 13
N/A
05 11 16 2233 39 44 5061 67 72 7889 95 Jan Apr JulF6

Example: On what day does Feb 3, 4567 (Gregorian) fall?
1) The remainder of 45 / 4 is 1, so use the r1 entry: 5.
2) The remaining digits 67 give 6.
3) Feb (not Feb for leap years) gives 3.
4) Finally, add the day of the month: 3.
5) Adding 5 + 6 + 3 + 3 = 17. Dividing by 7 leaves a remainder of 3, so the day of the week is Tuesday.

Check the result

A result control is shown by the calendar period from 1582 October 15 possible, but only for Gregorian calendar dates.

A genuinely perpetual calendar, which allows its user to look up the day of the week for any Gregorian date.

See also

Wikimedia Commons has media related to Perpetual calendars.

References

  1. U.S. Patent 1,042,337, "Calendar (Fred P. Gorin)".
  2. U.S. Patent 248,872, "Calendar (Robert McCurdy)".
  3. "Aluminum Perpetual Calendar". 17 September 2011.
  4. Trude Ehlert, Rainer Leng, 'Frühe Koch- und Pulverrezepte aus der Nürnberger Handschrift GNM 3227a (um 1389)'; in: Medizin in Geschichte, Philologie und Ethnologie (2003), p. 291.
  5. "Mechanism Of Perpetual Calendar Watch". 17 September 2011.
  6. But see formula in preceding section, which is very easy to memorize.

External links