Computus ("Latin for "computation") is a calculation that determines the calendar date of "Easter. Because the date is based on a "calendar-dependent "equinox rather than the "astronomical one, there are differences between calculations done according to the "Julian calendar and the modern "Gregorian calendar. The name has been used for this procedure since the early "Middle Ages, as it was considered the most important computation of the age.
For most of their history Christians have calculated Easter independently of the "Jewish calendar. In principle, Easter falls on the Sunday following the full moon that follows the northern spring equinox (the "paschal full moon). However, the vernal equinox and the full moon are not determined by astronomical observation. The vernal equinox is fixed to fall on 21 March (previously it varied in different areas and in some areas Easter was allowed to fall before the equinox). The full moon is an "ecclesiastical full moon determined by reference to a lunar calendar, which again varied in different areas. While Easter now falls at the earliest on the 15th of the lunar month and at the latest on the 21st, in some areas it used to fall at the earliest on the 14th (the day of the paschal full moon) and at the latest on the 20th, or between the sixteenth and the 22nd. The last limit arises from the fact that the "crucifixion was considered to have happened on the 14th (the eve of the "Passover) and the "resurrection therefore on the sixteenth. The "computus" is the procedure of determining the first Sunday after the first ecclesiastical full moon falling on or after 21 March, and the difficulty arose from doing this over the span of centuries without accurate means of measuring the precise "tropical year. The "synodic month had already been measured to a high degree of accuracy. The schematic model that eventually was accepted is the "Metonic cycle, which equates 19 tropical years to 235 synodic months.
In 1583, the "Catholic Church began using 21 March under the Gregorian calendar to calculate the date of Easter, while the "Eastern Churches have continued to use 21 March under the Julian calendar. The Catholic and Protestant denominations thus use an ecclesiastical full moon that occurs four, five or 34 days earlier than the eastern one.
The "earliest and latest dates for Easter are 22 March and 25 April.^{[1]} In the Gregorian calendar those dates are as commonly understood. However, in the Orthodox Churches, while those dates are the same, they are reckoned using the Julian calendar; therefore, on the Gregorian calendar as of the 21st century, those dates are 4 April and 8 May.
Easter is the most important Christian feast, and the proper date of its celebration has been the subject of "controversy as early as the "meeting of Anicetus and Polycarp around 154. According to "Eusebius' Church History, quoting "Polycrates of Ephesus,^{[2]} churches in the "Roman Province of Asia "always observed the day when the people put away the "leaven", namely Passover, the 14th of the lunar month of "Nisan. The rest of the Christian world at that time, according to Eusebius, held to "the view which still prevails," of fixing Easter on Sunday. Eusebius does not say how the Sunday was decided. Other documents from the 3rd and 4th centuries reveal that the customary practice was for Christians to consult their Jewish neighbors to determine when the week of Passover would fall, and to set Easter on the Sunday that fell within that week.^{[3]}^{[4]}
By the end of the 3rd century some Christians had become dissatisfied with what they perceived as the disorderly state of the Jewish calendar. The chief complaint was that the Jewish practice sometimes set the 14th of Nisan before the spring equinox. This is implied by "Dionysius, Bishop of Alexandria, in the mid-3rd century, who stated that "at no time other than the spring equinox is it legitimate to celebrate Easter" (Eusebius, Church History 7.20); and by "Anatolius of Alexandria (quoted in Eusebius, Church History 7.32) who declared it a "great mistake" to set the paschal lunar month when the sun is in the twelfth sign of the zodiac (i.e., before the equinox). And it was explicitly stated by Peter, bishop of Alexandria that "the men of the present day now celebrate [Passover] before the [spring] equinox...through negligence and error."^{[5]} Another objection to using the Jewish computation may have been that the Jewish calendar was not unified. Jews in one city might have a method for reckoning the Week of Unleavened Bread different from that used by the Jews of another city.^{[6]} Because of these perceived defects in the traditional practice, Christian computists began experimenting with systems for determining Easter that would be free of these defects. But these experiments themselves led to controversy, since some Christians held that the customary practice of holding Easter during the Jewish festival of Unleavened Bread should be continued, even if the Jewish computations were in error from the Christian point of view.^{[7]}
At the "First Council of Nicaea in 325, it was agreed that the Christians should observe a common date, independent from the Jewish method.^{[8]} Because of the divergence of tables mentioned above it was usual to negotiate a common date when discrepancies arose. It took several centuries before a common method was accepted throughout Christendom. The process of working out the details generated still further controversies.
The method from Alexandria became authoritative. In its developed form it was based on the "epacts of a reckoned moon according to the 19-year "Metonic cycle. Such a cycle was first proposed by Bishop "Anatolius of Laodicea (in present-day Syria), c. 277.^{[9]} Alexandrian Easter tables were composed by "Pope Theophilus about 390 and within the bishopric of his nephew "Cyril about 444. In Constantinople, several computists were active over the centuries after Anatolius (and after the Nicaean Council), but their Easter dates coincided with those of the Alexandrians. Having deviated from the Alexandrians during the 6th century, churches beyond the eastern frontier of the former Byzantine Empire, including the "Assyrian Church of the East,^{[10]} now celebrate Easter on different dates from "Eastern Orthodox Churches four times every 532 years.^{[11]} The Alexandrian computus was converted from the "Alexandrian calendar into the Julian calendar in Rome by "Dionysius Exiguus, though only for 95 years. Dionysius introduced the "Christian Era (counting years from the Incarnation of Christ) when he published new Easter tables in 525.^{[12]}^{[13]}
Dionysius's tables replaced earlier methods used by the Church of Rome. The earliest known Roman tables were devised in 222 by "Hippolytus of Rome based on eight-year cycles. Then 84-year tables were introduced in Rome by "Augustalis near the end of the 3rd century.^{[14]} A completely distinct 84-year cycle, the Insular latercus, was used in the British Isles. These old tables were used in Northumbria until 664, and by isolated monasteries as late as 931. A modified 84-year cycle was adopted in Rome during the first half of the 4th century. "Victorius of Aquitaine tried to adapt the Alexandrian method to Roman rules in 457 in the form of a 532-year table, but he introduced serious errors.^{[15]} These Victorian tables were used in "Gaul (now France) and Spain until they were displaced by Dionysian tables at the end of the 8th century.
In the British Isles Dionysius' and Victorius' tables conflicted with the indigenous tables. These used an 84-year cycle because this made the dates of Easter repeat every 84 years—but an error made the full moons fall progressively too early. Add the fact that Easter could fall, at earliest, on the fourteenth day of the lunar month and often Eanfleda, who followed the Roman system, fasted on Palm Sunday at the same time that her husband Oswy, king of Northumbria, fasted on Easter Sunday.
The Irish Synod of Mag Léne in 631 decided in favor of either the Dionysian or Victorian Easter and the northern English "Synod of Whitby in 664 adopted the Dionysian tables. Bede records that, "There happened an eclipse of the sun on the third of May, about ten o'clock in the morning." The time is correct but the date is two days late. This was done to conceal the inaccuracy that had accumulated in the new cycle since it was originally constructed.
The Dionysian reckoning was fully described by "Bede in 725.^{[16]} It may have been adopted by "Charlemagne for the Frankish Church as early as 782 from "Alcuin, a follower of Bede. The Dionysian/Bedan computus remained in use in Western Europe until the Gregorian calendar reform, and remains in use in most Eastern Churches, including the vast majority of Eastern Orthodox Churches and "Non-Chalcedonian Churches.^{[17]} Churches beyond the eastern frontier of the former "Byzantine Empire use an Easter that differs four times every 532 years from this Easter, including the Assyrian Church of the East.
The Gregorian Easter has been used since 1583 by the "Roman Catholic Church and was adopted by most "Protestant churches between 1753 and 1845. German Protestant states used an astronomical Easter based on the "Rudolphine Tables of "Johannes Kepler between 1700 and 1774, while Sweden used it from 1739 to 1844. This astronomical Easter was one week before the Gregorian Easter in 1724, 1744, 1778, 1798, etc.^{[18]}^{[19]}
Year | Western | Eastern |
---|---|---|
1998 | April 12 | April 19 |
1999 | April 4 | April 11 |
2000 | April 23 | April 30 |
2001 | April 15 | |
2002 | March 31 | May 5 |
2003 | April 20 | April 27 |
2004 | April 11 | |
2005 | March 27 | May 1 |
2006 | April 16 | April 23 |
2007 | April 8 | |
2008 | March 23 | April 27 |
2009 | April 12 | April 19 |
2010 | April 4 | |
2011 | April 24 | |
2012 | April 8 | April 15 |
2013 | March 31 | May 5 |
2014 | April 20 | |
2015 | April 5 | April 12 |
2016 | March 27 | May 1 |
2017 | April 16 | |
2018 | April 1 | April 8 |
2019 | April 21 | April 28 |
2020 | April 12 | April 19 |
2021 | April 4 | May 2 |
2022 | April 17 | April 24 |
2023 | April 9 | April 16 |
2024 | March 31 | May 5 |
2025 | April 20 | |
2026 | April 5 | April 12 |
2027 | March 28 | May 2 |
2028 | April 16 | |
2029 | April 1 | April 8 |
2030 | April 21 | April 28 |
2031 | April 13 | |
2032 | March 28 | May 2 |
2033 | April 17 | April 24 |
2034 | April 9 | |
2035 | March 25 | April 29 |
2036 | April 13 | April 20 |
2037 | April 5 | |
2038 | April 25 |
The Easter cycle groups days into lunar months, which are either 29 or 30 days long. There is an exception. The month ending in March normally has thirty days, but if 29 February of a leap year falls within it, it contains 31. As these groups are based on the "lunar cycle, over the long term the average month in the lunar calendar is a very good approximation of the "synodic month, which is 58872 days long. There are 12 synodic months in a lunar year, totaling either 354 or 355 days. The lunar year is about 11 days shorter than the calendar year, which is either 365 or 366 days long. These days by which the solar year exceeds the lunar year are called epacts (" 29.530Greek: ἐπακταὶ ἡμέραι epaktai hēmerai 'intercalary days').^{[20]}^{[21]} It is necessary to add them to the day of the solar year to obtain the correct day in the lunar year. Whenever the epact reaches or exceeds 30, an extra "intercalary month (or embolismic month) of 30 days must be inserted into the lunar calendar: then 30 must be subtracted from the epact. The Rev. C. Wheatly^{[22]} provides the detail:
"Thus beginning the year with March (for that was the ancient custom) they allowed thirty days for the moon [ending] in March, and twenty-nine for that [ending] in April; and thirty again for May, and twenty-nine for June &c. according to the old verses:
- Impar luna pari, par fiet in impare mense;
- In quo completur mensi lunatio detur.
"For the first, third, fifth, seventh, ninth, and eleventh months, which are called impares menses, or unequal months, have their moons according to computation of thirty days each, which are therefore called pares lunae, or equal moons: but the second, fourth, sixth, eighth, tenth, and twelfth months, which are called pares menses, or equal months, have their moons but twenty nine days each, which are called impares lunae, or unequal moons."
Thus the lunar month took the name of the Julian month in which it ended. The nineteen-year "Metonic cycle assumes that 19 tropical years are as long as 235 synodic months. So after 19 years the lunations should fall the same way in the solar years, and the epacts should repeat. However, 19 × 11 = 209 ≡ 29 ("mod 30), not 0 (mod 30); that is, 209 divided by 30 leaves a remainder of 29 instead of being a multiple of 30. So after 19 years, the epact must be corrected by one day for the cycle to repeat. This is the so-called saltus lunae ("leap of the moon). The Julian calendar handles it by reducing the length of the lunar month that begins on 1 July in the last year of the cycle to 29 days. This makes three successive 29-day months.^{[23]} The saltus and the seven extra 30-day months were largely hidden by being located at the points where the Julian and lunar months begin at about the same time. The extra months commenced on 3 December (year 2), 2 September (year 5), 6 March (year 8), 4 December (year 10), 2 November (year 13), 2 August (year 16), and 5 March (year 19).^{[24]} The sequence number of the year in the 19-year cycle is called the ""golden number", and is given by the formula
That is, the remainder of the year number Y in the "Christian era when divided by 19, plus one.^{[25]}
The paschal or Easter-month is the first one in the year to have its fourteenth day (its formal "full moon) on or after 21 March. Easter is the Sunday after its 14th day (or, saying the same thing, the Sunday within its third week). The paschal lunar month always begins on a date in the 29-day period from 8 March to 5 April inclusive. Its fourteenth day, therefore, always falls on a date between 21 March and 18 April inclusive, and the following Sunday then necessarily falls on a date in the range 22 March to 25 April inclusive. In the solar calendar Easter is called a "moveable feast since its date varies within a 35-day range. But in the lunar calendar, Easter is always the third Sunday in the paschal lunar month, and is no more "moveable" than any holiday that is fixed to a particular day of the week and week within a month.
As reforming the computus was the primary motivation for the introduction of the "Gregorian calendar in 1582, a corresponding computus methodology was introduced alongside the calendar.^{[26]} The general method of working was given by "Clavius in the Six Canons (1582), and a full explanation followed in his Explicatio (1603).
Easter Sunday is the Sunday following the paschal full moon date. The paschal full moon date is the ecclesiastical full moon date following 20 March. The Gregorian method derives paschal full moon dates by determining the epact for each year. The epact can have a value from * (0 or 30) to 29 days. The first day of a lunar month is considered the day of the first appearance of the crescent moon. The 14th day is considered the day of the "full moon.
Historically the paschal full moon date for a year was found from its sequence number in the Metonic cycle, called the "golden number, which cycle repeats the lunar phase on a certain date every 19 years. This method was abandoned in the Gregorian reform because the tabular dates go out of sync with reality after about two centuries, but from the "epact method a simplified table can be constructed that has a validity of one to three centuries.
The epacts for the current Metonic cycle, which began in 2014, are:
Year | 2014 | 2015 | 2016 | 2017 | 2018 | 2019 | 2020 | 2021 | 2022 | 2023 | 2024 | 2025 | 2026 | 2027 | 2028 | 2029 | 2030 | 2031 | 2032 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Golden number |
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |
Epact^{[27]} | 29 | 10 | 21 | 2 | 13 | 24 | 5 | 16 | 27 | 8 | 19 | * | 11 | 22 | 3 | 14 | 25 | 6 | 17 |
Paschal full moon date^{[28]} |
14 April |
3 April |
23 March |
11 April |
31 March |
18 April |
8 April |
28 March |
16 April |
5 April |
25 March |
13 April |
2 April |
22 March |
10 April |
30 March |
17 April |
7 April |
27 March |
The above table is valid from 1900 to 2199 inclusive. As an example of use, the golden number for 2038 is 6 (2038 + 1 = 2039; 2039 ÷ 19 = 107 remainder 6). From the table, paschal full moon for golden number 6 is 18 April. From week table 18 April is Sunday. Easter Sunday is the following Sunday, 25 April.
The epacts are used to find the dates of the new moon in the following way: Write down a table of all 365 days of the year (the leap day is ignored). Then label all dates with a "Roman numeral counting downwards, from "*" (0 or 30), "xxix" (29), down to "i" (1), starting from 1 January, and repeat this to the end of the year. However, in every second such period count only 29 days and label the date with xxv (25) also with xxiv (24). Treat the 13th period (last eleven days) as long, therefore, and assign the labels "xxv" and "xxiv" to sequential dates (26 and 27 December respectively). Finally, in addition, add the label "25" to the dates that have "xxv" in the 30-day periods; but in 29-day periods (which have "xxiv" together with "xxv") add the label "25" to the date with "xxvi". The distribution of the lengths of the months and the length of the epact cycles is such that each civil calendar month starts and ends with the same epact label, except for February and for the epact labels "xxv" and "25" in July and August. This table is called the calendarium. The ecclesiastical new moons for any year are those dates when the epact for the year is entered. If the epact for the year is for instance 27, then there is an "ecclesiastical new moon on every date in that year that has the epact label "xxvii" (27).
Also label all the dates in the table with letters "A" to "G", starting from 1 January, and repeat to the end of the year. If, for instance, the first Sunday of the year is on 5 January, which has letter "E", then every date with the letter "E" is a Sunday that year. Then "E" is called the "dominical letter for that year (from Latin: dies domini, day of the Lord). The dominical letter cycles backward one position every year. However, in leap years after 24 February the Sundays fall on the previous letter of the cycle, so leap years have two dominical letters: the first for before, the second for after the leap day.
In practice, for the purpose of calculating Easter, this need not be done for all 365 days of the year. For the epacts, March comes out exactly the same as January, so one need not calculate January or February. To also avoid the need to calculate the Dominical Letters for January and February, start with D for 1 March. You need the epacts only from 8 March to 5 April. This gives rise to the following table:
Label | March | DL | April | DL |
---|---|---|---|---|
* | 1 | D | ||
xxix | 2 | E | 1 | G |
xxviii | 3 | F | 2 | A |
xxvii | 4 | G | 3 | B |
xxvi | 5 | A | 4 | C |
25 | 6 | B | ||
xxv | 5 | D | ||
xxiv | 7 | C | ||
xxiii | 8 | D | 6 | E |
xxii | 9 | E | 7 | F |
xxi | 10 | F | 8 | G |
xx | 11 | G | 9 | A |
xix | 12 | A | 10 | B |
xviii | 13 | B | 11 | C |
xvii | 14 | C | 12 | D |
xvi | 15 | D | 13 | E |
xv | 16 | E | 14 | F |
xiv | 17 | F | 15 | G |
xiii | 18 | G | 16 | A |
xii | 19 | A | 17 | B |
xi | 20 | B | 18 | C |
x | 21 | C | 19 | D |
ix | 22 | D | 20 | E |
viii | 23 | E | 21 | F |
vii | 24 | F | 22 | G |
vi | 25 | G | 23 | A |
v | 26 | A | 24 | B |
iv | 27 | B | 25 | C |
iii | 28 | C | 26 | D |
ii | 29 | D | 27 | E |
i | 30 | E | 28 | F |
* | 31 | F | 29 | G |
xxix | 30 | A |
Example: If the epact is 27 (xxvii), an ecclesiastical new moon falls on every date labeled xxvii. The ecclesiastical full moon falls 13 days later. From the table above, this gives a new moon on 4 March and 3 April, and so a full moon on 17 March and 16 April.
Then Easter Day is the first Sunday after the first ecclesiastical full moon on or after 21 March. This definition uses "on or after 21 March" to avoid ambiguity with historic meaning of the word "after". In modern language, this phrase simply means "after 20 March". The definition of "on or after 21 March" is frequently incorrectly abbreviated to "after 21 March" in published and web-based articles, resulting in incorrect Easter dates.
In the example, this paschal full moon is on 16 April. If the dominical letter is E, then Easter day is on 20 April.
The label "25" (as distinct from "xxv") is used as follows: Within a Metonic cycle, years that are 11 years apart have epacts that differ by one day. A month beginning on a date having labels xxiv and xxv impacted together has either 29 or 30 days. If the epacts 24 and 25 both occur within one Metonic cycle, then the new (and full) moons would fall on the same dates for these two years. This is possible for the real moon^{[29]} but is inelegant in a schematic lunar calendar; the dates should repeat only after 19 years. To avoid this, in years that have epacts 25 and with a Golden Number larger than 11, the reckoned new moon falls on the date with the label 25 rather than xxv. Where the labels 25 and xxv are together, there is no problem since they are the same. This does not move the problem to the pair "25" and "xxvi", because the earliest epact 26 could appear would be in year 23 of the cycle, which lasts only 19 years: there is a saltus lunae in between that makes the new moons fall on separate dates.
The Gregorian calendar has a correction to the tropical year by dropping three leap days in 400 years (always in a century year). This is a correction to the length of the tropical year, but should have no effect on the Metonic relation between years and lunations. Therefore, the epact is compensated for this (partially—see "epact) by subtracting one in these century years. This is the so-called solar correction or "solar equation" ("equation" being used in its medieval sense of "correction").
However, 19 uncorrected "Julian years are a little longer than 235 lunations. The difference accumulates to one day in about 310 years. Therefore, in the Gregorian calendar, the epact gets corrected by adding 1 eight times in 2,500 (Gregorian) years, always in a century year: this is the so-called lunar correction (historically called "lunar equation"). The first one was applied in 1800, the next is in 2100, and will be applied every 300 years except for an interval of 400 years between 3900 and 4300, which starts a new cycle.
The solar and lunar corrections work in opposite directions, and in some century years (for example, 1800 and 2100) they cancel each other. The result is that the Gregorian lunar calendar uses an epact table that is valid for a period of from 100 to 300 years. The epact table listed above is valid for the period 1900 to 2199.
This method of computation has several subtleties:
Every second lunar month has only 29 days, so one day must have two (of the 30) epact labels assigned to it. The reason for moving around the epact label "xxv/25" rather than any other seems to be the following: According to Dionysius (in his introductory letter to Petronius), the Nicene council, on the authority of "Eusebius, established that the first month of the ecclesiastical lunar year (the paschal month) should start between 8 March and 5 April inclusive, and the 14th day fall between 21 March and 18 April inclusive, thus spanning a period of (only) 29 days. A new moon on 7 March, which has epact label "xxiv", has its 14th day (full moon) on 20 March, which is too early (not following 20 March). So years with an epact of "xxiv", if the lunar month beginning on 7 March had 30 days, would have their paschal new moon on 6 April, which is too late: the full moon would fall on 19 April, and Easter could be as late as 26 April. In the Julian calendar the latest date of Easter was 25 April, and the Gregorian reform maintained that limit. So the paschal full moon must fall no later than 18 April and the new moon on 5 April, which has epact label "xxv". 5 April must therefore have its double epact labels "xxiv" and "xxv". Then epact "xxv" must be treated differently, as explained in the paragraph above.
As a consequence, 19 April is the date on which Easter falls most frequently in the Gregorian calendar: in about 3.87% of the years. 22 March is the least frequent, with 0.48%.
The relation between lunar and solar calendar dates is made independent of the leap day scheme for the solar year. Basically the Gregorian calendar still uses the Julian calendar with a leap day every four years, so a Metonic cycle of 19 years has 6,940 or 6,939 days with five or four leap days. Now the lunar cycle counts only 19 × 354 + 19 × 11 = 6,935 days. By not labeling and counting the leap day with an epact number, but having the next new moon fall on the same calendar date as without the leap day, the current lunation gets extended by a day,^{[30]} and the 235 lunations cover as many days as the 19 years. So the burden of synchronizing the calendar with the moon (intermediate-term accuracy) is shifted to the solar calendar, which may use any suitable intercalation scheme; all under the assumption that 19 solar years = 235 lunations (long-term inaccuracy). A consequence is that the reckoned age of the moon may be off by a day, and also that the lunations that contain the leap day may be 31 days long, which would never happen if the real moon were followed (short-term inaccuracies). This is the price for a regular fit to the solar calendar.
From the perspective of those who might wish to use the Gregorian Easter cycle as a calendar for the entire year, there are some flaws in the Gregorian lunar calendar.^{[31]} However, they have no effect on the paschal month and the date of Easter:
A careful analysis shows that through the way they are used and corrected in the Gregorian calendar, the epacts are actually fractions of a lunation (^{1}⁄_{30}, also known as a "tithi) and not full days. See "epact for a discussion.
The solar and lunar corrections repeat after 4 × 25 = 100 centuries. In that period, the epact has changed by a total of −1 × 3/4 × 100 + 1 × 8/25 × 100 = −43 ≡ 17 mod 30. This is prime to the 30 possible epacts, so it takes 100 × 30 = 3,000 centuries before the epacts repeat; and 3,000 × 19 = 57,000 centuries before the epacts repeat at the same golden number. This period has 5,700,000/19 × 235 + −43/30 × 57,000/100 = 70,499,183 lunations. So the Gregorian Easter dates repeat in exactly the same order only after 5,700,000 years, 70,499,183 lunations, or 2,081,882,250 days. However, the calendar must already have been adjusted after some millennia because of changes in the length of the tropical year, the synodic month, and the day.
This raises the question why the Gregorian lunar calendar has separate solar and lunar corrections, which sometimes cancel each other. Instead, the net 4 × 8 − 3 × 25 = 43 epact subtractions could be distributed evenly over 10,000 years (as has been proposed for example by Dr Heiner Lichtenberg).^{[32]} Lilius' original work has not been preserved and Clavius does not explain this. However Lilius did say that the correction system he devised was to be a perfectly flexible tool in the hands of future calendar reformers, since the solar and lunar calendar could henceforth be corrected without mutual interference.^{[33]} If this is not done the inaccuracies in the positions in the two cycles are added together.
The "solar corrections" approximately undo the effect of the Gregorian modifications to the leap days of the solar calendar on the lunar calendar: they (partially) bring the epact cycle back to the original Metonic relation between the Julian year and lunar month. The inherent mismatch between sun and moon in this basic 19-year cycle is then corrected every three or four centuries by the "lunar correction" to the epacts. However, the epact corrections occur at the beginning of Gregorian centuries, not Julian centuries, and therefore the original Julian Metonic cycle is not fully restored.
The gradual slowing of the Earth's rotation affects the date of the equinox: drift in ecclesiastical full moons calculated by the Gregorian method compared to the true full moons is far less because the increase in the length of the day is almost exactly compensated for by the slowdown in the length of the month as tidal braking reduces the energy in the system.^{[34]}
The portion of the Tabular methods section above describes the historical arguments and methods by which the present dates of Easter Sunday were decided in the late 16th century by the Catholic Church. In Britain, where the Julian calendar was then still in use, Easter Sunday was defined, from 1662 to 1752 (in accordance with previous practice), by a simple table of dates in the "Anglican "Prayer Book (decreed by the "Act of Uniformity 1662). The table was indexed directly by the "golden number and the "Sunday letter, which (in the Easter section of the book) were presumed to be already known.
For the British Empire and colonies, the new determination of the Date of Easter Sunday was defined by what is now called the "Calendar (New Style) Act 1750 with its Annexe. The method was chosen to give dates agreeing with the Gregorian rule already in use elsewhere. The Act required that it be put in the "Book of Common Prayer, and therefore it is the general Anglican rule. The original Act can be seen in the British Statutes at Large 1765.^{[35]} The Annexe to the Act includes the definition: "Easter-day (on which the rest depend) is always the first Sunday after the Full Moon, which happens upon, or next after the Twenty-first Day of March. And if the Full Moon happens upon a Sunday, Easter-day is the Sunday after." The Annexe subsequently uses the terms "Paschal Full Moon" and "Ecclesiastical Full Moon", making it clear that they approximate to the real full moon.
The method is quite distinct from that described above in Gregorian calendar. For a general year, one first determines the "golden number, then one uses three tables to determine the "Sunday letter, a "cypher", and the date of the paschal full moon, from which the date of Easter Sunday follows. The epact does not explicitly appear. Simpler tables can be used for limited periods (such as 1900–2199) during which the cypher (which represents the effect of the solar and lunar corrections) does not change. Clavius' details were employed in the construction of the method, but they play no subsequent part in its use.^{[36]}^{[37]}
J. R. Stockton shows his derivation of an efficient computer algorithm traceable to the tables in the Prayer Book and the Calendar Act (assuming that a description of how to use the Tables is at hand), and verifies its processes by computing matching Tables.^{[38]}
The method for computing the date of the ecclesiastical full moon that was standard for the western Church before the Gregorian calendar reform, and is still used today by most "eastern Christians, made use of an uncorrected repetition of the 19-year Metonic cycle in combination with the Julian calendar. In terms of the method of the epacts discussed above, it effectively used a single epact table starting with an epact of 0, which was never corrected. In this case, the epact was counted on 22 March, the earliest acceptable date for Easter. This repeats every 19 years, so there are only 19 possible dates for the paschal full moon from 21 March to 18 April inclusive.
Because there are no corrections as there are for the Gregorian calendar, the ecclesiastical full moon drifts away from the true full moon by more than three days every millennium. It is already a few days later. As a result, the eastern churches celebrate Easter one week later than the western churches about 50% of the time. (The eastern Easter is often four or five weeks later because the Julian calendar is 13 days behind the Gregorian in 1900–2099, and so the Gregorian paschal full moon is often before Julian 21 March.)
The sequence number of a year in the 19-year cycle is called its golden number. This term was first used in the computistic poem Massa Compoti by "Alexander de Villa Dei in 1200. A later scribe added the golden number to tables originally composed by "Abbo of Fleury in 988.
The claim by the Catholic Church in the 1582 "papal bull "Inter gravissimas, which promulgated the Gregorian calendar, that it restored "the celebration of Easter according to the rules fixed by ... the great ecumenical council of Nicaea"^{[39]} was based on a false claim by Dionysius Exiguus (525) that "we determine the date of Easter Day ... in accordance with the proposal agreed upon by the 318 Fathers of the Church at the Council in Nicaea."^{[40]} The First Council of Nicaea (325) only stated that all Christians must celebrate Easter on the same Sunday—it did not fix rules to determine which Sunday. The medieval computus was based on the Alexandrian computus, which was developed by the "Church of Alexandria during the first decade of the 4th century using the "Alexandrian calendar.^{[41]}^{:36} The "eastern Roman Empire accepted it shortly after 380 after converting the computus to the Julian calendar.^{[41]}^{:48} Rome accepted it sometime between the sixth and ninth centuries. The British Isles accepted it during the eighth century except for a few monasteries. "Francia (all of western Europe except Scandinavia (pagan), the British Isles, the "Iberian peninsula, and southern Italy) accepted it during the last quarter of the eighth century. The last "Celtic monastery to accept it, "Iona, did so in 716, whereas the last English monastery to accept it did so in 931. Before these dates, other methods produced Easter Sunday dates that could differ by up to five weeks.
This is the table of paschal full moon dates for all Julian years since 931:
Golden number |
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Paschal full moon date |
5 April |
25 March |
13 April |
2 April |
22 March |
10 April |
30 March |
18 April |
7 April |
27 March |
15 April |
4 April |
24 March |
12 April |
1 April |
21 March |
9 April |
29 March |
17 April |
Example calculation using this table:
The golden number for 1573 is 16 (1573 + 1 = 1574; 1574 ÷ 19 = 82 remainder 16). From the table, the paschal full moon for golden number 16 is 21 March. From the week table 21 March is Saturday. Easter Sunday is the following Sunday, 22 March.
So for a given date of the ecclesiastical full moon, there are seven possible Easter dates. The cycle of Sunday letters, however, does not repeat in seven years: because of the interruptions of the leap day every four years, the full cycle in which weekdays recur in the calendar in the same way, is 4 × 7 = 28 years, the so-called solar cycle. So the Easter dates repeated in the same order after 4 × 7 × 19 = 532 years. This paschal cycle is also called the Victorian cycle, after Victorius of Aquitaine, who introduced it in Rome in 457. It is first known to have been used by "Annianus of Alexandria at the beginning of the 5th century. It has also sometimes erroneously been called the Dionysian cycle, after Dionysius Exiguus, who prepared Easter tables that started in 532; but he apparently did not realize that the Alexandrian computus he described had a 532-year cycle, although he did realize that his 95-year table was not a true cycle. "Venerable Bede (7th century) seems to have been the first to identify the solar cycle and explain the paschal cycle from the Metonic cycle and the solar cycle.
In medieval western Europe, the dates of the paschal full moon (14 Nisan) given above could be memorized with the help of a 19-line alliterative poem in Latin:^{[42]}^{[43]}
Nonae Aprilis norunt quinos V octonae kalendae assim depromunt. I Idus Aprilis etiam sexis, VI nonae quaternae namque dipondio. II Item undene ambiunt quinos, V quatuor idus capiunt ternos. III Ternas kalendas titulant seni, VI quatuor dene cubant in quadris. IIII Septenas idus septem eligunt, VII senae kalendae sortiunt ternos, III denis septenis donant assim. I Pridie nonas porro quaternis, IIII nonae kalendae notantur septenis. VII Pridie idus panditur quinis, V kalendas Aprilis exprimunt unus. I Duodene namque docte quaternis, IIII speciem quintam speramus duobus. II Quaternae kalendae quinque coniciunt, V quindene constant tribus adeptis. III
The first half-line of each line gives the date of the paschal full moon from the table above for each year in the 19-year cycle. The second half-line gives the ferial regular, or weekday displacement, of the day of that year's paschal full moon from the concurrent, or the weekday of 24 March.^{[44]} The ferial regular is repeated in Roman numerals in the third column.
For Julian dates before 1300 and after 1999, the year in the table that differs by an exact multiple of 700 years is used. For Gregorian dates after 2299,the year in the table that differs by an exact multiple of 400 years is 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. 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.
Century digits | Remaining year digits | Month | Day of week |
Number | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Julian (r ÷ 7) |
Gregorian (r ÷ 4) |
|||||||||||
r5 19 | 16 20 r0 | 00 06 | 17 2328 34 | 45 5156 62 | 73 7984 90 | Jan | Oct | Sat | 0 | |||
r4 18 | 15 19 r3 | 01 07 12 18 | 29 35 40 46 | 57 63 68 74 | 85 91 96 | May | Sun | 1 | ||||
r3 17 | N/A | 02 | 13 19 2430 | 41 47 5258 | 69 75 8086 | 97Feb | Aug | Mon | 2 | |||
r2 16 | 18 22 r2 | 03 08 14 | 2531 36 42 | 5359 64 70 | 8187 92 98 | Feb | Mar | Nov | Tue | 3 | ||
r1 15 | N/A | 09 15 20 26 | 37 43 48 54 | 65 71 76 82 | 93 99 | Jun | Wed | 4 | ||||
r0 14 | 17 21 r1 | 04 10 | 21 2732 38 | 49 5560 66 | 77 8388 94 | Sep | Dec | Thu | 5 | |||
r6 13 | N/A | 05 11 16 22 | 33 39 44 50 | 61 67 72 78 | 89 95 | Jan | Apr | Jul | Fri | 6 |
For determination of the day of the week (1 January 2000, Saturday)
Note that the date (and hence the day of the week) in the "Revised Julian and Gregorian calendars is the same up until 28 February 2800, and that for large years it may be possible to subtract 6300 or a multiple thereof before starting so as to reach a year within or closer to the table.
To look up the weekday of any date for any year using the table, subtract 100 from the year, divide the number obtained by 100, multiply the resulting quotient (omitting fractions) by seven and divide the product by nine. Note the quotient (omitting fractions). Enter the table with the Julian year, and just before the final division add 50 and subtract the quotient noted above.
Example: What is the day of the week of 27 January 8315?
8315 − 6300 = 2015, 2015 − 100 = 1915, 1915 ÷ 100 = 19 remainder 15, 19 × 7 = 133, 133 ÷ 9 = 14 remainder 7. 2015 is 700 years ahead of 1315, so 1315 is used. From the table: for hundreds (13): 6. For remaining digits (15): 4. For month (January): 0. For date (27): 27. 6 + 4 + 0 + 27 + 50 − 14 = 73. 73 ÷ 7 = 10 remainder 3. Day of week = Tuesday.
To find the "dominical letter, calculate the day of the week for either 1 January or 1 October. If it is Sunday, the Sunday Letter is A, if Saturday B, and similarly backwards through the week and forwards through the alphabet to Monday, which is G.
Leap years have two letters, so for January and February calculate the day of the week for 1 January and for March to December calculate the day of the week for 1 October.
Leap years are all years that divide exactly by four, with the following exceptions:
Gregorian calendar – all years divisible by 100 (other than those that divide exactly by 400)
Revised Julian calendar – all years divisible by 100 (other than those with a remainder of 200 or 600 when divided by 900).
When expressing Easter algorithms without using tables, it has been customary to employ only the integer operations "addition, "subtraction, "multiplication, "division, "modulo, and "assignment (plus minus times div mod assign). That is compatible with the use of simple mechanical or electronic calculators. But it is an undesirable restriction for computer programming, where conditional operators and statements, as well as look-up tables, are always available. One can easily see how conversion from day-of-March (22 to 56) to day-and-month (22 March to 25 April) can be done as (if DoM>31) {Day=DoM-31, Month=Apr} else {Day=DoM, Month=Mar}
. More importantly, using such conditionals also simplifies the core of the Gregorian calculation.
In 1800, the mathematician "Carl Friedrich Gauss presented this algorithm for calculating the date of the Julian or Gregorian Easter^{[45]}^{[46]} and made corrections to one of the steps in 1816.^{[47]} In 1800 he incorrectly stated p = "floor (k/3) = ⌊k/3⌋. In 1807 he replaced the condition (11M + 11) mod 30 < 19 with the simpler a > 10. In 1811 he limited his algorithm to the 18th and 19th centuries only, and stated that 26 April is always replaced with 19 April and 25 April by 18 April. In 1816 he thanked his student Peter Paul Tittel for pointing out that p was wrong in 1800.^{[48]}
Expression | year = 1777 |
---|---|
a = year mod 19 | a = 10 |
b = year mod 4 | b = 1 |
c = year mod 7 | c = 6 |
k = "⌊ year/100⌋ | k = 17 |
p = ⌊13 + 8k/25⌋ | p = 5 |
q = ⌊k/4⌋ | q = 4 |
M = (15 − p + k − q) mod 30 | M = 23 |
N = (4 + k − q) mod 7 | N = 3 |
d = (19a + M) mod 30 | d = 3 |
e = (2b + 4c + 6d + N) mod 7 | e = 5 |
Gregorian Easter is 22 + d + e March or d + e − 9 April | 30 March |
if d = 29 and e = 6, replace 26 April with 19 April | |
if d = 28, e = 6, and (11M + 11) mod 30 < 19, replace 25 April with 18 April | |
For the Julian Easter in the Julian calendar M = 15 and N = 6 (k, p, and q are unnecessary) |
An analysis of the Gauss Easter Sunday algorithm is divided into two parts. The first part is the approximate tracking of the lunar orbiting and the second one is the exact, deterministic offsetting to obtain a Sunday following the full moon.
The first part consists of determining the variable d, the number of days (counting from March 22) for the closest following full moon to occur. The formula for d contains the terms 19a and the constant M. a is the year's position in the 19-year lunar phase cycle, in which by assumption the moon's movement relative to earth repeats every 19 calendar years. In older times, 19 calendar years were equated to 235 lunar months (the Metonic cycle), which is remarkably close since 235 lunar months are approximately 6939.6813 days and 19 years are on average 6939.6075 days. The expression (19a + M) mod 30 repeats every 19 years within each century as M is determined per century. The 19-year cycle has nothing to do with the '19' in 19a, it is just a coincidence that another '19' appears. The '19' in 19a comes from correcting the mismatch between a calendar year and an integer number of lunar months. A calendar year (non-leap year) has 365 days and the closest you can come with an integer number of lunar months is 12 × 29.5 = 354 days. The difference is 11 days, which must be corrected for by moving the following year's occurrence of a full moon 11 days back. But in modulo 30 arithmetic, subtracting 11 is the same as adding 19, hence the addition of 19 for each year added, i.e. 19a.
The M in 19a + M serves to have a correct starting point at the start of each century. It is determined by a calculation taking the number of leap years up until that century where k inhibits a leap day every 100 years and q reinstalls it every 400 years, yielding (k − q) as the total number of inhibitions to the pattern of a leap day every four years. Thus we add (k − q) to correct for leap days that never occurred. p corrects for the lunar orbit not being fully describable in integer terms.
The range of days considered for the full moon to determine Easter are 22 March to 20 April—a 30-day range mirrored in the mod 30 arithmetic of variable d and constant M, both of which can have integer values in the range 0 to 29. Once d is determined, this is the number of days to add to 22 March (the earliest full moon allowed by the date range) to obtain the day of the full moon.
The second part is finding e, the additional offset days that must be added to the date offset d to make it arrive at a Sunday. Since the week has 7 days, the offset must be in the range 0 to 6 and determined by modulo 7 arithmetic. e is determined by calculating 2b + 4c + 6d + N mod 7. These constants may seem strange at first, but are quite easily explainable if we remember that we operate under mod 7 arithmetic. To begin with, 2b + 4c ensures that we take care of the fact that weekdays slide for each year. A normal year has 365 days, but 52 × 7 = 364, so 52 full weeks make up one day too little. Hence, each consecutive year, the weekday "slides one day forward", meaning if May 6 was a Wednesday one year, it is a Thursday the following year (disregarding leap years). Both b and c increases by one for an advancement of one year (disregarding modulo effects). The expression 2b + 4c thus increases by 6—but remember that this is the same as subtracting 1 mod 7. And to subtract by 1 is exactly what is required for a normal year – since the weekday slips one day forward we should compensate one day less to arrive at the correct weekday (i.e. Sunday). For a leap year, b becomes 0 and 2b thus is 0 instead of 8—which under mod 7, is another subtraction by 1—i.e., a total subtraction by 2, as the weekdays after the leap day that year slides forward by two days.
The expression 6d works the same way. Increasing d by some number y indicates that the full moon occurs y days later this year, and hence we should compensate y days less. Adding 6d is mod 7 the same as subtracting d, which is the desired operation. Thus, again, we do subtraction by adding under modulo arithmetic. In total, the variable e contains the step from the day of the full moon to the nearest following Sunday, between 0 and 6 days ahead. The constant N provides the starting point for the calculations for each century and depends on where Jan 1, year 1 was implicitly located when the Gregorian calendar was constructed.
The expression d + e can yield offsets in the range 0 to 35 pointing to possible Easter Sundays on March 22 to April 26. For reasons of historical compatibility, all offsets of 35 and some of 34 are subtracted by 7, jumping one Sunday back to the day before the full moon (in effect using a negative e of −1). This means that 26 April is never Easter Sunday and that 19 April is overrepresented. These latter corrections are for historical reasons only and has nothing to do with the mathematical algorithm.
Using the Gauss algorithm for years prior to 1583 is historically pointless since the Gregorian calendar was not utilised for determining Easter before that year. Using the algorithm far into the future is questionable, since we know nothing about how different churches will define Easter that far ahead. Easter calculations are based on agreements and conventions, not on the actual celestial movements nor on indisputable facts of history.
"A New York correspondent" submitted this algorithm for determining the Gregorian Easter to the journal "Nature in 1876.^{[48]}^{[49]} It has been reprinted many times, e.g., in 1877 by Samuel Butcher in The Ecclesiastical Calendar,^{[50]}^{:225} in 1916 by "Arthur Downing in "The Observatory,^{[51]} in 1922 by "H. Spencer Jones in General Astronomy,^{[52]} in 1977 by the Journal of the British Astronomical Association,^{[53]} in 1977 by "The Old Farmer's Almanac, in 1988 by Peter Duffett-Smith in "Practical Astronomy with your Calculator, and in 1991 by "Jean Meeus in Astronomical Algorithms.^{[54]} Because of the Meeus’ book citation, that is also called "Meeus/Jones/Butcher" algorithm:
Expression | Y = 1961 | Y = 2018 |
---|---|---|
a = Y mod 19 | a = 4 | a = 4 |
b = floor Y/100 | b = 19 | b = 20 |
c = Y mod 100 | c = 61 | c = 18 |
d = floor b/4 | d = 4 | d = 5 |
e = b mod 4 | e = 3 | e = 0 |
f = floor b + 8/25 | f = 1 | f = 1 |
g = floor b − f + 1/3 | g = 6 | g = 6 |
h = (19a + b − d − g + 15) mod 30 | h = 10 | h = 10 |
i = floor c/4 | i = 15 | i = 4 |
k = c mod 4 | k = 1 | k = 2 |
l = (32 + 2e + 2i − h − k) mod 7 | l = 1 | l = 0 |
m = floor a + 11h + 22l/451 | m = 0 | m = 0 |
month = floor h + l − 7m + 114/31 | month = 4 (April) | month = 4 (April) |
day = ((h + l − 7m + 114) mod 31) + 1 | day = 2 | day = 1 |
Gregorian Easter | 2 April 1961 | 1 April 2018 |
Jean Meeus, in his book Astronomical Algorithms (1991, p. 69), presents the following algorithm for calculating the Julian Easter on the Julian Calendar, which is not the Gregorian Calendar used throughout the contemporary world; to obtain the date of Eastern Orthodox Easter on the latter calendar, 13 days (as of 1900 through 2099) must be added to the Julian dates, producing the dates below, in the last row.
Expression | Y = 2008 | Y = 2009 | Y = 2010 | Y = 2011 | Y = 2016 |
---|---|---|---|---|---|
a = Y mod 4 | a = 0 | a = 1 | a = 2 | a = 3 | a = 0 |
b = Y mod 7 | b = 6 | b = 0 | b = 1 | b = 2 | b = 0 |
c = Y mod 19 | c = 13 | c = 14 | c = 15 | c = 16 | c = 2 |
d = (19c + 15) mod 30 | d = 22 | d = 11 | d = 0 | d = 19 | d = 23 |
e = (2a + 4b − d + 34) mod 7 | e = 1 | e = 4 | e = 0 | e = 1 | e = 4 |
month = floor d + e + 114/31 | 4 (April) | 4 (April) | 3 (March) | 4 (April) | 4 (April) |
day = ((d + e + 114) mod 31) + 1 | 14 | 6 | 22 | 11 | 18 |
Easter Day (Julian calendar) | 14 April 2008 | 6 April 2009 | 22 March 2010 | 11 April 2011 | 18 April 2016 |
Easter Day (Gregorian calendar) | 27 April 2008 | 19 April 2009 | 4 April 2010 | 24 April 2011 | 1 May 2016 |
Following is a method devised by Professor R. Sivaraman from Chennai, India a Mathematics Professor and Founder of Pie Mathematics Association, for finding Gregorian Western Easter date, which is now used by the majority of Christians, from 1900 to 2199.
The date of Easter falls on the Sunday following the date d given by steps 4 and 5.
As an illustration, let us consider the case for the year 2016. It is easy to check that a = 2, b = 27, c = 27, d = 23. Since c = 27, by step 4, the Easter month was March and so the Easter date fell on Sunday following 23 March, which was 27 March. This is indeed correct, as the Gregorian Western Easter date fell on 27 March for the year 2016.
We can find the Easter date for any given year from 2200 to 2299 by using the aforementioned formula by making the only little change in step 2. In this case, b is the remainder when 11a + 4 is divided by 30. Other details remain same as above.
Faster and more compact algorithms for Gregorian Easter Sunday exist.^{[55]}
=DOLLAR(("4/"&A1)/7+MOD(19*MOD(A1,19)-7,30)*14%,)*7-6
for year 1900 – 2203 when the Excel date system is 1900.=ROUND(DATE(A1,4,1-DAY(0))/7+MOD(19*MOD(A1,19)-7,30)*0.14,0)*7-6+DAY(0)
similar to above but independent of system local settings and date system.=FLOOR((4&-A1)-DAY(5)+97%*MOD(18.998*MOD(A1+8/9,19)+INT(68%*INT(A1%)-INT(A1%/4)-5/9),30),7)+DAY(1)
provides the Gregorian Easter Sunday from 1900/1904 to 9999 in the Excel date systems 1900 and 1904.=FLOOR(DATE(A1,4,97%*MOD(18.998*MOD(A1+8/9,19)+INT(68%*INT(A1%)-INT(A1%/4)-5/9),30)-DAY(4)),7)+DAY(1)
similar to above, independent from the country specific order in the term (4&-A1).=FLOOR(DATE(A1,3,27-DAY(0))+0.97*MOD(18.998*MOD(A1+8/9,19)+INT(0.68*INT(A1/100)-INT(A1/400)-5/9),30),7)+DAY(1)
slightly different version of the one above, probably easier to comprehend.def IanTaylorEasterJscr(year):
a = year % 19
b = year >> 2
c = b // 25 + 1
d = (c * 3) >> 2
e = ((a * 19) - ((c * 8 + 5) // 25) + d + 15) % 30
e += (29578 - a - e * 32) >> 10
e -= ((year % 7) + b - d + e + 2) % 7
d = e >> 5
day = e - d * 31
month = d + 3
return year, month, day
Function Easter(X) ' X = year to compute
Dim K, M, S, A, D, R, OG, SZ, OE
K = X \ 100 ' Secular number
M = 15 + (3 * K + 3) \ 4 - (8 * K + 13) \ 25 ' Secular Moon shift
S = 2 - (3 * K + 3) \ 4 ' Secular Sun shift
A = X Mod 19 ' Moon parameter
D = (19 * A + M) Mod 30 ' Seed for 1st full Moon in spring
R = (D + A / 11) \ 29 ' Calendarian correction quantity (Lichtenberg's improvement of the original: R = D \ 29 + (D \ 28 - D \ 29) * (A \ 11))
OG = 21 + D - R ' Easter limit
SZ = 7 - (X + X \ 4 + S) Mod 7 ' 1st Sunday in March
OE = 7 - (OG - SZ) Mod 7 ' Distance Easter Sunday from Easter limit in days
End Function
public static Date getEasterDate(int year) {
int a = year % 19;
int b = year / 100;
int c = year % 100;
int d = b / 4;
int e = b % 4;
int f = (b + 8) / 25;
int g = (b - f + 1) / 3;
int h = (19 * a + b - d - g + 15) % 30;
int i = c / 4;
int k = c % 4;
int l = (32 + 2 * e + 2 * i - h - k) % 7;
int m = (a + 11 * h + 22 * l) / 451;
int n = (h + l - 7 * m + 114) / 31;
int p = (h + l - 7 * m + 114) % 31;
Calendar calendar = GregorianCalendar.getInstance();
calendar.clear();
calendar.set(year, n - 1, p + 1);
return calendar.getTime();
}
DROP FUNCTION [dbo].[fn_getEasterDate]
GO
CREATE FUNCTION [dbo].[fn_getEasterDate] (
@xYear int
)
RETURNS date
AS
BEGIN
/*Calculate date of easter based on Year passed*/
/*Based on Anonymous Gregorian Algorithm, also known as the Meeus/Jones/Butcher algorithm*/
Declare @dGregorianEaster date
Declare @a int, @b int, @c int, @d int, @e int, @f int, @g int, @h int, @i int, @k int, @L int, @m int, @month int, @day int
set @a = @xYear % 19
set @b = floor(@xyear / 100)
set @c = @xYear % 100
set @d = floor(@b / 4)
set @e = @b % 4
set @f = floor((@b + 8) / 25)
set @g = floor((@b - @f + 1)/3)
set @h = (19*@a + @b - @d - @g + 15) % 30
set @i = floor(@c / 4)
set @k = @c % 4
set @L = (32 + 2*@e + 2*@i - @h - @k) % 7
set @m = floor((@a + 11*@h + 22*@L) / 451)
set @month = floor((@h + @L - 7*@m + 114) / 31)
set @day = (@h + @L - 7*@m + 114) % 31 + 1
set @dGregorianEaster = cast( cast(@xYear as char(4)) + '-' + right('0' + cast(@month as varchar(2)), 2)+ '-' + right('0' + cast(@day as varchar(2)), 2) as date)
RETURN(@dGregorianEaster)
END
GO
select dbo.fn_getEasterDate(1961)
select dbo.fn_getEasterDate(2014)
CREATE OR REPLACE FUNCTION easter_sunday( _year INTEGER ) RETURNS DATE
LANGUAGE PLPGSQL IMMUTABLE STRICT LEAKPROOF
SECURITY INVOKER
COST 50
AS $function$
/*
* Title: The date of Easter
* Authors: Downing, A. M. W.
* Journal: The Observatory, Vol. 39, p. 215-219 (1916)
* Bibliographic Code: 1916Obs....39..215D
* http://articles.adsabs.harvard.edu//full/1916Obs....39..215D/0000215.000.html
* refers to Nature, 1876 April 20, vol. 13, p. 487 for the algorithm.
* NB. Neither this author nor the anonymous 1876 contributor have provided a proof
* of this algorithm's correctness, but testing has revealed no problems.
*/
DECLARE
AA INTEGER DEFAULT _year % 19; -- A=YEAR%19
BB INTEGER DEFAULT _year / 100; -- B=YEAR/100
CC INTEGER DEFAULT _year % 100; -- C=YEAR%100
DD INTEGER DEFAULT BB / 4; -- D=B/4
EE INTEGER DEFAULT BB % 4; -- E=B%4
FF INTEGER DEFAULT (BB + 8) / 25; -- F=(B+8)/25
GG INTEGER DEFAULT (BB - FF + 1) / 3; -- G=(B-F+1)/3
HH INTEGER DEFAULT (19*AA + BB - DD - GG + 15) % 30; -- H=(19*A+B-D-G+15)%30
II INTEGER DEFAULT CC / 4; -- I=C/4
KK INTEGER DEFAULT CC % 4; -- K=C%4
LL INTEGER DEFAULT (32 + 2*EE + 2*II - HH - KK) % 7; -- L=(32+2*E+2*I-H-K)%7
MM INTEGER DEFAULT (AA + 11*HH + 22*LL) / 451; -- M=(A+11*H+22*L)/451
NN INTEGER DEFAULT (HH + LL - 7*MM + 114) / 31; -- N=(H+L-7*M+114)/31
OO INTEGER DEFAULT (HH + LL - 7*MM + 114) % 31; -- O=(H+L-7*M+114)%31
EM INTEGER; -- Easter month [3, 4]
ED INTEGER; -- Easter date (within the month)
BEGIN
EM := NN; -- Easter Month [3=March, 4=April]
ED := OO + 1; -- Easter Date [date in Easter Month]
RETURN make_date (_year,EM,ED);
END;
$function$;
SELECT easter_sunday(1954); -- should return 1954-04-18
SELECT easter_sunday(2016); -- should return 2016-03-27
Wikimedia Commons has media related to Computus (Easter). |