As a way of explanation, I'm working on Objective-C code that calculates parashat hashavua. Initially, I ported the Javascript offered by YYDL as an answer to this question. I've found that my port doesn't hold up in production. I've gone back and began simplifying my code so that it's easier to read and, by extension, to debug. The bit of information that I'm missing is this: What exactly are the 14 year configurations of the Hebrew Calendar?
I've got it defined as such:
/*
There are fourteen year configurations, as per
Arthur Spier, 'The Comprehensive Hebrew Calendar,
3rd ed' (Behrman House 1986, ISBN 0-87306-398-8).
Each configuration composites the weekday of 1 Tishri,
the number of days in the year, and if the year
contains Adar II.
*/
typedef enum
{
kHebrewYearTypeA = 0, // Monday, 353, regular
kHebrewYearTypeB, // Shabbat, 353, regular
kHebrewYearTypeC, // Tuesday, 354, regular
kHebrewYearTypeD, // Thursday, 354, regular
kHebrewYearTypeE, // Monday, 355, regular
kHebrewYearTypeF, // Thursday, 355, regular
kHebrewYearTypeG, // Shabbat, 355, regular -----
kHebrewYearTypeH, // Monday, 383, leap -----
kHebrewYearTypeI, // Thursday, 383, leap
kHebrewYearTypeJ, // Shabbat, 383, leap
kHebrewYearTypeK, // Tuesday, 384, leap
kHebrewYearTypeL, // Monday, 385, leap
kHebrewYearTypeM, // Thursday, 385, leap
kHebrewYearTypeN, // Shabbat, 385, leap
} kHebrewYearType;
I've found an error in the sample years offered by Spier's book, so I'm referring to Rabbi David Feinstein's book, "The Jewish Calendar". (Dr. Spier lists 5782 twice, which can't be right, since a year can't satisfy two configurations at once.)
In the back of the Rosh Hayeshiva's book, there are charts, but the year listings seem to differ from ones in the Spier book. Specifically, Rabbi Feinstein has a year listed beginning on a Monday, and containing 354 days, and being a non-leap year. I don't have such a configuration in my list, based on Dr. Spier's book. Am I missing something? What exactly are the 14 year configurations of the Hebrew Calendar?