PATH : Chelm -> Jewish -> Calendar -> Explain

I have recieved several piece of Email recently asking me how to calculate the Jewish calendar. Since I am currently rewriting my program that does this, I will give a quick review of the the calculation.

The hebrew calendar is a lunar calendar. Before I get into the calculation, let me try to explain lunar calendars. Each month goes from new moon to new moon. Between moladot (new moons) is (according to hebrew calendar) 29 days, 12 hours (abreviated h) and 793 (of 1080) chelekim (parts abreviated p). If one knows one new moon, they could find any other new moon by adding or subtracting this interval. It also happens that every 19 solar years corresponds to exactly 235 lunar months. This means you can devise a 19 lunar year cycle made up of 12 years of 12 lunar months and 7 years of 13 lunar months that corresponds to an equivalent 19 solar years. The hebrew calendar has 13 month (leap) years in the 3rd, 6th, 8th, 11th, 14th, 17th and 19th years of this cycle. In the hebrew calendar the leap month is done by adding a second Adar of 30 days.

Now if the Hebrew calendar was strickly based on this, we could easily calculate one Rosh Hashana to the next, and the months would alternate 29 and 30 days. Things would be easy, but this is not the case. First the extra 793p have to be balenced off. Also Rosh Hashana (RH) must be moved to prevent certain calendar facts from happening (like Yom Kippur from landing on Friday or Sunday). RH is moved by the following 4 rules (remember - hebrew day starts at sunset) :

- If the molad (new moon) occurs on a Sunday, Wednesday, or Friday, RH is postponed a day
- If the molad occurs at noon or later (18h), RH is postponed a day (or 2 days if molad is after noon on Shabbath, Monday or Thursday - to comply with rule 1).
- If the molad of a non-leap year occurs on Tuesday after 9h 204p (~3:12 A.M.), RH is postponed to Thursday.
- if the molad of a non-leap year following a leap year on a Monday at or after 15h 589p (~ 9:32 A.M.), RH is delayed a day.

These reasons mean a year can have 353, 354, 355 days in non-leap-years, and 383, 384 and 385 in leap-years. To balence this off, in short years (353 and 383 days) Kislev is shortened to 29 days and in long years (355 and 385 days) Heshvan is lengthened to 30 days.

Now before things get really hopeless, there is a simple method here.

- For any year, find the day of the molad of RH and apply the rules to get the real RH.
- Do the same for the following year.
- Find the number of days between to get the year length.
- Use the table to find out the adjustments.

Year length | leap year | Heshvan length | Kislev length |

353 | No | 29 | 29 |

354 | No | 29 | 30 |

355 | No | 30 | 30 |

383 | Yes | 29 | 29 |

384 | Yes | 29 | 30 |

385 | Yes | 30 | 30 |

The intercalculation of the Gregorian and the Hebrew date is not that complex. The trick is not to calculate one from the other, but to set some base date to calculate from. To convert one to the other you first calculate the number of days from the base date, and then calculate the other from that number of days. In my recent version of the software the base date is January 1, 1760 = day 1. The next 19 year cycle molad occurs at Rosh Hashana 5530 September 30, 1769 = day 3560 at 21h 549p. This date is not chosen at random. Before 1763, the Gregorian calendar is not standard and we must start at the begining of the next 19 year lunar cycle.

The follow is psuedo code for this operation, some basic definitiona, the four basic routines, and some helper routines

- Basic definitions

- Given a gregorian date - calculate the absolute day.
- Given a hebrew date - calculate the absolute day.
- Given an absolute date - calculate the gregorian day.
- Given an absolute date - calculate the hebrew day.

- And some helper routines

FRAMES

PATH : Chelm -> Jewish -> Calendar -> Explain

Comments to stevenw@chelm.org