[Home] [Puzzles & Projects] [Delphi Techniques] [Math topics] [Library] [Utilities]
|
|
Problem DescriptionThis program accurately displays the date of Easter for any year since the establishment of the Gregorian calendar in 1582. It uses an algorithm from Volume 3 of "The Art of Computer Programming" set of books written by Donald Knuth. Background and TechniquesEaster dates are more complicated than one would image. Here's a simplified version as I understand it: Traditionally we celebrate Easter in the spring, on a Sunday, after the Spring equinox. The Church fathers, the Anglican church I believe, decided to make it the first Sunday after the first full moon after the Vernal Equinox on March 21. The catch was that the Vernal Equinox isn't always on March 21 and determining that first full moon date was difficult. They wanted a method (an algorithm!) that was simple and would work for a long time. So they assumed that the equinox would be on March 20, and made a table of "Ecclesiastical" Full Moon (EFM) dates that was always within a few days of astronomical full moon dates but could be specified in a table of reasonable size. The first EFM after March 20 is called the Paschal Full Moon (PFM) for reasons I couldn't determine. (Oh - just ran across it - Paschal is the Hebrew name for Passover.) The first Sunday after the PFM is officially Easter in any year. The preceding description doesn't quite seem to match this description found at a US Naval Observatory web site but may produce the same result: "The ecclesiastical rules are: 1.) Easter falls on the first Sunday following the first ecclesiastical full moon that occurs on or after the day of the vernal equinox; 2.) this particular ecclesiastical full moon is the 14th day of a tabular lunation (new moon); and 3.) the vernal equinox is fixed as March 21. resulting in that Easter can never occur before March 22 or later than April 25." There is discussion between the Catholic church and the World Council of Churches that Easter dates be changed to the Sunday after the 2nd Saturday in April (or the second Sunday in April, or at least based on astronomical full moon dates). So the whole problem may get easier in a century or so - they have only been discussing it since 1960. The source code assumes the Western standard calculation method based on Gregorian calendar. It includes a second project, EasterCheck, that matches Knuth's algorithm against a second algorithm I found on the Web. It does this for a range of years at start-up time. (They match.) I would have left this check in the original program, but stripped it back out just to keep the code as short as possible. Running/Exploring the Program
Suggestions for Further Study
|
[Feedback] [Newsletters (subscribe/view)] [About me]Copyright © 2000-2018, Gary Darby All rights reserved. |