This class extends ZmanimCalendar and provides many more zmanim than available in the ZmanimCalendar. The basis for
most zmanim in this class are from the _sefer_ Yisroel Vehazmanim
by Rabbi Yisrael Dovid Harfenes.
As an example of the number of different zmanim made available by this class, there are methods to return 18
different calculations for alos (dawn), 18 for plag hamincha and 29 for tzais available in this
API. The real power of this API is the ease in calculating zmanim that are not part of the library. The methods for
zmanim calculations not present in this class or it's superclass {@link ZmanimCalendar} are contained in the
[AstronomicalCalendar], the base class of the calendars in our API since they are generic methods for calculating
time based on degrees or time before or after [getSunrise sunrise and [getSunset sunset and are of interest
for calculation beyond _zmanim_ calculations. Here are some examples.
A class that contains location information such as latitude and longitude required for astronomical calculations. The
elevation field may not be used by some calculation engines and would be ignored if set. Check the documentation for
specific implementations of the {@link AstronomicalCalculator} to see if elevation is calculated as part of the
algorithm.
Tefila Rules is a utility class that covers the various halachos and minhagim regarding
changes to daily tefila / prayers,
based on the Jewish calendar. This is mostly useful for use in
developing siddur type applications,
but it is also valuable for shul calendars that set
tefila times based on if tachanun is
recited that day. There are many settings in this class to cover the vast majority of minhagim,
but
there are likely some not covered here. The source for many of the chasidishe minhagim can be found
in the Minhag Yisrael Torah on Orach
Chaim 131.
Dates used in specific communities such as specific yahrzeits or a holidays like Purim Mezhbizh
(Medzhybizh) celebrated on 11 {@link JewishDate#TEVES Teves} or Purim Saragossa celebrated on
the (17th or) 18th of {@link JewishDate#SHEVAT Shevat} are not (and likely will not be) supported by
this class.
This class calculates the Daf Yomi Bavli page (daf) for a given date. To calculate Daf Yomi Yerushalmi
use the {@link YerushalmiYomiCalculator}. The library may cover Mishna Yomi etc. at some point in the future.
The ZmanimCalendar is arrow_expand specialized calendar that can calculate sunrise and sunset and Jewish zmanim
(religious times) for prayers and other Jewish religious duties. This class contains the main functionality of the
Zmanim library. For a much more extensive list of zmanim, use the ComplexZmanimCalendar that
extends this class. See documentation for the {@link ComplexZmanimCalendar} and AstronomicalCalendar for
simple examples on using the API. According to Rabbi Dovid Yehudah Bursztyn in his
Zmanim Kehilchasam (second edition published in 2007) chapter 2
(pages 186-187) no zmanim besides sunrise and sunset should use elevation. However, Rabbi Yechiel Avrahom
Zilber in the Birur Halacha Vol. 6 Ch. 58 Pages
34 and
42 is of the opinion that elevation should be
accounted for in zmanim calculations. Related to this, Rabbi Yaakov Karp in Shimush Zekeinim, Ch. 1, page 17 states that obstructing horizons should
be factored into zmanim calculations. The setting defaults to false (elevation will not be used for
zmanim calculations besides sunrise and sunset), unless the setting is changed to true in {@link
#setUseElevation(boolean)}. This will impact sunrise and sunset-based zmanim such as {@link #getSunrise()},
{@link #getSunset()}, {@link #getSofZmanShmaGRA()}, alos-based zmanim such as {@link #getSofZmanShmaMGA()}
that are based on a fixed offset of sunrise or sunset and zmanim based on a percentage of the day such as
{@link ComplexZmanimCalendar#getSofZmanShmaMGA90MinutesZmanis()} that are based on sunrise and sunset. Even when set to
true it will not impact zmanim that are a degree-based offset of sunrise and sunset, such as {@link
ComplexZmanimCalendar#getSofZmanShmaMGA16Point1Degrees()} or {@link ComplexZmanimCalendar#getSofZmanShmaBaalHatanya()}.
The JewishDate is the base calendar class, that supports maintenance of a {@link java.util.GregorianCalendar}
instance along with the corresponding Jewish date. This class can use the standard Java Date and Calendar
classes for setting and maintaining the dates, but it does not subclass these classes or use them internally
in any calculations. This class also does not have a concept of a time (which the Date class does). Please
note that the calendar does not currently support dates prior to 1/1/1 Gregorian. Also keep in mind that the
Gregorian calendar started on October 15, 1582, so any calculations prior to that are suspect (at least from
a Gregorian perspective). While 1/1/1 Gregorian and forward are technically supported, any calculations prior to Hillel II's (Hakatan's) calendar (4119 in the Jewish Calendar / 359
CE Julian as recorded by Rav Hai Gaon) would be just an
approximation.