Recently I received the following email from one of our visitors:
I am writing about the Anglican Calendar php program on this website. Firstly, thank you so much for creating it and sharing it! It is fantastic!
I am developing a website for my 1928 bcp church, and wanted something to put a bit of info about the current day. Your program works perfectly. However, I noticed at least one thing that I had a question about.
In checking for feast days, your program simply looks at the day of the month. But I know that sometimes the feast days are moved if they overlap with other holidays. For example, the Annunciation of the Blessed Virgin Mary normally occurs on March 25th. But in 2007, March 25th is Palm Sunday, and in 2008, March 25th is the 1st Sunday after Easter.
So here is my question: do you know how to tell when overlapping holidays need to be separated, how to know which takes precedence, and how far you need to push the lesser holiday (and in which direction!)?
It would be awesome if you updated your code, but if you have access to the info, I will use it to update the code myself, since the website will be going up soon.
Again, thanks for all the resources on your site, keep it up!
My response was on this wise:
As you may have noted, the calendar as it exists attempts to cover both the 1662 and 1928 BCP. As a consequence, I had to generalise the output, and that’s why it puts out the Sundays and feasts simultaneously.
As far as the precedence issue you mentioned, I think part of the problem is that a lot of what’s actually done isn’t strictly speaking "by the book." Part of the problem is with the book itself.
Let’s consider the example you gave, the Annunciation. I’m looking at my 1928 BCP. Page l of course lists the Annunciation as a feast. But on the following page it tells us that all of the Sundays in Lent (and that includes Palm Sunday) take precedence over "any other Sunday or Holy Day," but that doesn’t apply to the First Sunday after Easter (Low Sunday.) And it doesn’t give moving the feast as an option.
It also lists Holy Days "which have precedence of days" over certain Sundays (such as those in Lent,) but the Annunciation isn’t one of them.
Faced with this situation, I "punted" and simply had the days come up as they appeared on the calendar.
The source code of the script can be modified, as is the case with the Catholic Calendar Script. But that doesn’t solve the problem of precedence. I’m open to comments and suggestions as to the proper method of dealing with this problem.