@@ -375,6 +375,36 @@ public class ComplexZmanimCalendar extends ZmanimCalendar {
375375 * @see #getTzaisGeonim9Point75Degrees()
376376 */
377377 protected static final double ZENITH_9_POINT_75 = GEOMETRIC_ZENITH + 9.75 ;
378+
379+ /**
380+ * The zenith of 2.03° above {@link #GEOMETRIC_ZENITH geometric zenith} (90°). This calculation is used for
381+ * calculating the start of <em>bain hashmashos</em> (twilight) of 13.5 minutes before sunset converted to degrees
382+ * according to the Yereim. As is traditional with degrees below the horizon, this is calculated without refraction
383+ * and from the center of the sun. It would be 0.833° less without this.
384+ *
385+ * @see #getBainHasmashosYereim2Point03Degrees()
386+ */
387+ protected static final double ZENITH_MINUS_2_POINT_03 = GEOMETRIC_ZENITH - 2.03 ;
388+
389+ /**
390+ * The zenith of 2.75° above {@link #GEOMETRIC_ZENITH geometric zenith} (90°). This calculation is used for
391+ * calculating the start of <em>bain hashmashos</em> (twilight) of 16.875 minutes before sunset converted to degrees
392+ * according to the Yereim. As is traditional with degrees below the horizon, this is calculated without refraction
393+ * and from the center of the sun. It would be 0.833° less without this.
394+ *
395+ * @see #getBainHasmashosYereim2Point75Degrees()
396+ */
397+ protected static final double ZENITH_MINUS_2_POINT_75 = GEOMETRIC_ZENITH - 2.75 ;
398+
399+ /**
400+ * The zenith of 2.99° above {@link #GEOMETRIC_ZENITH geometric zenith} (90°). This calculation is used for
401+ * calculating the start of <em>bain hashmashos</em> (twilight) of 18 minutes before sunset converted to degrees
402+ * according to the Yereim. As is traditional with degrees below the horizon, this is calculated without refraction
403+ * and from the center of the sun. It would be 0.833° less without this.
404+ *
405+ * @see #getBainHasmashosYereim2Point99Degrees()
406+ */
407+ protected static final double ZENITH_MINUS_2_POINT_99 = GEOMETRIC_ZENITH - 2.99 ;
378408
379409 /**
380410 * The offset in minutes (defaults to 40) after sunset used for <em>tzeit</em> for Ateret Torah calculations.
@@ -1912,13 +1942,13 @@ public Date getPlagAlos16Point1ToTzaisGeonim7Point083Degrees() {
19121942 }
19131943
19141944 /**
1915- * Method to return <em>Bain Hashmashos </em> of <em>Rabbeinu Tam</em> calculated when the sun is
1945+ * Method to return the beginning of <em>bain hashmashos </em> of <em>Rabbeinu Tam</em> calculated when the sun is
19161946 * {@link #ZENITH_13_POINT_24 13.24°} below the western {@link #GEOMETRIC_ZENITH geometric horizon} (90°)
19171947 * after sunset. This calculation is based on the same calculation of {@link #getBainHasmashosRT58Point5Minutes()
1918- * Bain Hashmashos Rabbeinu Tam 58.5 minutes} but uses a degree based calculation instead of 58.5 exact minutes. This
1919- * calculation is based on the position of the sun 58.5 minutes after sunset in Jerusalem during the equinox (on
1920- * March 16, about 4 days before the astronomical equinox, the day that a solar hour is 60 minutes) which calculates
1921- * to 13.24° below {@link #GEOMETRIC_ZENITH geometric zenith}.
1948+ * <em>bain hashmashos</em> Rabbeinu Tam 58.5 minutes} but uses a degree based calculation instead of 58.5 exact
1949+ * minutes. This calculation is based on the position of the sun 58.5 minutes after sunset in Jerusalem during the
1950+ * equinox (on March 16, about 4 days before the astronomical equinox, the day that a solar hour is 60 minutes)
1951+ * which calculates to 13.24° below {@link #GEOMETRIC_ZENITH geometric zenith}.
19221952 * NOTE: As per Yisrael Vehazmanim Vol. III page 1028 No 50, a dip of slightly less than 13° should be used.
19231953 * Calculations show that the proper dip to be 13.2456° (truncated to 13.24 that provides about 1.5 second
19241954 * earlier (<em>lechumra</em>) time) below the horizon at that time. This makes a difference of 1 minute and 10
@@ -1939,9 +1969,9 @@ public Date getBainHasmashosRT13Point24Degrees() {
19391969 }
19401970
19411971 /**
1942- * This method returns <em>Bain Hashmashos </em> of <em>Rabbeinu Tam</em> calculated as a 58.5 minute offset after
1943- * sunset. <em>Bain hashmashos</em> is 3/4 of a <em>Mil</em> before <em>tzais</em> or 3 1/4 <em>Mil</em> after
1944- * sunset. With a <em>Mil</em> calculated as 18 minutes, 3.25 * 18 = 58.5 minutes.
1972+ * This method returns the beginning of <em>Bain hashmashos </em> of <em>Rabbeinu Tam</em> calculated as a 58.5
1973+ * minute offset after sunset. <em>bain hashmashos</em> is 3/4 of a <em>Mil</em> before <em>tzais</em> or 3 1/4
1974+ * <em>Mil</em> after sunset. With a <em>Mil</em> calculated as 18 minutes, 3.25 * 18 = 58.5 minutes.
19451975 *
19461976 * @return the <code>Date</code> of 58.5 minutes after sunset. If the calculation can't be computed such as in the
19471977 * Arctic Circle where there is at least one day a year where the sun does not rise, and one where it does
@@ -1954,8 +1984,8 @@ public Date getBainHasmashosRT58Point5Minutes() {
19541984 }
19551985
19561986 /**
1957- * This method returns the time of <em>bain hashmashos</em> based on the calculation of 13.5 minutes (3/4 of an 18
1958- * minute <em>Mil</em> before shkiah calculated as {@link #getTzaisGeonim7Point083Degrees() 7.083°}.
1987+ * This method returns the beginning of <em>bain hashmashos</em> based on the calculation of 13.5 minutes (3/4 of an
1988+ * 18 minute <em>Mil</em>) before <em> shkiah</em> calculated as {@link #getTzaisGeonim7Point083Degrees() 7.083°}.
19591989 *
19601990 * @return the <code>Date</code> of the <em>bain hashmashos</em> of <em>Rabbeinu Tam</em> in this calculation. If the
19611991 * calculation can't be computed such as northern and southern locations even south of the Arctic Circle and
@@ -1969,10 +1999,10 @@ public Date getBainHasmashosRT13Point5MinutesBefore7Point083Degrees() {
19691999 }
19702000
19712001 /**
1972- * This method returns <em>bain hashmashos</em> of <em>Rabbeinu Tam</em> calculated according to the opinion of the
1973- * <em>Divrei Yosef</em> (see Yisrael Vehazmanim) calculated 5/18th (27.77%) of the time between <em>alos</em>
1974- * (calculated as 19.8° before sunrise) and sunrise. This is added to sunset to arrive at the time for
1975- * <em>bain hashmashos</em> of <em>Rabbeinu Tam</em>).
2002+ * This method returns the beginning of <em>bain hashmashos</em> of <em>Rabbeinu Tam</em> calculated according to the
2003+ * opinion of the <em>Divrei Yosef</em> (see Yisrael Vehazmanim) calculated 5/18th (27.77%) of the time between
2004+ * <em>alos</em> (calculated as 19.8° before sunrise) and sunrise. This is added to sunset to arrive at the time
2005+ * for <em>bain hashmashos</em> of <em>Rabbeinu Tam</em>).
19762006 *
19772007 * @return the <code>Date</code> of <em>bain hashmashos</em> of <em>Rabbeinu Tam</em> for this calculation. If the
19782008 * calculation can't be computed such as northern and southern locations even south of the Arctic Circle and
@@ -1989,7 +2019,117 @@ public Date getBainHasmashosRT2Stars() {
19892019
19902020 return getTimeOffset (getElevationAdjustedSunset (), (sunrise .getTime () - alos19Point8 .getTime ()) * (5 / 18d ));
19912021 }
1992-
2022+
2023+ /**
2024+ * This method returns the beginning of <em>bain hashmashos</em> (twilight) according to the <a href=
2025+ * "https://en.wikipedia.org/wiki/Eliezer_ben_Samuel">Yereim (Rabbi Eliezer of Metz)</a> calculated as 18 minutes
2026+ * or 3/4 of a 24 minute <em>Mil</em> before sunset. According to the Yereim, <em>bain hashmashos</em> starts 3/4
2027+ * of a <em>Mil</em> before sunset and <em>tzais</em> or nightfall starts at sunset.
2028+ *
2029+ * @return the <code>Date</code> of 18 minutes before sunset. If the calculation can't be computed such as in the
2030+ * Arctic Circle where there is at least one day a year where the sun does not rise, and one where it does
2031+ * not set, a null will be returned. See detailed explanation on top of the {@link AstronomicalCalendar}
2032+ * documentation.
2033+ * @see #getBainHasmashosYereim2Point99Degrees()
2034+ */
2035+ public Date getBainHasmashosYereim18Minutes () {
2036+ return getTimeOffset (getElevationAdjustedSunset (), -18 * MINUTE_MILLIS );
2037+ }
2038+
2039+ /**
2040+ * This method returns the beginning of <em>hain hashmashos</em> (twilight) according to the <a href=
2041+ * "https://en.wikipedia.org/wiki/Eliezer_ben_Samuel">Yereim (Rabbi Eliezer of Metz)</a> calculated as the sun's
2042+ * position 2.99° above the horizon during the equinox (on March 16, about 4 days before the astronomical
2043+ * equinox, the day that a solar hour is 60 minutes) in Yerushalayim, its position 18 minutes or 3/4 of an 24
2044+ * minute <em>Mil</em> before sunset. According to the Yereim, bain hashmashos starts 3/4 of a <em>Mil</em> before
2045+ * sunset and <em>tzais</em> or nightfall starts at sunset.
2046+ *
2047+ * @return the <code>Date</code> of the sun's position 2.99° minutes before sunset. If the calculation can't
2048+ * be computed such as in the Arctic Circle where there is at least one day a year where the sun does not
2049+ * rise, and one where it does not set, a null will be returned. See detailed explanation on top of the
2050+ * {@link AstronomicalCalendar} documentation.
2051+ *
2052+ * @see #ZENITH_MINUS_2_POINT_99
2053+ * @see #getBainHasmashosYereim18Minutes()
2054+ */
2055+ public Date getBainHasmashosYereim2Point99Degrees () {
2056+ return getSunsetOffsetByDegrees (ZENITH_MINUS_2_POINT_99 );
2057+ }
2058+
2059+ /**
2060+ * This method returns the beginning of <em>bain hashmashos</em> (twilight) according to the <a href=
2061+ * "https://en.wikipedia.org/wiki/Eliezer_ben_Samuel">Yereim (Rabbi Eliezer of Metz)</a> calculated as 16.875
2062+ * minutes or 3/4 of a 22.5 minute <em>Mil</em> before sunset. According to the Yereim, bain hashmashos starts 3/4 of a
2063+ * <em>Mil</em> before sunset and <em>tzais</em> or nightfall starts at sunset.
2064+ *
2065+ * @return the <code>Date</code> of 16.875 minutes before sunset. If the calculation can't be computed such as in the
2066+ * Arctic Circle where there is at least one day a year where the sun does not rise, and one where it does
2067+ * not set, a null will be returned. See detailed explanation on top of the {@link AstronomicalCalendar}
2068+ * documentation.
2069+ *
2070+ * @see #getBainHasmashosYereim2Point75Degrees()
2071+ */
2072+ public Date getBainHasmashosYereim16Point875Minutes () {
2073+ return getTimeOffset (getElevationAdjustedSunset (), -16.875 * MINUTE_MILLIS );
2074+ }
2075+
2076+ /**
2077+ * This method returns the beginning of <em>bain hashmashos</em> (twilight) according to the <a href=
2078+ * "https://en.wikipedia.org/wiki/Eliezer_ben_Samuel">Yereim (Rabbi Eliezer of Metz)</a> calculated as the sun's
2079+ * position 2.75° above the horizon during the equinox (on March 16, about 4 days before the astronomical
2080+ * equinox, the day that a solar hour is 60 minutes) in Yerushalayim, its position 16.875 minutes or 3/4 of an 18
2081+ * minute <em>Mil</em> before sunset. According to the Yereim, bain hashmashos starts 3/4 of a <em>Mil</em> before
2082+ * sunset and <em>tzais</em> or nightfall starts at sunset.
2083+ *
2084+ * @return the <code>Date</code> of the sun's position 2.75° minutes before sunset. If the calculation can't
2085+ * be computed such as in the Arctic Circle where there is at least one day a year where the sun does not
2086+ * rise, and one where it does not set, a null will be returned. See detailed explanation on top of the
2087+ * {@link AstronomicalCalendar} documentation.
2088+ *
2089+ * @see #ZENITH_MINUS_2_POINT_75
2090+ * @see #getBainHasmashosYereim16Point875Minutes()
2091+ */
2092+ public Date getBainHasmashosYereim2Point75Degrees () {
2093+ return getSunsetOffsetByDegrees (ZENITH_MINUS_2_POINT_75 );
2094+ }
2095+
2096+ /**
2097+ * This method returns the beginning of <em>bain hashmashos</em> (twilight) according to the <a href=
2098+ * "https://en.wikipedia.org/wiki/Eliezer_ben_Samuel">Yereim (Rabbi Eliezer of Metz)</a> calculated as 13.5 minutes
2099+ * or 3/4 of an 18 minute <em>Mil</em> before sunset. According to the Yereim, bain hashmashos starts 3/4 of a
2100+ * <em>Mil</em> before sunset and <em>tzais</em> or nightfall starts at sunset.
2101+ *
2102+ * @return the <code>Date</code> of 13.5 minutes before sunset. If the calculation can't be computed such as in the
2103+ * Arctic Circle where there is at least one day a year where the sun does not rise, and one where it does
2104+ * not set, a null will be returned. See detailed explanation on top of the {@link AstronomicalCalendar}
2105+ * documentation.
2106+ *
2107+ * @see #getBainHasmashosYereim2Point03Degrees()
2108+ */
2109+ public Date getBainHasmashosYereim13Point5Minutes () {
2110+ return getTimeOffset (getElevationAdjustedSunset (), -13.5 * MINUTE_MILLIS );
2111+ }
2112+
2113+ /**
2114+ * This method returns the beginning of <em>bain hashmashos</em> according to the <a href=
2115+ * "https://en.wikipedia.org/wiki/Eliezer_ben_Samuel">Yereim (Rabbi Eliezer of Metz)</a> calculated as the sun's
2116+ * position 2.03° above the horizon during the equinox (on March 16, about 4 days before the astronomical
2117+ * equinox, the day that a solar hour is 60 minutes) in Yerushalayim, its position 13.5 minutes or 3/4 of an 18
2118+ * minute <em>Mil</em> before sunset. According to the Yereim, bain hashmashos starts 3/4 of a <em>Mil</em> before
2119+ * sunset and <em>tzais</em> or nightfall starts at sunset.
2120+ *
2121+ * @return the <code>Date</code> of the sun's position 2.03° minutes before sunset. If the calculation can't
2122+ * be computed such as in the Arctic Circle where there is at least one day a year where the sun does not
2123+ * rise, and one where it does not set, a null will be returned. See detailed explanation on top of the
2124+ * {@link AstronomicalCalendar} documentation.
2125+ *
2126+ * @see #ZENITH_MINUS_2_POINT_03
2127+ * @see #getBainHasmashosYereim13Point5Minutes()
2128+ */
2129+ public Date getBainHasmashosYereim2Point03Degrees () {
2130+ return getSunsetOffsetByDegrees (ZENITH_MINUS_2_POINT_03 );
2131+ }
2132+
19932133 /**
19942134 * This method returns the <em>tzais</em> (nightfall) based on the opinion of the <em>Geonim</em> calculated at the
19952135 * sun's position at {@link #ZENITH_3_POINT_7 3.7°} below the western horizon.
0 commit comments