From b77a261c8781b66c0ffce1804331be11026a643e Mon Sep 17 00:00:00 2001 From: Dianne Skoll Date: Wed, 12 Oct 2022 14:05:55 -0400 Subject: [PATCH] Add Jewish holidays to the list of standard holiday files. --- include/holidays/jewish.rem | 107 ++++++++++++++++++++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 include/holidays/jewish.rem diff --git a/include/holidays/jewish.rem b/include/holidays/jewish.rem new file mode 100644 index 00000000..99866f77 --- /dev/null +++ b/include/holidays/jewish.rem @@ -0,0 +1,107 @@ +# Major Jewish Holidays + +# Set the variable InIsrael to 1 if you live in Israel. Otherwise, +# you get the Diaspora versions of Jewish holidays +SET InIsrael value("InIsrael", 0) + +# Set the variable Reform to 1 if you want the Reform version of the +# Jewish calendar. Otherwise, you get the traditional version +SET Reform value("Reform", 0) + +# Convenient function definition to save typing +FSET _h(x, y) HEBDATE(x,y) +FSET _h2(x, y) HEBDATE(x, y, $U-7) +FSET _PastSat(x, y) IIF(WKDAYNUM(_h2(x,y))!=6, _h2(x,y), _h2(x,y)+1) +FSET _BackTwoFri(x, y) IIF(WKDAYNUM(_h2(x,y))!=5, _h2(x,y), _h2(x,y)-2) +FSET _BackTwoSat(x, y) IIF(WKDAYNUM(_h2(x,y))!=6, _h2(x,y), _h2(x,y)-2) +# Default values in case InIsrael and Reform are not set +SET InIsrael VALUE("InIsrael", 0) +SET Reform VALUE("Reform", 0) + +[_h(1, "Tishrey")] ++4 MSG %"Rosh Hashana 1%" is %b. + +# No RH-2 or Tzom Gedalia in Reform +IF !Reform + [_h(2, "Tishrey")] ++4 MSG %"Rosh Hashana 2%" is %b. + [_PastSat(3, "Tishrey")] ++4 MSG %"Tzom Gedalia%" is %b. +ENDIF + +[_h(10, "Tishrey")] ++4 MSG %"Yom Kippur%" is %b. +[_h(15, "Tishrey")] ++4 MSG %"Sukkot 1%" is %b. + +IF !InIsrael + [_h(16, "Tishrey")] MSG %"Sukkot 2%" +ENDIF + +[_h(21, "Tishrey")] ++4 MSG %"Hoshana Rabba%" is %b. +[_h(22, "Tishrey")] ++4 MSG %"Shemini Atzeret%" is %b. + +IF InIsrael + [_h(22, "Tishrey")] ++4 MSG %"Simchat Torah%" is %b. +ELSE + [_h(23, "Tishrey")] ++4 MSG %"Simchat Torah%" is %b. +ENDIF + +# Because Kislev can change length, we must be more careful about Chanukah +FSET _chan(x) HEBDATE(24, "Kislev", $U-9)+x +[_chan(1)] ++4 MSG %"Chanukah 1%" is %b. +[_chan(2)] MSG %"Chanukah 2%" +[_chan(3)] MSG %"Chanukah 3%" +[_chan(4)] MSG %"Chanukah 4%" +[_chan(5)] MSG %"Chanukah 5%" +[_chan(6)] MSG %"Chanukah 6%" +[_chan(7)] MSG %"Chanukah 7%" +[_chan(8)] MSG %"Chanukah 8%" + +# Not sure about Reform's position on the next one. +IF !Reform +# 10 Tevet will never be a Saturday, so whether or not to +# move it is moot. (Thanks to Art Werschulz.) + [_h(10, "Tevet")] MSG %"Tzom Tevet%" is %b. +ENDIF + +[_h(15, "Shvat")] ++4 MSG %"Tu B'Shvat%" is %b. +[_h(14, "Adar A")] ++4 MSG %"Purim Katan%" is %b. + +# If Purim is on Sunday, then Fast of Esther is 11 Adar. +IF WKDAYNUM(_h2(13, "Adar")) != 6 + REM [_h2(13, "Adar")] ++4 MSG %"Fast of Esther%" is %b. +ELSE + REM [_h2(11, "Adar")] ++4 MSG %"Fast of Esther%" is %b. +ENDIF +[_h(14, "Adar")] ++4 MSG %"Purim%" is %b. +[_h(15, "Nisan")] ++4 MSG %"Pesach%" is %b. + +IF !InIsrael + [_h(16, "Nisan")] MSG %"Pesach 2%" +ENDIF + +[_h(21, "Nisan")] MSG %"Pesach 7%" + +IF !InIsrael && !Reform + [_h(22, "Nisan")] MSG %"Pesach 8%" +ENDIF + +[_h(27, "Nisan")] ++4 MSG %"Yom HaShoah%" is %b. +[_BackTwoFri(4, "Iyar")] ++4 MSG %"Yom HaZikaron%" is %b. +[_BackTwoSat(5, "Iyar")] ++4 MSG %"Yom Ha'atzmaut%" is %b. + +# Not sure about Reform's position on Lag B'Omer +IF !Reform + [_h(18, "Iyar")] ++4 MSG %"Lag B'Omer%" is %b. +ENDIF + +[_h(28, "Iyar")] ++4 MSG %"Yom Yerushalayim%" is %b. +[_h(6, "Sivan")] ++4 MSG %"Shavuot%" is %b. + +IF !InIsrael && !Reform + [_h(7, "Sivan")] MSG %"Shavuot 2%" +ENDIF + +# Fairly sure Reform Jews don't observe the next two +IF !Reform +# Tzom Tamuz and Tish'a B'Av are moved to Sunday if they normally +# fall on a Saturday + [_PastSat(17, "Tamuz")] ++4 MSG %"Tzom Tammuz%" is %b. + [_PastSat(9, "Av")] ++4 MSG %"Tish'a B'Av%" is %b. +ENDIF