Perpetual calendar

A perpetual calendar is a calendar valid for many years, usually designed to look up 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 three general variations:

  • 14 one-year calendars, plus a table to show which one-year calendar is to be used for any given year. These one-year calendars divide evenly into two sets of seven calendars: seven for each common year (year that does not have a February 29) with each of the seven starting on a different day of the week, and seven for each leap year, again with each one starting on a different day of the week, totaling fourteen. (See Dominical letter for one common naming scheme for the 14 calendars.)
  • Seven (31-day) one-month calendars (or seven each of 28–31 day month lengths, for a total of 28) and one or more tables to show which calendar is used for any given month. Some perpetual calendars' tables slide against each other, so that aligning two scales with one another reveals the specific month calendar via a pointer or window mechanism.[1] 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).
  • A mixture of the above two variations - a one-year calendar in which the names of the months are fixed and the days of the week and dates are shown on movable pieces which can be swapped around as necessary.[4]

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 Nürnberger Handschrift 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 that became popular during the 15th century.[5]

Other uses of the term "perpetual calendar"

  • Offices and retail establishments often display devices containing a set of elements to form all possible numbers from 1 through 31, as well as the names/abbreviations for the months and the days of the week, so as to show the current date for the convenience of people who might be signing and dating documents such as checks. Establishments that serve alcoholic beverages may use a variant that shows the current month and day, but subtracting the legal age of alcohol consumption in years, indicating the latest legal birth date for alcohol purchases. A very simple device consists of two cubes in a holder. One cube carries the numbers zero to five. The other bears the numbers 0, 1, 2, 6 (or 9 if inverted), 7 and 8. This is perpetual because only one and two may appear twice in a date and they are on both cubes.
  • Certain calendar reforms have been labeled perpetual calendars because their dates are fixed on the same weekdays every year. Examples are The World Calendar, the International Fixed Calendar and the Pax Calendar. Technically, these are not perpetual calendars but perennial calendars. Their purpose, in part, is to eliminate the need for perpetual calendar tables, algorithms and computation devices.
  • In watchmaking, "perpetual calendar" describes a calendar mechanism that correctly displays the date on the watch 'perpetually', taking into account the different lengths of the months as well as leap years. The internal mechanism will move the dial to the next day.[6]

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


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, they are too complicated for most people to perform all of the arithmetic mentally.[7] 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:

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 JanFebMarAprMayJunJulAugSepOctNovDec
Add 033614625035
For leap years 62

Perpetual Julian and Gregorian calendar tables

Table one (cyd)

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

Table two (cymd)

Years of the century
Example 1

Gregorian 31 March 2006: Greg century 20(c) and year 06(y) meet at A in the table of Latin square. The A in row Mar(m) meets 31(d) at Fri in the table of Weekdays. The day is Friday.

Example 2

BC 1 January 45: BC 45 = -44 = -100 + 56 (a leap year). -1 and 56 meet at B and Jan_B meets 1 at Fri(day).

Example 3

Julian 1 January 1900: Julian 19 meets 00 at A and Jan_A meets 1 at Sat(urday).

Example 4

Gregorian 1 January 1900: Greg 19 meets 00 at G and Jan_G meets 1 at Mon(day).

00010203 0405
0607 08091011
 12131415 16
171819 202122
23 24252627 
28293031 3233
3435 36373839
 40414243 44
454647 484950
51 52535455 
56575859 6061
6263 64656667
 68697071 72
737475 767778
79 80818283 
84858687 8889
9091 92939495
Centuries   Latin square   Months
-4  3 10 17 FEDCBAGJan AprJul 
-3 4 11 18 15 19 GFEDCBAJan   Oct
-2 5 12 19 16 20 AGFEDCB  May  
-1 6 13 20 BAGFEDCFeb  Aug 
0 7 14 21 17 21 CBAGFEDFebMar  Nov
1 8 15 22 DCBAGFE  Jun  
2 9 16 23 18 22 EDCBAGF   SepDec
  Days   Weekdays  
4111825 ThuFriSatSunMonTueWed
5121926 FriSatSunMonTueWedThu
6132027 SatSunMonTueWedThuFri
7142128 SunMonTueWedThuFriSat
Days of the weekMonthsDays
04 11 18 19 23 27SunMonTueWedThuFriSatJanApriJul0108152229
03 10 17MonTueWedThuFriSatSunSepDec0209162330
02 09 1618 22 26TueWedThuFriSatSunMonJun0310172431
01 08 15WedThuFriSatSunMonTueFebMarNov04111825
00 07 1417 21 25ThuFriSatSunMonTueWedFebAug05121926
–1 06 13FriSatSunMonTueWedThuMay06132027
–2 05 1216 20 24SatSunMonTueWedThuFriJanOct07142128
Years00 01 02030405
060708 091011
12 13141516
17181920 2122
2324 252627

Table three (dmyc)

(mod 7)
(mod 4)
Dates 01




Years of the century (mod 28)
6 05 12 1916 20 24AprJulJanSunMonTueWedThuFriSat010712182935404657636874859196
5 06 13 20SepDecSatSunMonTueWedThuFri0213192430414752586975808697
4 07 14 2117 21 25JunFriSatSunMonTueWedThu030814253136425359647081879298
3 08 15 22FebMarNovThuFriSatSunMonTueWed0915202637434854657176829399
2 09 16 2318 22 26AugFebWedThuFriSatSunMonTue0410212732384955606677838894
1 10 17 24MayTueWedThuFriSatSunMon0511162233394450616772788995
0 11 18 2519 23 27JanOctMonTueWedThuFriSatSun0617232834455156627379849000

See also


  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. Doerfler, Ronald W (29 August 2019). "A 2010 "graphical computing" calendar". Retrieved 30 August 2019.
  5. 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.
  6. "Mechanism Of Perpetual Calendar Watch". 17 September 2011.
  7. But see formula in preceding section, which is very easy to memorize.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.