Skip to content

Commit

Permalink
Merge everything (except Israel) onto Amudeh Hora'ah mode
Browse files Browse the repository at this point in the history
  • Loading branch information
NightScript370 committed Jan 21, 2025
1 parent 7d8bf28 commit 25cbbc9
Show file tree
Hide file tree
Showing 34 changed files with 160 additions and 9,287 deletions.
15 changes: 4 additions & 11 deletions _includes/about.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,5 @@
Welcome to the זמני יוסף website, where we calculate Halachic times based on the teachings of HaRav Ovadia Yosef ZT"L and other Sepharadic leaders for each user according to their location. Beyond relying on what he's written throughout his Sefarim (quoted in the description of each time slot), our reported times can match either of the two following calendars:
We are the platform to use whenever and wherever you'd need Halachic Times (Zemanim) according to **Hakham Ovadia Yosef zt'l**, following his practices represented in his **Ohr Hachaim** calendar from Eretz Yisrael. Outside Israel, our algorithm follow's the rules outlined by the Minḥat Kohen (as quoted by R David Yosef, approved by R Yitzḥak Yosef) to comply with the astronomical differences while sticking to seasonal minutes.

- The **Ohr Hachaim** calendar was made by *Rabbi Shelomo Benizri* of Yeshivat "Ohr Hachaim". This is the calendar Maran zt"l used in Israel, as well as what R' Yitzhak Yosef says to use outside Eretz Yisrael (עין יצחק ג' דף ר"ל).
- The **Amudeh Horaah** calendar was made for places outside Eretz Yisrael by *Rabbi Leeor Dahan*, author of the Mishnah Berurah commentary of that same name. These use adjusted-seasonal minutes for dawn/night-based Halachic times, as an interpretation of R' David Yosef's Halacha Berurah (סימן רס"א ה' י"ג).

Calculations found on our platform (website and app) are typically more precise for specific geocoordinates than PDFs that need to account for a town as a whole. We benefit from this by introducing a **visible sunrise** option, which needs to be as precise as 2-8km. (More information on that can be found in the description for sunrise)
- Calendars using the outdated USNO algorithm will always be [inaccurate](https://github.com/KosherJava/zmanim/commit/b69dc31cf041279523fc9a4a6ac06912736487bb). With its newer version being closed-sourced (and thus inaccessible to any calendar), we instead use the NOAA algorithm.
- Although we _technically_ calculate down to nanosecond level, we only guarantee reliability to the minutes since seconds and beyond are **unreliable** for practical use.

Descriptions included with each halachic time come with the relevant sources on how to calculate them as well as explanations of the halachic position. Our terminology usage should be accessible to anyone looking to learn more on the matter, regardless of ethnic background (for Ashkenazim) or alternative approaches to the subject (including those who haven't learned it at all).
- Our sources are pulled primarily from Rabbi Ovadia's teachings and the system he based himself on, including the three Amudeh Horaah's (Rambam, Rif & Rosh), R Yosef Cairo's works (Bet Yosef & Shulḥan Arukh) as well as books written by Rabbi Ovadia and correspondents themselves. Although they can be found throughout the relevant responsa's, they have been compiled in the הוראה ברורה section of Rabbi Leeor Dahan's משנה ברורה: עמידי הוראה III. In addition, they have been summarized for the introduction to Siman 261 in R' David Yosef's הלכה ברורה.
- The codebase we wrote based on these teachings is fully open-source, hosted on our [GitHub repository](https://github.com/Elyahu41/royzmanimwebsite).
- Available through apps, print-out calendars, digital exports, TV schedules for shuls & our website (you're on here right now)!
- Expanded implementations possible through our [open-source codebase](https://github.com/Zemaneh-Yosef). Implementations available in JavaScript, Java & Swift
- _Sugya_ descriptions for every time, with sources and possible trivia.
6 changes: 3 additions & 3 deletions _includes/modals/location.html
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,15 @@ <h3 class="modal-title"> Location information for <span data-zfReplace="Location
<div class="modal-body">
<p>(<span data-zfReplace="locationLat"></span>, <span data-zfReplace="locationLng"></span>)</p>
<p class="lang lang-hb">
<b data-zfFind="locationElev">Elevation: </b><span data-zfFind="luachAmudehHoraah"> (disabled in the Amudeh Horaah Calendar)</span><br>
<b data-zfFind="locationElev">Elevation: </b><span data-zfFind="luachAmudehHoraah"> (disabled outside Eretz Yisrael)</span><br>
<b data-zfFind="locationTimeZone">Timezone: </b>
</p>
<p class="lang lang-et">
<b data-zfFind="locationElev">Elevation: </b><span data-zfFind="luachAmudehHoraah"> (disabled in the Amudeh Horaah Calendar)</span><br>
<b data-zfFind="locationElev">Elevation: </b><span data-zfFind="luachAmudehHoraah"> (disabled outside Eretz Yisrael)</span><br>
<b data-zfFind="locationTimeZone">Timezone: </b>
</p>
<p class="lang lang-en">
<b data-zfFind="locationElev">Elevation: </b><span data-zfFind="luachAmudehHoraah"> (disabled in the Amudeh Horaah Calendar)</span><br>
<b data-zfFind="locationElev">Elevation: </b><span data-zfFind="luachAmudehHoraah"> (disabled outside Eretz Yisrael)</span><br>
<b data-zfFind="locationTimeZone">Timezone: </b>
</p>
<div data-zfFind="locationMap" style="width: 100%; aspect-ratio: 1/1;"></div>
Expand Down
24 changes: 11 additions & 13 deletions _includes/modals/notSupported.html
Original file line number Diff line number Diff line change
@@ -1,14 +1,12 @@
<div class="modal fade" id="unsupportedModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="unsupportedModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h1 class="modal-title fs-5" id="unsupportedModalLabel">Not Supported | אינו נתמך</h1>
</div>
<div class="modal-body">
Sorry, our website is not compatible with your browser. Please update to the latest version of either Google Chrome, Microsoft Edge, Mozilla Firefox or Safari to use our site.
<hr>
מצטערים, האתר שלנו אינו תואם לדפדפן שלך. אנא עדכן לגרסה העדכנית ביותר של Google Chrome, Microsoft Edge, Mozilla Firefox או Safari כדי להשתמש באתר שלנו.
</div>
</div>
</div>
</div>
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header"><h1 class="modal-title fs-5" id="unsupportedModalLabel">Not Supported | אינו נתמך</h1></div>
<div class="modal-body">
Sorry, our website is not compatible with your browser. Please update to the latest version of either Google Chrome, Microsoft Edge, Mozilla Firefox or Safari to use our site.
<hr>
מצטערים, האתר שלנו אינו תואם לדפדפן שלך. אנא עדכן לגרסה העדכנית ביותר של Google Chrome, Microsoft Edge, Mozilla Firefox או Safari כדי להשתמש באתר שלנו.
</div>
</div>
</div>
</div>
19 changes: 0 additions & 19 deletions _includes/modals/settings.html
Original file line number Diff line number Diff line change
Expand Up @@ -9,25 +9,6 @@ <h6>These settings automatically save when they're changed and should be automat
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<div class="d-lg-flex">
<div style="flex: 1 1;">
<h4>Methods of Calculations</h4>
<ul>
<li>The <strong>Amudeh Hora'ah</strong> Calendar based outside Eretz Yisrael was put together by Rabbi Leeor Dahan. It relies on the opinion of Minchat Cohen to modify the calculations based on how far north/south one is away from Israel. This opinion is quoted by Rabbi David Yosef in Halacha Brurah (Chelek 15, Siman 261, halacha 13).</li>
<li>The <strong>Ohr Hachaim</strong> Calendar based in Eretz Yisrael was used by Hacham Ovadia himself. It uses elevation to account for the hill-based environment, but does not alter the timings based on how far north/south one is located away from Israel based on what Rabbi Shlomo Benizri claims to be a verbal instruction by Hacham Ovadia Yosef.</li>
</ul>
</div>
<div>
<div class="btn-group" id="calendarPsakSetter">
<input type="radio" class="btn-check" name="calcMode" id="amudehHoraah" autocomplete="off" checked />
<label class="btn btn-secondary" for="amudehHoraah">Amudeh Hora'ah</label>

<input type="radio" class="btn-check" name="calcMode" id="ohrHachaim" autocomplete="off" />
<label class="btn btn-secondary" for="ohrHachaim">Ohr Hachaim</label>
</div>
</div>
</div>
<hr>
<div class="d-lg-flex">
<div style="flex: 1 1;">
<h4>Language Options</h4>
Expand Down
19 changes: 7 additions & 12 deletions _includes/printcal/differences.md
Original file line number Diff line number Diff line change
@@ -1,30 +1,25 @@
###### Calendar "Modes"

To represent two physical calendars, we added a "calendar mode" toggle on our website. This is reflected when exporting the PDF, and one can see which mode they are on by looking at the bottom left. The differences are explained in the "Seasonal Hours + Alot/Tzet" section

###### Seasonal Hours + Dawn/Nightfall

We use the length of the day from sunrise until sunset to determine all Halachic times, whether within the day or *times before sunrise/after sunset*. This means that, just like degree calculations (and unlike some calendars that used fixed minutes), these times are longer in the summer; that's because the days are longer in the summer. However, unlike both degrees calculation (for times outside sunrise->sunset) and fixed minutes, these times are *shorter* in the winter months, despite astronomy dictating that these times should be longer for times outside the day's length. There are a few exceptions, though, when we use other methods of calculation (dawn->nightfall seasonal, degrees, fixed) instead of seasonal sunrise->sunset times:

- Keriath Shema & Hametz use seasonal time calculated from Dawn until Nightfall
- Minḥa Gedolah uses a fixed 30 minute minimum, for the winter months
- Shabbat needs some conformity to astronomical sightings, so we use pure degrees in the Amudeh Hora'ah calendar (7.14) and 40 minutes for the Ohr Hachaim calendar.
- Rabbenu Tam's Nightfall displays a maximum of 72 fixed minutes in the Amudeh Hora'ah calendar, based on both R' Yitzhak Yosef & R' David Yosef. This does **not** apply to the Ohr Hachaim calendar, though, which explicitly follows R' Ovadia that said one *should* use 72 seasonal minutes, both for leniencies & stringencies.
- Candle Lighting times are using fixed minutes before sunset, due to the entire concept being based on recognition for Shabbat. We use 20 fixed minutes, based on rounding up a mil's length (discussed later on).
- Tzet Shabbat uses 30 fixed minutes, which should always include time for tosefet and factors in the astronomy for Eretz Yisrael itself

For the time portions outside of the days length, the Amudeh Hora'ah calendar uses the degree-based time for the equinox day and makes those minutes seasonal. Thereby, 13.5 seasonal minutes becomes 16.5 seasonal minutes in NY, due to 13.5 minutes matching 3.77 degees in Israel and also matching 16.5 minutes in NY.
Outside of Eretz Yisrael, a few other changes are made:

- Tzet Shabbat outside Eretz Yisrael confines to purely astronomical sightings, so we measure the sun's position below the horizon 30 minutes after sunset on March 20th. We then match that spot for every day of the year in every location, in turn making Shabbat the most stringent whenever possible.
- For all other times, the expected position of the sun must match for times outside sunrise->sunset **on the equinox day**. In turn, these expand/shrink the amount of minutes for Dawn/Nightfall, continuing the minutes parralel (at least for one day) while keeping the minutes seasonal for the other days of the year.
- Rabbenu Tam's Nightfall is capped at 72 fixed minutes, based on both R' Yitzhak Yosef & R' David Yosef's ruling.

---

The Talmudic way of referring to the measurement behind these times is a "mil", which we hold is 18 minutes. Thereby, ¾<sup>th</sup> of a mil is 13 ½ minutes (used for Geonim's nightfall) and 4 mil is 72 minutes (used for dawn and R"T's nightfall). For special occasions (such as ending a fast), we would switch to the Rambam's mil equivalence of 24 minutes, making it's rounded up ¾<sup>th</sup> value as 20 minutes after sunset.

###### Sunrise/Sunset

When reporting the times for the calendar, the given time differs from the sunrise/sunset times used to compute seasonal hours in the following regards:
- These times will always be shown without elevation (regardless of whether elevation is used for calculating the other times (like in the Ohr Hachaim calendar) or not (like in the Amudeh Hora'ah calendar)).
- If the user has scraped "Visual Sunrise" times from the ChaiTables.com website, they will be included in this PDF, as indicated by the inclusion of seconds.

These times are provided from the **NOAA algorithm**.
These are both astronomical constants, as the base to the other times. Internally, they will use the **NOAA algorithm** with elevation (except for outside Eretz Yisrael), yet sunrise will display a different time: non-elevation sunrise. This is closer to the intended result of "Visual Sunrise", scrapeable from the ChaiTables.com website. Users who did scrape these times (by following the instructions on the website by the sunrise description) will see seconds added to the "Sunrise" column.

###### Midday

Expand Down
Loading

0 comments on commit 25cbbc9

Please sign in to comment.