@hebcal/core
Hebcal is a perpetual Jewish Calendar. This library converts between
Hebrew and Gregorian dates, and generates lists of Jewish holidays for
any year (past, present or future). Shabbat and holiday candle
lighting and havdalah times are approximated based on location. Torah
readings (Parashat HaShavua), Daf Yomi, and counting of the Omer can
also be specified. Hebcal also includes algorithms to calculate
yahrzeits, birthdays and anniversaries.
Hebcal was created in 1994 by Danny Sadinoff as a Unix/Linux program
written in C, inspired by similar functionality written in Emacs
Lisp. The initial JavaScript port was released in 2014 by Eyal
Schachter (age 15). This ECMAScript 2015 implementation was released
in 2020 by Michael J. Radwin. @hebcal/core
targets both
browser-based JavaScript and server-side Node.js.
Many users of this library will utilize the HebrewCalendar
and HDate interfaces.
Installation
$ npm install @hebcal/core
Synopsis
import {HebrewCalendar, HDate, Location, Event} from '@hebcal/core';
const options: CalOptions = {
year: 1981,
isHebrewYear: false,
candlelighting: true,
location: Location.lookup('San Francisco'),
sedrot: true,
omer: true,
};
const events = HebrewCalendar.calendar(options);
for (const ev of events) {
const hd = ev.getDate();
const date = hd.greg();
console.log(date.toLocaleDateString(), ev.render('en'), hd.toString());
}
Classes
- Locale
A locale in Hebcal is used for translations/transliterations of
holidays. @hebcal/hdate
supports four locales by default
en
- default, Sephardic transliterations (e.g. "Shabbat")ashkenazi
- Ashkenazi transliterations (e.g. "Shabbos")he
- Hebrew (e.g. "שַׁבָּת")he-x-NoNikud
- Hebrew without nikud (e.g. "שבת")
- HDate
Represents a Hebrew date
- Event
Represents an Event with a title, date, and flags
- HebrewDateEvent
Daily Hebrew date ("11th of Sivan, 5780")
- GeoLocation
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.
- NOAACalculator
Implementation of sunrise and sunset methods to calculate astronomical times based on the NOAA algorithm. This calculator uses the Java algorithm based on the implementation by NOAA - National Oceanic and Atmospheric Administration's Surface Radiation Research Branch. NOAA's implementation is based on equations from Astronomical Algorithms by Jean Meeus. Added to the algorithm is an adjustment of the zenith
to account for elevation. The algorithm can be found in the Wikipedia Sunrise Equation article.
- Location
Class representing Location
- Zmanim
Calculate halachic times (zmanim / זְמַנִּים) for a given day and location.
Calculations are available for tzeit / tzais (nightfall),
shkiah (sunset) and more.
Zmanim are estimated using an algorithm published by the US National Oceanic
and Atmospheric Administration. The NOAA solar calculator is based on equations
from Astronomical Algorithms by Jean Meeus.
The sunrise and sunset results are theoretically accurate to within a minute for
locations between +/- 72° latitude, and within 10 minutes outside of those latitudes.
However, due to variations in atmospheric composition, temperature, pressure and
conditions, observed values may vary from calculations.
https://gml.noaa.gov/grad/solcalc/calcdetails.html
- TimedEvent
An event that has an eventTime
and eventTimeStr
- CandleLightingEvent
Candle lighting before Shabbat or holiday
- HavdalahEvent
Havdalah after Shabbat or holiday
- Molad
Represents a molad, the moment when the new moon is "born"
- MoladEvent
Represents a Molad announcement on Shabbat Mevarchim
- OmerEvent
Represents a day 1-49 of counting the Omer from Pesach to Shavuot
- Sedra
Represents Parashah HaShavua for an entire Hebrew year
- ParshaEvent
Represents one of 54 weekly Torah portions, always on a Saturday
- HolidayEvent
Represents a built-in holiday like Pesach, Purim or Tu BiShvat
- AsaraBTevetEvent
Because Asara B'Tevet often occurs twice in the same Gregorian year,
we subclass HolidayEvent to override the url()
method.
- RoshChodeshEvent
Represents Rosh Chodesh, the beginning of a new month
- MevarchimChodeshEvent
Represents Mevarchim haChodesh, the announcement of the new month
- DailyLearning
Plug-ins for daily learning calendars such as Daf Yomi, Mishna Yomi, Nach Yomi, etc.
Learning schedules are provided by the @hebcal/learning
package.
- HebrewCalendar
HebrewCalendar is the main interface to the @hebcal/core
library.
This namespace is used to calculate holidays, rosh chodesh, candle lighting & havdalah times,
Parashat HaShavua, Daf Yomi, days of the omer, and the molad.
Event names can be rendered in several languges using the locale
option.
Members
- greg
Gregorian date helper functions.
Constants
- parshiot :
Array.<string>
The 54 parshiyot of the Torah as transilterated strings
parshiot[0] == 'Bereshit', parshiot[1] == 'Noach', parshiot[52] == "Ha'azinu".
- version
DO NOT EDIT THIS AUTO-GENERATED FILE!
Functions
- hebrew2abs(year, month, day) ⇒
number
Converts Hebrew date to R.D. (Rata Die) fixed days.
R.D. 1 is the imaginary date Monday, January 1, 1 on the Gregorian
Calendar.
- abs2hebrew(abs) ⇒
SimpleHebrewDate
Converts absolute R.D. days to Hebrew date
- isLeapYear(year) ⇒
boolean
Returns true if Hebrew year is a leap year
- monthsInYear(year) ⇒
number
Number of months in this Hebrew year (either 12 or 13 depending on leap year)
- daysInMonth(month, year) ⇒
number
Number of days in Hebrew month in a given year (29 or 30)
- getMonthName(month, year)
Returns a transliterated string name of Hebrew month in year,
for example 'Elul' or 'Cheshvan'.
- elapsedDays(year) ⇒
number
Days from sunday prior to start of Hebrew calendar to mean
conjunction of Tishrei in Hebrew YEAR
- daysInYear(year) ⇒
number
Number of days in the hebrew YEAR.
A common Hebrew calendar year can have a length of 353, 354 or 355 days
A leap Hebrew calendar year can have a length of 383, 384 or 385 days
- longCheshvan(year) ⇒
boolean
true if Cheshvan is long in Hebrew year
- shortKislev(year) ⇒
boolean
true if Kislev is short in Hebrew year
- monthFromName(monthName) ⇒
number
Converts Hebrew month string name to numeric
- gematriya(num) ⇒
string
Converts a numerical value to a string of Hebrew letters.
When specifying years of the Hebrew calendar in the present millennium,
we omit the thousands (which is presently 5 [ה]).
- gematriyaStrToNum(str) ⇒
number
Converts a string of Hebrew letters to a numerical value.
Only considers the value of Hebrew letters א
through ת
.
Ignores final Hebrew letters such as ך
(kaf sofit) or ם
(mem sofit)
and vowels (nekudot).
- omerSefira(omerDay, lang) ⇒
Returns the sefira. For example, on day 8
חֶֽסֶד שֶׁבִּגְבוּרָה
Chesed shebiGevurah
Lovingkindness within Might
- omerTodayIs(omerDay, lang) ⇒
Returns a sentence with that evening's omer count
- omerEmoji(omerDay) ⇒
Returns an emoji number symbol with a circle, for example ㊲
from the “Enclosed CJK Letters and Months” block of the Unicode standard
- molad()
Calculates the molad for a Hebrew month
- getPseudoISO(tzid, date) ⇒
string
Returns a string similar to Date.toISOString()
but in the
timezone tzid
. Contrary to the typical meaning of Z
at the end
of the string, this is not actually a UTC date.
- getTimezoneOffset(tzid, date) ⇒
number
Returns number of minutes tzid
is offset from UTC on date date
.
- pad4(number) ⇒
string
Formats a number with leading zeros so the resulting string is 4 digits long.
Similar to string.padStart(4, '0')
but will also format
negative numbers similar to how the JavaScript date formats
negative year numbers (e.g. -37
is formatted as -000037
).
- pad2(number) ⇒
string
Formats a number with leading zeros so the resulting string is 2 digits long.
Similar to string.padStart(2, '0')
.
Locale
A locale in Hebcal is used for translations/transliterations of
holidays. @hebcal/hdate
supports four locales by default
en
- default, Sephardic transliterations (e.g. "Shabbat")ashkenazi
- Ashkenazi transliterations (e.g. "Shabbos")he
- Hebrew (e.g. "שַׁבָּת")he-x-NoNikud
- Hebrew without nikud (e.g. "שבת")
Kind: global class
Locale.lookupTranslation(id, [locale]) ⇒ string
Returns translation only if locale
offers a non-empty translation for id
.
Otherwise, returns undefined
.
Kind: static method of Locale
Param | Type | Description |
---|
id | string | Message ID to translate |
[locale] | string | Optional locale name (i.e: 'he' , 'fr' ). Defaults to active locale. |
Locale.gettext(id, [locale]) ⇒ string
By default, if no translation was found, returns id
.
Kind: static method of Locale
Param | Type | Description |
---|
id | string | Message ID to translate |
[locale] | string | Optional locale name (i.e: 'he' , 'fr' ). Defaults to active locale. |
Locale.addLocale(locale, data)
Register locale translations.
Kind: static method of Locale
Param | Type | Description |
---|
locale | string | Locale name (i.e.: 'he' , 'fr' ) |
data | LocaleData | parsed data from a .po file. |
Locale.addTranslation(locale, id, translation)
Adds a translation to locale
, replacing any previous translation.
Kind: static method of Locale
Param | Type | Description |
---|
locale | string | Locale name (i.e: 'he' , 'fr' ). |
id | string | Message ID to translate |
translation | string | Array.<string> | Translation text |
Locale.addTranslations(locale, data)
Adds multiple translations to locale
, replacing any previous translations.
Kind: static method of Locale
Param | Type | Description |
---|
locale | string | Locale name (i.e: 'he' , 'fr' ). |
data | LocaleData | parsed data from a .po file. |
Locale.useLocale(locale)
Activates a locale. Throws an error if the locale has not been previously added.
After setting the locale to be used, all strings marked for translations
will be represented by the corresponding translation in the specified locale.
Kind: static method of Locale
Param | Type | Description |
---|
locale | string | Locale name (i.e: 'he' , 'fr' ) |
Locale.getLocaleName() ⇒ string
Returns the name of the active locale (i.e. 'he', 'ashkenazi', 'fr')
Kind: static method of Locale
Locale.getLocaleNames() ⇒ Array.<string>
Returns the names of registered locales
Kind: static method of Locale
Locale.ordinal(n, [locale]) ⇒ string
Kind: static method of Locale
Param | Type | Description |
---|
n | number | |
[locale] | string | Optional locale name (i.e: 'he' , 'fr' ). Defaults to active locale. |
Locale.hebrewStripNikkud(str) ⇒ string
Removes nekudot from Hebrew string
Kind: static method of Locale
HDate
Represents a Hebrew date
Kind: global class
new HDate([day], [month], [year])
Create a Hebrew date. There are 3 basic forms for the HDate()
constructor.
- No parameters - represents the current Hebrew date at time of instantiation
- One parameter
Date
- represents the Hebrew date corresponding to the Gregorian date using
local time. Hours, minutes, seconds and milliseconds are ignored.HDate
- clones a copy of the given Hebrew datenumber
- Converts absolute R.D. days to Hebrew date.
R.D. 1 == the imaginary date January 1, 1 (Gregorian)
- Three parameters: Hebrew day, Hebrew month, Hebrew year. Hebrew day should
be a number between 1-30, Hebrew month can be a number or string, and
Hebrew year is always a number.
Param | Type | Description |
---|
[day] | number | Date | HDate | Day of month (1-30) if a number . If a Date is specified, represents the Hebrew date corresponding to the Gregorian date using local time. If an HDate is specified, clones a copy of the given Hebrew date. |
[month] | number | string | Hebrew month of year (1=NISAN, 7=TISHREI) |
[year] | number | Hebrew year |
Example
import {HDate, months} from '@hebcal/hdate';
const hd1 = new HDate();
const hd2 = new HDate(new Date(2008, 10, 13));
const hd3 = new HDate(15, 'Cheshvan', 5769);
const hd4 = new HDate(15, months.CHESHVAN, 5769);
const hd5 = new HDate(733359);
const monthName = 'אייר';
const hd6 = new HDate(5, monthName, 5773);
hDate.getFullYear() ⇒ number
Gets the Hebrew year of this Hebrew date
Kind: instance method of HDate
hDate.isLeapYear() ⇒ boolean
Tests if this date occurs during a leap year
Kind: instance method of HDate
hDate.getMonth() ⇒ number
Gets the Hebrew month (1=NISAN, 7=TISHREI) of this Hebrew date
Kind: instance method of HDate
hDate.getTishreiMonth() ⇒ number
The Tishrei-based month of the date. 1 is Tishrei, 7 is Nisan, 13 is Elul in a leap year
Kind: instance method of HDate
hDate.daysInMonth() ⇒ number
Number of days in the month of this Hebrew date
Kind: instance method of HDate
hDate.getDate() ⇒ number
Gets the day within the month (1-30)
Kind: instance method of HDate
hDate.getDay() ⇒ number
Gets the day of the week. 0=Sunday, 6=Saturday
Kind: instance method of HDate
hDate.greg() ⇒ Date
Converts to Gregorian date
Kind: instance method of HDate
hDate.abs() ⇒ number
Returns R.D. (Rata Die) fixed days.
R.D. 1 == Monday, January 1, 1 (Gregorian)
Note also that R.D. = Julian Date − 1,721,424.5
https://en.wikipedia.org/wiki/Rata_Die#Dershowitz_and_Reingold
Kind: instance method of HDate
hDate.getMonthName() ⇒ string
Returns a transliterated Hebrew month name, e.g. 'Elul'
or 'Cheshvan'
.
Kind: instance method of HDate
hDate.render([locale], [showYear]) ⇒ string
Renders this Hebrew date as a translated or transliterated string,
including ordinal e.g. '15th of Cheshvan, 5769'
.
Kind: instance method of HDate
Param | Type | Default | Description |
---|
[locale] | string | | Optional locale name (defaults to active locale). |
[showYear] | boolean | true | Display year (defaults to true). |
Example
import {HDate, months} from '@hebcal/hdate';
const hd = new HDate(15, months.CHESHVAN, 5769);
console.log(hd.render('en'));
console.log(hd.render('he'));
hDate.renderGematriya([suppressNikud]) ⇒ string
Renders this Hebrew date in Hebrew gematriya, regardless of locale.
Kind: instance method of HDate
Param | Type | Default |
---|
[suppressNikud] | boolean | false |
Example
import {HDate, months} from '@hebcal/hdate';
const hd = new HDate(15, months.CHESHVAN, 5769);
console.log(hd.renderGematriya());
hDate.before(dow) ⇒ HDate
Returns an HDate
representing the a dayNumber before the current date.
Sunday=0, Saturday=6
Kind: instance method of HDate
Param | Type | Description |
---|
dow | number | day of week |
Example
new HDate(new Date('Wednesday February 19, 2014')).before(6).greg()
hDate.onOrBefore(dow) ⇒ HDate
Returns an HDate
representing the a dayNumber on or before the current date.
Sunday=0, Saturday=6
Kind: instance method of HDate
Param | Type | Description |
---|
dow | number | day of week |
Example
new HDate(new Date('Wednesday February 19, 2014')).onOrBefore(6).greg()
new HDate(new Date('Saturday February 22, 2014')).onOrBefore(6).greg()
new HDate(new Date('Sunday February 23, 2014')).onOrBefore(6).greg()
hDate.nearest(dow) ⇒ HDate
Returns an HDate
representing the nearest dayNumber to the current date
Sunday=0, Saturday=6
Kind: instance method of HDate
Param | Type | Description |
---|
dow | number | day of week |
Example
new HDate(new Date('Wednesday February 19, 2014')).nearest(6).greg()
new HDate(new Date('Tuesday February 18, 2014')).nearest(6).greg()
hDate.onOrAfter(dow) ⇒ HDate
Returns an HDate
representing the a dayNumber on or after the current date.
Sunday=0, Saturday=6
Kind: instance method of HDate
Param | Type | Description |
---|
dow | number | day of week |
Example
new HDate(new Date('Wednesday February 19, 2014')).onOrAfter(6).greg()
new HDate(new Date('Saturday February 22, 2014')).onOrAfter(6).greg()
new HDate(new Date('Sunday February 23, 2014')).onOrAfter(6).greg()
hDate.after(dow) ⇒ HDate
Returns an HDate
representing the a dayNumber after the current date.
Sunday=0, Saturday=6
Kind: instance method of HDate
Param | Type | Description |
---|
dow | number | day of week |
Example
new HDate(new Date('Wednesday February 19, 2014')).after(6).greg()
new HDate(new Date('Saturday February 22, 2014')).after(6).greg()
new HDate(new Date('Sunday February 23, 2014')).after(6).greg()
hDate.next() ⇒ HDate
Returns the next Hebrew date
Kind: instance method of HDate
hDate.prev() ⇒ HDate
Returns the previous Hebrew date
Kind: instance method of HDate
hDate.add(amount, [units]) ⇒ HDate
Returns a cloned HDate
object with a specified amount of time added
Units are case insensitive, and support plural and short forms.
Note, short forms are case sensitive.
Unit | Shorthand | Description |
---|
day | d | days |
week | w | weeks |
month | M | months |
year | y | years |
Kind: instance method of HDate
Param | Type | Default |
---|
amount | number | |
[units] | string | "d" |
hDate.subtract(amount, [units]) ⇒ HDate
Returns a cloned HDate
object with a specified amount of time subracted
Units are case insensitive, and support plural and short forms.
Note, short forms are case sensitive.
Unit | Shorthand | Description |
---|
day | d | days |
week | w | weeks |
month | M | months |
year | y | years |
Kind: instance method of HDate
Param | Type | Default |
---|
amount | number | |
[units] | string | "d" |
Example
import {HDate, months} from '@hebcal/hdate';
const hd1 = new HDate(15, months.CHESHVAN, 5769);
const hd2 = hd1.add(1, 'weeks');
const hd3 = hd1.add(-3, 'M');
hDate.deltaDays(other) ⇒ number
Returns the difference in days between the two given HDates.
The result is positive if this
date is comes chronologically
after the other
date, and negative
if the order of the two dates is reversed.
The result is zero if the two dates are identical.
Kind: instance method of HDate
Param | Type | Description |
---|
other | HDate | Hebrew date to compare |
Example
import {HDate, months} from '@hebcal/hdate';
const hd1 = new HDate(25, months.KISLEV, 5770);
const hd2 = new HDate(15, months.CHESHVAN, 5769);
const days = hd1.deltaDays(hd2);
hDate.isSameDate(other) ⇒ boolean
Compares this date to another date, returning true
if the dates match.
Kind: instance method of HDate
Param | Type | Description |
---|
other | HDate | Hebrew date to compare |
hDate.toString() ⇒ string
Kind: instance method of HDate
HDate.hebrew2abs(year, month, day) ⇒ number
Converts Hebrew date to R.D. (Rata Die) fixed days.
R.D. 1 is the imaginary date Monday, January 1, 1 on the Gregorian
Calendar.
Kind: static method of HDate
Param | Type | Description |
---|
year | number | Hebrew year |
month | number | Hebrew month |
day | number | Hebrew date (1-30) |
HDate.isLeapYear(year) ⇒ boolean
Returns true if Hebrew year is a leap year
Kind: static method of HDate
Param | Type | Description |
---|
year | number | Hebrew year |
HDate.monthsInYear(year) ⇒ number
Number of months in this Hebrew year (either 12 or 13 depending on leap year)
Kind: static method of HDate
Param | Type | Description |
---|
year | number | Hebrew year |
HDate.daysInMonth(month, year) ⇒ number
Number of days in Hebrew month in a given year (29 or 30)
Kind: static method of HDate
Param | Type | Description |
---|
month | number | Hebrew month (e.g. months.TISHREI) |
year | number | Hebrew year |
HDate.getMonthName(month, year) ⇒ string
Returns a transliterated string name of Hebrew month in year,
for example 'Elul' or 'Cheshvan'.
Kind: static method of HDate
Param | Type | Description |
---|
month | number | Hebrew month (e.g. months.TISHREI) |
year | number | Hebrew year |
HDate.monthNum(month) ⇒ number
Returns the Hebrew month number (NISAN=1, TISHREI=7)
Kind: static method of HDate
Param | Type | Description |
---|
month | number | string | A number, or Hebrew month name string |
HDate.daysInYear(year) ⇒ number
Number of days in the hebrew YEAR
Kind: static method of HDate
Param | Type | Description |
---|
year | number | Hebrew year |
HDate.longCheshvan(year) ⇒ boolean
true if Cheshvan is long in Hebrew year
Kind: static method of HDate
Param | Type | Description |
---|
year | number | Hebrew year |
HDate.shortKislev(year) ⇒ boolean
true if Kislev is short in Hebrew year
Kind: static method of HDate
Param | Type | Description |
---|
year | number | Hebrew year |
HDate.monthFromName(monthName) ⇒ number
Converts Hebrew month string name to numeric
Kind: static method of HDate
Param | Type | Description |
---|
monthName | string | number | monthName |
HDate.dayOnOrBefore(dayOfWeek, absdate) ⇒ number
Note: Applying this function to d+6 gives us the DAYNAME on or after an
absolute day d. Similarly, applying it to d+3 gives the DAYNAME nearest to
absolute date d, applying it to d-1 gives the DAYNAME previous to absolute
date d, and applying it to d+7 gives the DAYNAME following absolute date d.
Kind: static method of HDate
Param | Type |
---|
dayOfWeek | number |
absdate | number |
HDate.isHDate(obj) ⇒ boolean
Tests if the object is an instance of HDate
Kind: static method of HDate
HDate.fromGematriyaString(str, currentThousands) ⇒ HDate
Construct a new instance of HDate
from a Gematriya-formatted string
Kind: static method of HDate
Param | Type | Default |
---|
str | string | |
currentThousands | number | 5000 |
Example
HDate.fromGematriyaString('כ״ז בְּתַמּוּז תשפ״ג')
HDate.fromGematriyaString('כ׳ סיון תש״ד')
HDate.fromGematriyaString('ה׳ אִיָיר תש״ח')
Event
Represents an Event with a title, date, and flags
Kind: global class
new Event(date, desc, [mask], [attrs])
Constructs Event
Param | Type | Default | Description |
---|
date | HDate | | Hebrew date event occurs |
desc | string | | Description (not translated) |
[mask] | number | 0 | optional bitmask of holiday flags (see flags) |
[attrs] | Object | {} | optional additional attributes (e.g. eventTimeStr , cholHaMoedDay ) |
event.getDate() ⇒ HDate
Hebrew date of this event
Kind: instance method of Event
event.getDesc() ⇒ string
Untranslated description of this event
Kind: instance method of Event
event.getFlags() ⇒ number
Bitmask of optional event flags. See flags
Kind: instance method of Event
event.render([locale]) ⇒ string
Returns (translated) description of this event
Kind: instance method of Event
Param | Type | Description |
---|
[locale] | string | Optional locale name (defaults to active locale). |
Example
const ev = new Event(new HDate(6, 'Sivan', 5749), 'Shavuot', flags.CHAG);
ev.render('en');
ev.render('he');
ev.render('ashkenazi');
event.renderBrief([locale]) ⇒ string
Returns a brief (translated) description of this event.
For most events, this is the same as render(). For some events, it procudes
a shorter text (e.g. without a time or added description).
Kind: instance method of Event
Param | Type | Description |
---|
[locale] | string | Optional locale name (defaults to active locale). |
event.getEmoji() ⇒ string
| null
Optional holiday-specific Emoji or null
.
Kind: instance method of Event
event.basename() ⇒ string
Returns a simplified (untranslated) description for this event. For example,
the HolidayEvent class supports
"Erev Pesach" => "Pesach", and "Sukkot III (CH''M)" => "Sukkot".
For many holidays the basename and the event description are the same.
Kind: instance method of Event
event.url() ⇒ string
| undefined
Returns a URL to hebcal.com or sefaria.org for more detail on the event.
Returns undefined
for events with no detail page.
Kind: instance method of Event
event.observedInIsrael() ⇒ boolean
Is this event observed in Israel?
Kind: instance method of Event
Example
const ev1 = new Event(new HDate(7, 'Sivan', 5749), 'Shavuot II', flags.CHAG | flags.CHUL_ONLY);
ev1.observedInIsrael();
const ev2 = new Event(new HDate(26, 'Kislev', 5749), 'Chanukah: 3 Candles', 0);
ev2.observedInIsrael();
event.observedInDiaspora() ⇒ boolean
Is this event observed in the Diaspora?
Kind: instance method of Event
Example
const ev1 = new Event(new HDate(7, 'Sivan', 5749), 'Shavuot II', flags.CHAG | flags.CHUL_ONLY);
ev1.observedInDiaspora();
const ev2 = new Event(new HDate(26, 'Kislev', 5749), 'Chanukah: 3 Candles', 0);
ev2.observedInDiaspora();
event.observedIn(il) ⇒ boolean
Is this event observed in Israel/Diaspora?
Kind: instance method of Event
Example
const ev1 = new Event(new HDate(7, 'Sivan', 5749), 'Shavuot II', flags.CHAG | flags.CHUL_ONLY);
ev1.observedIn(false);
ev1.observedIn(true);
const ev2 = new Event(new HDate(26, 'Kislev', 5749), 'Chanukah: 3 Candles', 0);
ev2.observedIn(false);
ev2.observedIn(true);
event.clone() ⇒ Event
Makes a clone of this Event object
Kind: instance method of Event
event.getCategories() ⇒ Array.<string>
Returns a list of event categories
Kind: instance method of Event
HebrewDateEvent
Daily Hebrew date ("11th of Sivan, 5780")
Kind: global class
new HebrewDateEvent(date)
hebrewDateEvent.render([locale]) ⇒ string
Kind: instance method of HebrewDateEvent
Param | Type | Description |
---|
[locale] | string | Optional locale name (defaults to active locale). |
Example
import {HDate, HebrewDateEvent, months} from '@hebcal/core';
const hd = new HDate(15, months.CHESHVAN, 5769);
const ev = new HebrewDateEvent(hd);
console.log(ev.render('en'));
console.log(ev.render('he'));
hebrewDateEvent.renderBrief([locale]) ⇒ string
Kind: instance method of HebrewDateEvent
Param | Type | Description |
---|
[locale] | string | Optional locale name (defaults to active locale). |
Example
import {HDate, HebrewDateEvent, months} from '@hebcal/core';
const hd = new HDate(15, months.CHESHVAN, 5769);
const ev = new HebrewDateEvent(hd);
console.log(ev.renderBrief());
console.log(ev.renderBrief('he'));
GeoLocation
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.
Kind: global class
Version: 1.1
Author: © Eliyahu Hershfeld 2004 - 2016
new GeoLocation(name, latitude, longitude, elevation, timeZoneId)
GeoLocation constructor with parameters for all required fields.
Param | Type | Description |
---|
name | string | The location name for display use such as "Lakewood, NJ" |
latitude | number | the latitude in a double format such as 40.095965 for Lakewood, NJ. Note: For latitudes south of the equator, a negative value should be used. |
longitude | number | double the longitude in a double format such as -74.222130 for Lakewood, NJ. Note: For longitudes west of the Prime Meridian (Greenwich), a negative value should be used. |
elevation | number | the elevation above sea level in Meters. Elevation is not used in most algorithms used for calculating sunrise and set. |
timeZoneId | string | the TimeZone for the location. |
geoLocation.getElevation() ⇒ number
Method to get the elevation in Meters.
Kind: instance method of GeoLocation
Returns: number
- Returns the elevation in Meters.
geoLocation.setElevation(elevation)
Method to set the elevation in Meters above sea level.
Kind: instance method of GeoLocation
Param | Type | Description |
---|
elevation | number | The elevation to set in Meters. An Error will be thrown if the value is a negative. |
geoLocation.getLatitude() ⇒ number
Kind: instance method of GeoLocation
Returns: number
- Returns the latitude.
geoLocation.getLongitude() ⇒ number
Kind: instance method of GeoLocation
Returns: number
- Returns the longitude.
geoLocation.getLocationName() ⇒ string
| null
Kind: instance method of GeoLocation
Returns: string
| null
- Returns the location name.
geoLocation.setLocationName(name)
Kind: instance method of GeoLocation
Param | Type | Description |
---|
name | string | null | The setter method for the display name. |
geoLocation.getTimeZone() ⇒ string
Kind: instance method of GeoLocation
Returns: string
- Returns the timeZone.
geoLocation.setTimeZone(timeZoneId)
Method to set the TimeZone.
Kind: instance method of GeoLocation
Param | Type | Description |
---|
timeZoneId | string | The timeZone to set. |
NOAACalculator
Implementation of sunrise and sunset methods to calculate astronomical times based on the NOAA algorithm. This calculator uses the Java algorithm based on the implementation by NOAA - National Oceanic and Atmospheric Administration's Surface Radiation Research Branch. NOAA's implementation is based on equations from Astronomical Algorithms by Jean Meeus. Added to the algorithm is an adjustment of the zenith
to account for elevation. The algorithm can be found in the Wikipedia Sunrise Equation article.
Kind: global class
Author: © Eliyahu Hershfeld 2011 - 2019
- NOAACalculator
- new NOAACalculator(geoLocation, date)
- instance
- .getSunrise() ⇒
Temporal.ZonedDateTime
| null
- .getSeaLevelSunrise() ⇒
Temporal.ZonedDateTime
| null
- .getBeginCivilTwilight() ⇒
Temporal.ZonedDateTime
| null
- .getBeginNauticalTwilight() ⇒
Temporal.ZonedDateTime
| null
- .getBeginAstronomicalTwilight() ⇒
Temporal.ZonedDateTime
| null
- .getSunset() ⇒
Temporal.ZonedDateTime
| null
- .getSeaLevelSunset() ⇒
Temporal.ZonedDateTime
| null
- .getEndCivilTwilight() ⇒
Temporal.ZonedDateTime
| null
- .getEndNauticalTwilight() ⇒
Temporal.ZonedDateTime
| null
- .getEndAstronomicalTwilight() ⇒
Temporal.ZonedDateTime
| null
- .getSunriseOffsetByDegrees(offsetZenith) ⇒
Temporal.ZonedDateTime
| null
- .getSunsetOffsetByDegrees(offsetZenith) ⇒
Temporal.ZonedDateTime
| null
- .getUTCSunrise0(zenith) ⇒
number
- .getUTCSeaLevelSunrise(zenith) ⇒
number
- .getUTCSunset0(zenith) ⇒
number
- .getUTCSeaLevelSunset(zenith) ⇒
number
- .getElevationAdjustment(elevation) ⇒
number
- .adjustZenith(zenith, elevation) ⇒
number
- .getUTCSunrise(date, geoLocation, zenith, adjustForElevation) ⇒
- .getUTCSunset(date, geoLocation, zenith, adjustForElevation) ⇒
- .getTemporalHour(startOfDay, endOfDay) ⇒
number
- .getSunTransit(startOfDay, endOfDay) ⇒
Temporal.ZonedDateTime
| null
- .getDateFromTime(time, isSunrise) ⇒
Temporal.ZonedDateTime
| null
- static
new NOAACalculator(geoLocation, date)
A constructor that takes in geolocation information as a
parameter.
Param | Type | Description |
---|
geoLocation | GeoLocation | The location information used for calculating astronomical sun times. |
date | Temporal.PlainDate | |
noaaCalculator.getSunrise() ⇒ Temporal.ZonedDateTime
| null
The getSunrise method Returns a Date
representing the
elevation adjusted sunrise time. The zenith used
for the calculation uses geometric zenith of 90° plus
getElevationAdjustment. This is adjusted
to add approximately 50/60 of a degree to account for 34 archminutes of refraction
and 16 archminutes for the sun's radius for a total of 90.83333°.
Kind: instance method of NOAACalculator
Returns: Temporal.ZonedDateTime
| null
- the Date
representing the exact sunrise time. If the calculation can't be computed such as
in the Arctic Circle where there is at least one day a year where the sun does not rise, and one where it
does not set, a null will be returned. See detailed explanation on top of the page.
See
- adjustZenith
- getSeaLevelSunrise()
- getUTCSunrise
noaaCalculator.getSeaLevelSunrise() ⇒ Temporal.ZonedDateTime
| null
A method that returns the sunrise without elevation
adjustment. Non-sunrise and sunset calculations such as dawn and dusk, depend on the amount of visible light,
something that is not affected by elevation. This method returns sunrise calculated at sea level. This forms the
base for dawn calculations that are calculated as a dip below the horizon before sunrise.
Kind: instance method of NOAACalculator
Returns: Temporal.ZonedDateTime
| null
- the Date
representing the exact sea-level sunrise time. If the calculation can't be computed
such as in the Arctic Circle where there is at least one day a year where the sun does not rise, and one
where it does not set, a null will be returned. See detailed explanation on top of the page.
See
- getSunrise
- getUTCSeaLevelSunrise
- getSeaLevelSunset()
noaaCalculator.getBeginCivilTwilight() ⇒ Temporal.ZonedDateTime
| null
A method that returns the beginning of civil twilight (dawn) using a zenith of 96°.
Kind: instance method of NOAACalculator
Returns: Temporal.ZonedDateTime
| null
- The Date
of the beginning of civil twilight using a zenith of 96°. If the calculation
can't be computed, null will be returned. See detailed explanation on top of the page.
See: CIVIL_ZENITH
noaaCalculator.getBeginNauticalTwilight() ⇒ Temporal.ZonedDateTime
| null
A method that returns the beginning of nautical twilight using a zenith of 102°.
Kind: instance method of NOAACalculator
Returns: Temporal.ZonedDateTime
| null
- The Date
of the beginning of nautical twilight using a zenith of 102°. If the
calculation can't be computed null will be returned. See detailed explanation on top of the page.
See: NAUTICAL_ZENITH
noaaCalculator.getBeginAstronomicalTwilight() ⇒ Temporal.ZonedDateTime
| null
A method that returns the beginning of astronomical twilight using a zenith of 108°.
Kind: instance method of NOAACalculator
Returns: Temporal.ZonedDateTime
| null
- The Date
of the beginning of astronomical twilight using a zenith of 108°. If the
calculation can't be computed, null will be returned. See detailed explanation on top of the page.
See: ASTRONOMICAL_ZENITH
noaaCalculator.getSunset() ⇒ Temporal.ZonedDateTime
| null
The getSunset method Returns a Date
representing the
elevation adjusted sunset time. The zenith used for
the calculation uses geometric zenith of 90° plus
getElevationAdjustment. This is adjusted
to add approximately 50/60 of a degree to account for 34 archminutes of refraction
and 16 archminutes for the sun's radius for a total of 90.83333°.
Note:
In certain cases the calculates sunset will occur before sunrise. This will typically happen when a timezone
other than the local timezone is used (calculating Los Angeles sunset using a GMT timezone for example). In this
case the sunset date will be incremented to the following date.
Kind: instance method of NOAACalculator
Returns: Temporal.ZonedDateTime
| null
- The Date
representing the exact sunset time. If the calculation can't be computed such as in
the Arctic Circle where there is at least one day a year where the sun does not rise, and one where it
does not set, a null will be returned. See detailed explanation on top of the page.
See
- adjustZenith
- getSeaLevelSunset()
- getUTCSunset
noaaCalculator.getSeaLevelSunset() ⇒ Temporal.ZonedDateTime
| null
A method that returns the sunset without elevation
adjustment. Non-sunrise and sunset calculations such as dawn and dusk, depend on the amount of visible light,
something that is not affected by elevation. This method returns sunset calculated at sea level. This forms the
base for dusk calculations that are calculated as a dip below the horizon after sunset.
Kind: instance method of NOAACalculator
Returns: Temporal.ZonedDateTime
| null
- The Date
representing the exact sea-level sunset time. If the calculation can't be computed
such as in the Arctic Circle where there is at least one day a year where the sun does not rise, and one
where it does not set, a null will be returned. See detailed explanation on top of the page.
See
- getSunset
- getUTCSeaLevelSunset
noaaCalculator.getEndCivilTwilight() ⇒ Temporal.ZonedDateTime
| null
A method that returns the end of civil twilight using a zenith of 96°.
Kind: instance method of NOAACalculator
Returns: Temporal.ZonedDateTime
| null
- The Date
of the end of civil twilight using a zenith of 96°. If
the calculation can't be computed, null will be returned. See detailed explanation on top of the page.
See: CIVIL_ZENITH
noaaCalculator.getEndNauticalTwilight() ⇒ Temporal.ZonedDateTime
| null
A method that returns the end of nautical twilight using a zenith of 102°.
Kind: instance method of NOAACalculator
Returns: Temporal.ZonedDateTime
| null
- The Date
of the end of nautical twilight using a zenith of 102°
. If the calculation can't be computed, null will be returned. See detailed explanation on top of the
page.
See: NAUTICAL_ZENITH
noaaCalculator.getEndAstronomicalTwilight() ⇒ Temporal.ZonedDateTime
| null
A method that returns the end of astronomical twilight using a zenith of 108°.
Kind: instance method of NOAACalculator
Returns: Temporal.ZonedDateTime
| null
- The Date
of the end of astronomical twilight using a zenith of 108°. If the calculation can't be computed, null will be returned. See detailed explanation on top
of the page.
See: ASTRONOMICAL_ZENITH
noaaCalculator.getSunriseOffsetByDegrees(offsetZenith) ⇒ Temporal.ZonedDateTime
| null
A utility method that returns the time of an offset by degrees below or above the horizon of
sunrise. Note that the degree offset is from the vertical, so for a calculation of 14°
before sunrise, an offset of 14 + GEOMETRIC_ZENITH = 104 would have to be passed as a parameter.
Kind: instance method of NOAACalculator
Returns: Temporal.ZonedDateTime
| null
- The Date
of the offset after (or before) getSunrise. If the calculation
can't be computed such as in the Arctic Circle where there is at least one day a year where the sun does
not rise, and one where it does not set, a null will be returned. See detailed explanation on top of the
page.
Param | Type | Description |
---|
offsetZenith | number | the degrees before getSunrise to use in the calculation. For time after sunrise use negative numbers. Note that the degree offset is from the vertical, so for a calculation of 14° before sunrise, an offset of 14 + GEOMETRIC_ZENITH = 104 would have to be passed as a parameter. |
noaaCalculator.getSunsetOffsetByDegrees(offsetZenith) ⇒ Temporal.ZonedDateTime
| null
A utility method that returns the time of an offset by degrees below or above the horizon of sunset. Note that the degree offset is from the vertical, so for a calculation of 14° after sunset, an
offset of 14 + GEOMETRIC_ZENITH = 104 would have to be passed as a parameter.
Kind: instance method of NOAACalculator
Returns: Temporal.ZonedDateTime
| null
- The Date
of the offset after (or before) getSunset. If the calculation can't
be computed such as in the Arctic Circle where there is at least one day a year where the sun does not
rise, and one where it does not set, a null will be returned. See detailed explanation on top of the
page.
Param | Type | Description |
---|
offsetZenith | number | the degrees after getSunset to use in the calculation. For time before sunset use negative numbers. Note that the degree offset is from the vertical, so for a calculation of 14° after sunset, an offset of 14 + GEOMETRIC_ZENITH = 104 would have to be passed as a parameter. |
noaaCalculator.getUTCSunrise0(zenith) ⇒ number
A method that returns the sunrise in UTC time without correction for time zone offset from GMT and without using
daylight savings time.
Kind: instance method of NOAACalculator
Returns: number
- The time in the format: 18.75 for 18:45:00 UTC/GMT. If the calculation can't be computed such as in the
Arctic Circle where there is at least one day a year where the sun does not rise, and one where it does
not set, NaN
will be returned. See detailed explanation on top of the page.
Param | Type | Description |
---|
zenith | number | the degrees below the horizon. For time after sunrise use negative numbers. |
noaaCalculator.getUTCSeaLevelSunrise(zenith) ⇒ number
A method that returns the sunrise in UTC time without correction for time zone offset from GMT and without using
daylight savings time. Non-sunrise and sunset calculations such as dawn and dusk, depend on the amount of visible
light, something that is not affected by elevation. This method returns UTC sunrise calculated at sea level. This
forms the base for dawn calculations that are calculated as a dip below the horizon before sunrise.
Kind: instance method of NOAACalculator
Returns: number
- The time in the format: 18.75 for 18:45:00 UTC/GMT. If the calculation can't be computed such as in the
Arctic Circle where there is at least one day a year where the sun does not rise, and one where it does
not set, NaN
will be returned. See detailed explanation on top of the page.
See
- getUTCSunrise
- getUTCSeaLevelSunset
Param | Type | Description |
---|
zenith | number | the degrees below the horizon. For time after sunrise use negative numbers. |
noaaCalculator.getUTCSunset0(zenith) ⇒ number
A method that returns the sunset in UTC time without correction for time zone offset from GMT and without using
daylight savings time.
Kind: instance method of NOAACalculator
Returns: number
- The time in the format: 18.75 for 18:45:00 UTC/GMT. If the calculation can't be computed such as in the
Arctic Circle where there is at least one day a year where the sun does not rise, and one where it does
not set, NaN
will be returned. See detailed explanation on top of the page.
See: getUTCSeaLevelSunset
Param | Type | Description |
---|
zenith | number | the degrees below the horizon. For time after sunset use negative numbers. |
noaaCalculator.getUTCSeaLevelSunset(zenith) ⇒ number
A method that returns the sunset in UTC time without correction for elevation, time zone offset from GMT and
without using daylight savings time. Non-sunrise and sunset calculations such as dawn and dusk, depend on the
amount of visible light, something that is not affected by elevation. This method returns UTC sunset calculated
at sea level. This forms the base for dusk calculations that are calculated as a dip below the horizon after
sunset.
Kind: instance method of NOAACalculator
Returns: number
- The time in the format: 18.75 for 18:45:00 UTC/GMT. If the calculation can't be computed such as in the
Arctic Circle where there is at least one day a year where the sun does not rise, and one where it does
not set, NaN
will be returned. See detailed explanation on top of the page.
See
- getUTCSunset
- getUTCSeaLevelSunrise
Param | Type | Description |
---|
zenith | number | the degrees below the horizon. For time before sunset use negative numbers. |
noaaCalculator.getElevationAdjustment(elevation) ⇒ number
Method to return the adjustment to the zenith required to account for the elevation. Since a person at a higher
elevation can see farther below the horizon, the calculation for sunrise / sunset is calculated below the horizon
used at sea level. This is only used for sunrise and sunset and not times before or after it such as
nautical twilight since those
calculations are based on the level of available light at the given dip below the horizon, something that is not
affected by elevation, the adjustment should only made if the zenith == 90° adjusted
for refraction and solar radius. The algorithm used is
elevationAdjustment = Math.toDegrees(Math.acos(earthRadiusInMeters / (earthRadiusInMeters + elevationMeters)));
The source of this algorithm is Calendrical Calculations by Edward M.
Reingold and Nachum Dershowitz. An alternate algorithm that produces an almost identical (but not accurate)
result found in Ma'aglay Tzedek by Moishe Kosower and other sources is:
elevationAdjustment = 0.0347 * Math.sqrt(elevationMeters);
Kind: instance method of NOAACalculator
Returns: number
- the adjusted zenith
Param | Type | Description |
---|
elevation | number | elevation in Meters. |
noaaCalculator.adjustZenith(zenith, elevation) ⇒ number
Adjusts the zenith of astronomical sunrise and sunset to account for solar refraction, solar radius and
elevation. The value for Sun's zenith and true rise/set Zenith (used in this class and subclasses) is the angle
that the center of the Sun makes to a line perpendicular to the Earth's surface. If the Sun were a point and the
Earth were without an atmosphere, true sunset and sunrise would correspond to a 90° zenith. Because the Sun
is not a point, and because the atmosphere refracts light, this 90° zenith does not, in fact, correspond to
true sunset or sunrise, instead the centre of the Sun's disk must lie just below the horizon for the upper edge
to be obscured. This means that a zenith of just above 90° must be used. The Sun subtends an angle of 16
minutes of arc, and atmospheric refraction
accounts for 34 minutes or so, giving a total
of 50 arcminutes. The total value for ZENITH is 90+(5/6) or 90.8333333° for true sunrise/sunset. Since a
person at an elevation can see blow the horizon of a person at sea level, this will also adjust the zenith to
account for elevation if available. Note that this will only adjust the value if the zenith is exactly 90 degrees.
For values below and above this no correction is done. As an example, astronomical twilight is when the sun is
18° below the horizon or 108°
below the zenith. This is traditionally calculated with none of the above mentioned adjustments. The same goes
for various tzais and alos times such as the
16.1° dip used in
ComplexZmanimCalendar#getAlos16Point1Degrees.
Kind: instance method of NOAACalculator
Returns: number
- The zenith adjusted to include the sun's radius, refracton
and elevation adjustment. This will only be adjusted for
sunrise and sunset (if the zenith == 90°)
See: getElevationAdjustment
Param | Type | Description |
---|
zenith | number | the azimuth below the vertical zenith of 90°. For sunset typically the zenith used for the calculation uses geometric zenith of 90° and adjusts this slightly to account for solar refraction and the sun's radius. Another example would be getEndNauticalTwilight that passes NAUTICAL_ZENITH to this method. |
elevation | number | elevation in Meters. |
noaaCalculator.getUTCSunrise(date, geoLocation, zenith, adjustForElevation) ⇒
A method that calculates UTC sunrise as well as any time based on an angle above or below sunrise.
Kind: instance method of NOAACalculator
Returns: The UTC time of sunrise in 24 hour format. 5:45:00 AM will return 5.75.0. If an error was encountered in
the calculation (expected behavior for some locations such as near the poles,
NaN
will be returned.
Param | Description |
---|
date | Used to calculate day of year. |
geoLocation | The location information used for astronomical calculating sun times. |
zenith | the azimuth below the vertical zenith of 90 degrees. for sunrise typically the zenith used for the calculation uses geometric zenith of 90° and adjusts this slightly to account for solar refraction and the sun's radius. Another example would be getBeginNauticalTwilight that passes NAUTICAL_ZENITH to this method. |
adjustForElevation | Should the time be adjusted for elevation |
noaaCalculator.getUTCSunset(date, geoLocation, zenith, adjustForElevation) ⇒
A method that calculates UTC sunset as well as any time based on an angle above or below sunset.
Kind: instance method of NOAACalculator
Returns: The UTC time of sunset in 24 hour format. 5:45:00 AM will return 5.75.0. If an error was encountered in
the calculation (expected behavior for some locations such as near the poles,
NaN
will be returned.
Param | Description |
---|
date | Used to calculate day of year. |
geoLocation | The location information used for astronomical calculating sun times. |
zenith | the azimuth below the vertical zenith of 90°. For sunset typically the zenith used for the calculation uses geometric zenith of 90° and adjusts this slightly to account for solar refraction and the sun's radius. Another example would be getEndNauticalTwilight that passes NAUTICAL_ZENITH to this method. |
adjustForElevation | Should the time be adjusted for elevation |
noaaCalculator.getTemporalHour(startOfDay, endOfDay) ⇒ number
A utility method that will allow the calculation of a temporal (solar) hour based on the sunrise and sunset
passed as parameters to this method. An example of the use of this method would be the calculation of a
non-elevation adjusted temporal hour by passing in sea level sunrise and
sea level sunset as parameters.
Kind: instance method of NOAACalculator
Returns: number
- the long
millisecond length of the temporal hour. If the calculation can't be computed a
NaN
will be returned. See detailed explanation on top of the page.
See: getTemporalHour()
Param | Type | Description |
---|
startOfDay | Temporal.ZonedDateTime | null | The start of the day. |
endOfDay | Temporal.ZonedDateTime | null | The end of the day. |
noaaCalculator.getSunTransit(startOfDay, endOfDay) ⇒ Temporal.ZonedDateTime
| null
A method that returns sundial or solar noon. It occurs when the Sun is transiting the celestial meridian. In this class it is
calculated as halfway between the sunrise and sunset passed to this method. This time can be slightly off the
real transit time due to changes in declination (the lengthening or shortening day).
Kind: instance method of NOAACalculator
Returns: Temporal.ZonedDateTime
| null
- The Date
representing Sun's transit. If the calculation can't be computed such as in the
Arctic Circle where there is at least one day a year where the sun does not rise, and one where it does
not set, null will be returned. See detailed explanation on top of the page.
Param | Type | Description |
---|
startOfDay | Temporal.ZonedDateTime | null | the start of day for calculating the sun's transit. This can be sea level sunrise, visual sunrise (or any arbitrary start of day) passed to this method. |
endOfDay | Temporal.ZonedDateTime | null | the end of day for calculating the sun's transit. This can be sea level sunset, visual sunset (or any arbitrary end of day) passed to this method. |
noaaCalculator.getDateFromTime(time, isSunrise) ⇒ Temporal.ZonedDateTime
| null
A method that returns a Date
from the time passed in as a parameter.
Kind: instance method of NOAACalculator
Returns: Temporal.ZonedDateTime
| null
- The Date.
Access: protected
Param | Type | Description |
---|
time | number | The time to be set as the time for the Date . The time expected is in the format: 18.75 for 6:45:00 PM. |
isSunrise | boolean | true if the time is sunrise, and false if it is sunset |
NOAACalculator.CIVIL_ZENITH
Sun's zenith at civil twilight (96°).
Kind: static property of NOAACalculator
NOAACalculator.NAUTICAL_ZENITH
Sun's zenith at nautical twilight (102°).
Kind: static property of NOAACalculator
NOAACalculator.ASTRONOMICAL_ZENITH
Sun's zenith at astronomical twilight (108°).
Kind: static property of NOAACalculator
NOAACalculator.getTimeOffset(time, offset) ⇒ Temporal.ZonedDateTime
| null
A utility method that returns a date offset by the offset time passed in. Please note that the level of light
during twilight is not affected by elevation, so if this is being used to calculate an offset before sunrise or
after sunset with the intent of getting a rough "level of light" calculation, the sunrise or sunset time passed
to this method should be sea level sunrise and sunset.
Kind: static method of NOAACalculator
Returns: Temporal.ZonedDateTime
| null
- the Date
with the offset in milliseconds added to it
Param | Type | Description |
---|
time | Temporal.ZonedDateTime | null | the start time |
offset | number | the offset in milliseconds to add to the time. |
NOAACalculator.getSolarElevation(date, lat, lon) ⇒ number
Return the Solar Elevation for the
horizontal coordinate system at the given location at the given time. Can be negative if the sun is below the
horizon. Not corrected for altitude.
Kind: static method of NOAACalculator
Returns: number
- solar elevation in degrees - horizon is 0 degrees, civil twilight is -6 degrees
Param | Type | Description |
---|
date | Temporal.ZonedDateTime | time of calculation |
lat | number | latitude of location for calculation |
lon | number | longitude of location for calculation |
NOAACalculator.getSolarAzimuth(date, latitude, lon) ⇒ number
Return the Solar Azimuth for the
horizontal coordinate system at the given location at the given time. Not corrected for altitude. True south is 0
degrees.
Kind: static method of NOAACalculator
Param | Type | Description |
---|
date | Temporal.ZonedDateTime | time of calculation |
latitude | number | latitude of location for calculation |
lon | number | longitude of location for calculation |
Location
Class representing Location
Kind: global class
new Location(latitude, longitude, il, tzid, [cityName], [countryCode], [geoid], [elevation])
Initialize a Location instance
Param | Type | Description |
---|
latitude | number | Latitude as a decimal, valid range -90 thru +90 (e.g. 41.85003) |
longitude | number | Longitude as a decimal, valid range -180 thru +180 (e.g. -87.65005) |
il | boolean | in Israel (true) or Diaspora (false) |
tzid | string | Olson timezone ID, e.g. "America/Chicago" |
[cityName] | string | optional descriptive city name |
[countryCode] | string | ISO 3166 alpha-2 country code (e.g. "FR") |
[geoid] | string | number | optional string or numeric geographic ID |
[elevation] | number | in meters (default 0 ) |
location.getIsrael() ⇒ boolean
Kind: instance method of Location
location.getName() ⇒ string
| null
Kind: instance method of Location
location.getShortName() ⇒ string
| null
Returns the location name, up to the first comma
Kind: instance method of Location
location.getCountryCode() ⇒ string
| undefined
Kind: instance method of Location
location.getTzid() ⇒ string
Kind: instance method of Location
location.getTimeFormatter() ⇒ Intl.DateTimeFormat
Gets a 24-hour time formatter (e.g. 07:41 or 20:03) for this location
Kind: instance method of Location
location.getGeoId() ⇒ string
| number
| undefined
Kind: instance method of Location
location.toString() ⇒ string
Kind: instance method of Location
Location.lookup(name) ⇒ Location
| undefined
Creates a location object from one of 60 "classic" Hebcal city names.
The following city names are supported:
'Ashdod', 'Atlanta', 'Austin', 'Baghdad', 'Beer Sheva',
'Berlin', 'Baltimore', 'Bogota', 'Boston', 'Budapest',
'Buenos Aires', 'Buffalo', 'Chicago', 'Cincinnati', 'Cleveland',
'Dallas', 'Denver', 'Detroit', 'Eilat', 'Gibraltar', 'Haifa',
'Hawaii', 'Helsinki', 'Houston', 'Jerusalem', 'Johannesburg',
'Kiev', 'La Paz', 'Livingston', 'Las Vegas', 'London', 'Los Angeles',
'Marseilles', 'Miami', 'Minneapolis', 'Melbourne', 'Mexico City',
'Montreal', 'Moscow', 'New York', 'Omaha', 'Ottawa', 'Panama City',
'Paris', 'Pawtucket', 'Petach Tikvah', 'Philadelphia', 'Phoenix',
'Pittsburgh', 'Providence', 'Portland', 'Saint Louis', 'Saint Petersburg',
'San Diego', 'San Francisco', 'Sao Paulo', 'Seattle', 'Sydney',
'Tel Aviv', 'Tiberias', 'Toronto', 'Vancouver', 'White Plains',
'Washington DC', 'Worcester'
Kind: static method of Location
Location.legacyTzToTzid(tz, dst) ⇒ string
| undefined
Converts legacy Hebcal timezone to a standard Olson tzid.
Kind: static method of Location
Param | Type | Description |
---|
tz | number | integer, GMT offset in hours |
dst | string | 'none', 'eu', 'usa', or 'israel' |
Location.getUsaTzid(state, tz, dst) ⇒ string
Converts timezone info from Zip-Codes.com to a standard Olson tzid.
Kind: static method of Location
Param | Type | Description |
---|
state | string | two-letter all-caps US state abbreviation like 'CA' |
tz | number | positive number, 5=America/New_York, 8=America/Los_Angeles |
dst | string | single char 'Y' or 'N' |
Example
Location.getUsaTzid('AZ', 7, 'Y')
Location.addLocation(cityName, location) ⇒ boolean
Adds a location name for Location.lookup()
only if the name isn't
already being used. Returns false
if the name is already taken
and true
if successfully added.
Kind: static method of Location
Zmanim
Calculate halachic times (zmanim / זְמַנִּים) for a given day and location.
Calculations are available for tzeit / tzais (nightfall),
shkiah (sunset) and more.
Zmanim are estimated using an algorithm published by the US National Oceanic
and Atmospheric Administration. The NOAA solar calculator is based on equations
from Astronomical Algorithms by Jean Meeus.
The sunrise and sunset results are theoretically accurate to within a minute for
locations between +/- 72° latitude, and within 10 minutes outside of those latitudes.
However, due to variations in atmospheric composition, temperature, pressure and
conditions, observed values may vary from calculations.
https://gml.noaa.gov/grad/solcalc/calcdetails.html
Kind: global class
new Zmanim(gloc, date, useElevation)
Initialize a Zmanim instance.
Param | Type | Description |
---|
gloc | GeoLocation | GeoLocation including latitude, longitude, and timezone |
date | Date | HDate | Regular or Hebrew Date. If date is a regular Date , hours, minutes, seconds and milliseconds are ignored. |
useElevation | boolean | use elevation for calculations (default false ). If true , use elevation to affect the calculation of all sunrise/sunset based zmanim. Note: there are some zmanim such as degree-based zmanim that are driven by the amount of light in the sky and are not impacted by elevation. These zmanim intentionally do not support elevation adjustment. |
Example
const {GeoLocation, Zmanim} = require('@hebcal/core');
const latitude = 41.822232;
const longitude = -71.448292;
const tzid = 'America/New_York';
const friday = new Date(2023, 8, 8);
const gloc = new GeoLocation(null, latitude, longitude, 0, tzid);
const zmanim = new Zmanim(gloc, friday, false);
const candleLighting = zmanim.sunsetOffset(-18, true);
const timeStr = Zmanim.formatISOWithTimeZone(tzid, candleLighting);
zmanim.getUseElevation() ⇒ boolean
Returns true
if elevation adjustment is enabled
for zmanim support elevation adjustment
Kind: instance method of Zmanim
zmanim.setUseElevation(useElevation)
Enables or disables elevation adjustment for zmanim support elevation adjustment
Kind: instance method of Zmanim
Param | Type |
---|
useElevation | boolean |
zmanim.timeAtAngle(angle, rising) ⇒ Date
Convenience function to get the time when sun is above or below the horizon
for a certain angle (in degrees).
This function does not support elevation adjustment.
Kind: instance method of Zmanim
Param | Type |
---|
angle | number |
rising | boolean |
zmanim.sunrise() ⇒ Date
Upper edge of the Sun appears over the eastern horizon in the morning (0.833° above horizon)
If elevation is enabled, this function will include elevation in the calculation.
Kind: instance method of Zmanim
zmanim.seaLevelSunrise() ⇒ Date
Upper edge of the Sun appears over the eastern horizon in the morning (0.833° above horizon).
This function does not support elevation adjustment.
Kind: instance method of Zmanim
zmanim.sunset() ⇒ Date
When the upper edge of the Sun disappears below the horizon (0.833° below horizon).
If elevation is enabled, this function will include elevation in the calculation.
Kind: instance method of Zmanim
zmanim.seaLevelSunset() ⇒ Date
When the upper edge of the Sun disappears below the horizon (0.833° below horizon).
This function does not support elevation adjustment.
Kind: instance method of Zmanim
zmanim.dawn() ⇒ Date
Civil dawn; Sun is 6° below the horizon in the morning.
Because degree-based functions estimate the amount of light in the sky,
the result is not impacted by elevation.
Kind: instance method of Zmanim
zmanim.dusk() ⇒ Date
Civil dusk; Sun is 6° below the horizon in the evening.
Because degree-based functions estimate the amount of light in the sky,
the result is not impacted by elevation.
Kind: instance method of Zmanim
zmanim.gregEve() ⇒ Date
Returns sunset for the previous day.
If elevation is enabled, this function will include elevation in the calculation.
Kind: instance method of Zmanim
zmanim.chatzot() ⇒ Date
Midday – Chatzot; Sunrise plus 6 halachic hours
Kind: instance method of Zmanim
zmanim.chatzotNight() ⇒ Date
Midnight – Chatzot; Sunset plus 6 halachic hours.
If elevation is enabled, this function will include elevation in the calculation.
Kind: instance method of Zmanim
zmanim.alotHaShachar() ⇒ Date
Dawn – Alot haShachar; Sun is 16.1° below the horizon in the morning.
Because degree-based functions estimate the amount of light in the sky,
the result is not impacted by elevation.
Kind: instance method of Zmanim
zmanim.misheyakir() ⇒ Date
Earliest talis & tefillin – Misheyakir; Sun is 11.5° below the horizon in the morning.
Because degree-based functions estimate the amount of light in the sky,
the result is not impacted by elevation.
Kind: instance method of Zmanim
zmanim.misheyakirMachmir() ⇒ Date
Earliest talis & tefillin – Misheyakir Machmir; Sun is 10.2° below the horizon in the morning.
Because degree-based functions estimate the amount of light in the sky,
the result is not impacted by elevation.
Kind: instance method of Zmanim
zmanim.sofZmanShma() ⇒ Date
Latest Shema (Gra); Sunrise plus 3 halachic hours, according to the Gra.
If elevation is enabled, this function will include elevation in the calculation.
Kind: instance method of Zmanim
zmanim.sofZmanTfilla() ⇒ Date
Latest Shacharit (Gra); Sunrise plus 4 halachic hours, according to the Gra.
This method returns the latest zman tfila (time to recite shema in the morning)
that is 4 shaos zmaniyos (solar hours) after sunrise or sea level sunrise
(depending on the useElevation
setting), according
to the GRA.
If elevation is enabled, this function will include elevation in the calculation.
Kind: instance method of Zmanim
zmanim.sofZmanShmaMGA() ⇒ Date
Latest Shema (MGA); Sunrise plus 3 halachic hours, according to Magen Avraham.
Based on the opinion of the MGA that the day is calculated from
dawn being fixed 72 minutes before sea-level sunrise, and nightfall is fixed
72 minutes after sea-level sunset.
Kind: instance method of Zmanim
zmanim.sofZmanShmaMGA16Point1() ⇒ Date
Latest Shema (MGA); Sunrise plus 3 halachic hours, according to Magen Avraham.
Based on the opinion of the MGA that the day is calculated from
dawn to nightfall with both being 16.1° below the horizon.
Kind: instance method of Zmanim
zmanim.sofZmanShmaMGA19Point8() ⇒ Date
Latest Shema (MGA); Sunrise plus 3 halachic hours, according to Magen Avraham.
Based on the opinion of the MGA that the day is calculated from
dawn to nightfall with both being 19.8° below the horizon.
This calculation is based on the position of the sun 90 minutes after sunset in Jerusalem
around the equinox / equilux which calculates to 19.8° below geometric zenith.
https://kosherjava.com/2022/01/12/equinox-vs-equilux-zmanim-calculations/
Kind: instance method of Zmanim
zmanim.sofZmanTfillaMGA() ⇒ Date
Latest Shacharit (MGA); Sunrise plus 4 halachic hours, according to Magen Avraham
Kind: instance method of Zmanim
zmanim.sofZmanTfillaMGA16Point1() ⇒ Date
Latest Shacharit (MGA); Sunrise plus 4 halachic hours, according to Magen Avraham.
Based on the opinion of the MGA that the day is calculated from
dawn to nightfall with both being 16.1° below the horizon.
Kind: instance method of Zmanim
zmanim.sofZmanTfillaMGA19Point8() ⇒ Date
Latest Shacharit (MGA); Sunrise plus 4 halachic hours, according to Magen Avraham.
Based on the opinion of the MGA that the day is calculated from
dawn to nightfall with both being 19.8° below the horizon.
This calculation is based on the position of the sun 90 minutes after sunset in Jerusalem
around the equinox / equilux which calculates to 19.8° below geometric zenith.
https://kosherjava.com/2022/01/12/equinox-vs-equilux-zmanim-calculations/
Kind: instance method of Zmanim
zmanim.minchaGedola() ⇒ Date
Earliest Mincha – Mincha Gedola (GRA); Sunrise plus 6.5 halachic hours.
If elevation is enabled, this function will include elevation in the calculation.
This method returns the latest mincha gedola, the earliest time one can pray mincha
that is 6.5 shaos zmaniyos (solar hours) after sunrise or sea level sunrise
(depending on the useElevation
setting), according
to the GRA.
The Ramba"m is of the opinion that it is better to delay mincha until
mincha ketana while the Ra"sh, Tur, GRA and others are of the
opinion that mincha can be prayed lechatchila starting at mincha gedola.
Kind: instance method of Zmanim
zmanim.minchaGedolaMGA() ⇒ Date
Earliest Mincha – Mincha Gedola (MGA); Sunrise plus 6.5 halachic hours.
If elevation is enabled, this function will include elevation in the calculation.
This method returns the time of mincha gedola according to the Magen Avraham
with the day starting 72 minutes before sunrise and ending 72 minutes after sunset.
This is the earliest time to pray mincha.
Kind: instance method of Zmanim
zmanim.minchaKetana() ⇒ Date
Preferable earliest time to recite Minchah – Mincha Ketana; Sunrise plus 9.5 halachic hours.
If elevation is enabled, this function will include elevation in the calculation.
This method returns mincha ketana, the preferred earliest time to pray mincha in the
opinion of the Rambam and others,
that is 9.5 shaos zmaniyos (solar hours) after sunrise or sea level sunrise
(depending on the useElevation
setting), according
to the GRA.
Kind: instance method of Zmanim
zmanim.minchaKetanaMGA() ⇒ Date
This method returns the time of mincha ketana according to the Magen Avraham
with the day starting 72 minutes before sunrise and ending 72 minutes after sunset.
This is the preferred earliest time to pray mincha according to the opinion of
the Rambam and others.
If elevation is enabled, this function will include elevation in the calculation.
Kind: instance method of Zmanim
zmanim.plagHaMincha() ⇒ Date
Plag haMincha; Sunrise plus 10.75 halachic hours.
If elevation is enabled, this function will include elevation in the calculation.
Kind: instance method of Zmanim
zmanim.tzeit([angle]) ⇒ Date
Kind: instance method of Zmanim
Param | Type | Default | Description |
---|
[angle] | number | 8.5 | optional time for solar depression. Default is 8.5 degrees for 3 small stars, use 7.083 degrees for 3 medium-sized stars. Because degree-based functions estimate the amount of light in the sky, the result is not impacted by elevation. |
zmanim.neitzHaChama() ⇒ Date
Alias for sunrise
Kind: instance method of Zmanim
zmanim.shkiah() ⇒ Date
Alias for sunset
Kind: instance method of Zmanim
zmanim.beinHaShmashos() ⇒ Date
Rabbeinu Tam holds that bein hashmashos is a specific time
between sunset and tzeis hakochavim.
One opinion on how to calculate this time is that
it is 13.5 minutes before tzies 7.083.
Because degree-based functions estimate the amount of light in the sky,
the result is not impacted by elevation.
Kind: instance method of Zmanim
zmanim.sunriseOffset(offset, roundMinute, forceSeaLevel) ⇒ Date
Returns sunrise + offset
minutes (either positive or negative).
If elevation is enabled, this function will include elevation in the calculation
unless forceSeaLevel
is true
.
Kind: instance method of Zmanim
Param | Type | Default | Description |
---|
offset | number | | minutes |
roundMinute | boolean | true | round time to nearest minute (default true) |
forceSeaLevel | boolean | false | use sea-level sunrise (default false) |
zmanim.sunsetOffset(offset, roundMinute, forceSeaLevel) ⇒ Date
Returns sunset + offset
minutes (either positive or negative).
If elevation is enabled, this function will include elevation in the calculation
unless forceSeaLevel
is true
.
Kind: instance method of Zmanim
Param | Type | Default | Description |
---|
offset | number | | minutes |
roundMinute | boolean | true | round time to nearest minute (default true) |
forceSeaLevel | boolean | false | use sea-level sunset (default false) |
Zmanim.formatTime(dt, timeFormat) ⇒ string
Uses timeFormat to return a date like '20:34'
Kind: static method of Zmanim
Param | Type |
---|
dt | Date |
timeFormat | Intl.DateTimeFormat |
Zmanim.roundTime(dt) ⇒ Date
Discards seconds, rounding to nearest minute.
Kind: static method of Zmanim
Zmanim.timeZoneOffset(tzid, date) ⇒ string
Get offset string (like "+05:00" or "-08:00") from tzid (like "Europe/Moscow")
Kind: static method of Zmanim
Param | Type |
---|
tzid | string |
date | Date |
Zmanim.formatISOWithTimeZone(tzid, date) ⇒ string
Returns a string like "2022-04-01T13:06:00-11:00"
Kind: static method of Zmanim
Param | Type |
---|
tzid | string |
date | Date |
TimedEvent
An event that has an eventTime
and eventTimeStr
Kind: global class
new TimedEvent(desc)
Param | Type | Description |
---|
desc | string | Description (not translated) |
timedEvent.render([locale]) ⇒ string
Kind: instance method of TimedEvent
Param | Type | Description |
---|
[locale] | string | Optional locale name (defaults to active locale). |
timedEvent.renderBrief([locale]) ⇒ string
Returns translation of "Candle lighting" without the time.
Kind: instance method of TimedEvent
Param | Type | Description |
---|
[locale] | string | Optional locale name (defaults to active locale). |
timedEvent.getCategories() ⇒ Array.<string>
Kind: instance method of TimedEvent
CandleLightingEvent
Candle lighting before Shabbat or holiday
Kind: global class
candleLightingEvent.getEmoji() ⇒ string
Kind: instance method of CandleLightingEvent
HavdalahEvent
Havdalah after Shabbat or holiday
Kind: global class
havdalahEvent.render([locale]) ⇒ string
Kind: instance method of HavdalahEvent
Param | Type | Description |
---|
[locale] | string | Optional locale name (defaults to active locale). |
havdalahEvent.renderBrief([locale]) ⇒ string
Returns translation of "Havdalah" without the time.
Kind: instance method of HavdalahEvent
Param | Type | Description |
---|
[locale] | string | Optional locale name (defaults to active locale). |
havdalahEvent.getEmoji() ⇒ string
Kind: instance method of HavdalahEvent
Molad
Represents a molad, the moment when the new moon is "born"
Kind: global class
new Molad(year, month)
Calculates the molad for a Hebrew month
Param | Type |
---|
year | number |
month | number |
molad.getYear() ⇒ number
Kind: instance method of Molad
molad.getMonth() ⇒ number
Kind: instance method of Molad
molad.getMonthName() ⇒ string
Kind: instance method of Molad
molad.getDow() ⇒ number
Kind: instance method of Molad
Returns: number
- Day of Week (0=Sunday, 6=Saturday)
molad.getHour() ⇒ number
Kind: instance method of Molad
Returns: number
- hour of day (0-23)
molad.getMinutes() ⇒ number
Kind: instance method of Molad
Returns: number
- minutes past hour (0-59)
molad.getChalakim() ⇒ number
Kind: instance method of Molad
Returns: number
- parts of a minute (0-17)
molad.render([locale], options) ⇒ string
Kind: instance method of Molad
Param | Type | Description |
---|
[locale] | string | Optional locale name (defaults to active locale) |
options | CalOptions | |
MoladEvent
Represents a Molad announcement on Shabbat Mevarchim
Kind: global class
new MoladEvent(date, hyear, hmonth, options)
Param | Type | Description |
---|
date | HDate | Hebrew date event occurs |
hyear | number | molad year |
hmonth | number | molad month |
options | CalOptions | |
moladEvent.render([locale]) ⇒ string
Kind: instance method of MoladEvent
Param | Type | Description |
---|
[locale] | string | Optional locale name (defaults to active locale). |
OmerEvent
Represents a day 1-49 of counting the Omer from Pesach to Shavuot
Kind: global class
new OmerEvent(date, omerDay)
Param | Type |
---|
date | HDate |
omerDay | number |
omerEvent.sefira(lang) ⇒ string
Kind: instance method of OmerEvent
Param | Type | Default |
---|
lang | string | "en" |
omerEvent.render([locale]) ⇒ string
Kind: instance method of OmerEvent
Todo
Param | Type | Description |
---|
[locale] | string | Optional locale name (defaults to active locale). |
omerEvent.renderBrief([locale]) ⇒ string
Returns translation of "Omer day 22" without ordinal numbers.
Kind: instance method of OmerEvent
Param | Type | Description |
---|
[locale] | string | Optional locale name (defaults to active locale). |
omerEvent.getEmoji() ⇒ string
Kind: instance method of OmerEvent
omerEvent.getWeeks() ⇒ number
Kind: instance method of OmerEvent
omerEvent.getDaysWithinWeeks() ⇒ number
Kind: instance method of OmerEvent
omerEvent.getTodayIs(locale) ⇒ string
Kind: instance method of OmerEvent
omerEvent.url() ⇒ string
Kind: instance method of OmerEvent
Sedra
Represents Parashah HaShavua for an entire Hebrew year
Kind: global class
new Sedra(hyear, il)
Caculates the Parashah HaShavua for an entire Hebrew year
Param | Type | Description |
---|
hyear | number | Hebrew year (e.g. 5749) |
il | boolean | Use Israel sedra schedule (false for Diaspora) |
sedra.get(hd) ⇒ Array.<string>
Returns the parsha (or parshiyot) read on Hebrew date
Kind: instance method of Sedra
Param | Type | Description |
---|
hd | HDate | number | Hebrew date or R.D. days |
sedra.getString(hd, [locale]) ⇒ string
Looks up parsha for the date, then returns a translated or transliterated string
Kind: instance method of Sedra
Param | Type | Description |
---|
hd | HDate | number | Hebrew date or R.D. days |
[locale] | string | Optional locale name (i.e: 'he' , 'fr' ). Defaults to active locale |
sedra.isParsha(hd) ⇒ boolean
Checks to see if this day would be a regular parasha HaShavua
Torah reading or special holiday reading
Kind: instance method of Sedra
Param | Type | Description |
---|
hd | HDate | number | Hebrew date or R.D. days |
sedra.find(parsha) ⇒ HDate
| null
Returns the date that a parsha occurs
or null
if the parsha doesn't occur this year
Kind: instance method of Sedra
Param | Type |
---|
parsha | number | string | Array.<string> |
sedra.getSedraArray() ⇒ Array.<NumberOrString>
Returns the underlying annual sedra schedule.
Used by @hebcal/triennial
Kind: instance method of Sedra
sedra.getFirstSaturday() ⇒ number
R.D. date of the first Saturday on or after Rosh Hashana
Kind: instance method of Sedra
sedra.getYear() ⇒ number
Kind: instance method of Sedra
sedra.lookup(hd) ⇒ SedraResult
Returns an object describing the parsha on the first Saturday on or after hd
Kind: instance method of Sedra
Param | Type | Description |
---|
hd | HDate | number | Hebrew date or R.D. days |
ParshaEvent
Represents one of 54 weekly Torah portions, always on a Saturday
Kind: global class
new ParshaEvent(date, parsha, [il], [num])
Param | Type | Default | Description |
---|
date | HDate | | |
parsha | Array.<string> | | untranslated name of single or double parsha, such as ['Bereshit'] or ['Achrei Mot', 'Kedoshim'] |
[il] | boolean | false | |
[num] | number | Array.<number> | | |
parshaEvent.render([locale]) ⇒ string
Kind: instance method of ParshaEvent
Param | Type | Description |
---|
[locale] | string | Optional locale name (i.e: 'he' , 'fr' ). Defaults to active locale. |
parshaEvent.basename() ⇒ string
Kind: instance method of ParshaEvent
parshaEvent.url() ⇒ string
| undefined
Kind: instance method of ParshaEvent
parshaEvent.urlDateSuffix() ⇒ string
Kind: instance method of ParshaEvent
HolidayEvent
Represents a built-in holiday like Pesach, Purim or Tu BiShvat
Kind: global class
holidayEvent.basename() ⇒ string
Kind: instance method of HolidayEvent
holidayEvent.url() ⇒ string
| undefined
Kind: instance method of HolidayEvent
holidayEvent.urlDateSuffix() ⇒ string
Kind: instance method of HolidayEvent
holidayEvent.getEmoji() ⇒ string
Kind: instance method of HolidayEvent
holidayEvent.getCategories() ⇒ Array.<string>
Kind: instance method of HolidayEvent
holidayEvent.render([locale]) ⇒ string
Returns (translated) description of this event
Kind: instance method of HolidayEvent
Param | Type | Description |
---|
[locale] | string | Optional locale name (defaults to active locale). |
holidayEvent.renderBrief([locale]) ⇒ string
Returns a brief (translated) description of this event.
For most events, this is the same as render(). For some events, it procudes
a shorter text (e.g. without a time or added description).
Kind: instance method of HolidayEvent
Param | Type | Description |
---|
[locale] | string | Optional locale name (defaults to active locale). |
holidayEvent.clone() ⇒ Event
Makes a clone of this Event object
Kind: instance method of HolidayEvent
AsaraBTevetEvent
Because Asara B'Tevet often occurs twice in the same Gregorian year,
we subclass HolidayEvent to override the url()
method.
Kind: global class
asaraBTevetEvent.urlDateSuffix() ⇒ string
Kind: instance method of AsaraBTevetEvent
RoshChodeshEvent
Represents Rosh Chodesh, the beginning of a new month
Kind: global class
new RoshChodeshEvent(date, monthName)
Constructs Rosh Chodesh event
Param | Type | Description |
---|
date | HDate | Hebrew date event occurs |
monthName | string | Hebrew month name (not translated) |
roshChodeshEvent.render([locale]) ⇒ string
Returns (translated) description of this event
Kind: instance method of RoshChodeshEvent
Param | Type | Description |
---|
[locale] | string | Optional locale name (defaults to active locale). |
roshChodeshEvent.basename() ⇒ string
Kind: instance method of RoshChodeshEvent
roshChodeshEvent.getEmoji() ⇒ string
Kind: instance method of RoshChodeshEvent
MevarchimChodeshEvent
Represents Mevarchim haChodesh, the announcement of the new month
Kind: global class
new MevarchimChodeshEvent(date, monthName, [memo])
Constructs Mevarchim haChodesh event
Param | Type | Description |
---|
date | HDate | Hebrew date event occurs |
monthName | string | Hebrew month name (not translated) |
[memo] | string | |
mevarchimChodeshEvent.basename() ⇒ string
Kind: instance method of MevarchimChodeshEvent
mevarchimChodeshEvent.render([locale]) ⇒ string
Returns (translated) description of this event
Kind: instance method of MevarchimChodeshEvent
Param | Type | Description |
---|
[locale] | string | Optional locale name (defaults to active locale). |
mevarchimChodeshEvent.renderBrief([locale]) ⇒ string
Returns (translated) description of this event
Kind: instance method of MevarchimChodeshEvent
Param | Type | Description |
---|
[locale] | string | Optional locale name (defaults to active locale). |
DailyLearning
Plug-ins for daily learning calendars such as Daf Yomi, Mishna Yomi, Nach Yomi, etc.
Learning schedules are provided by the @hebcal/learning
package.
Kind: global class
DailyLearning.addCalendar(name, calendar)
Register a new learning calendar.
Kind: static method of DailyLearning
Param | Type |
---|
name | string |
calendar | function |
DailyLearning.lookup(name, hd, il) ⇒ Event
| null
Returns an event from daily calendar for a given date. Returns null
if there
is no learning from this calendar on this date.
Kind: static method of DailyLearning
Param | Type |
---|
name | string |
hd | HDate |
il | boolean |
HebrewCalendar
HebrewCalendar is the main interface to the @hebcal/core
library.
This namespace is used to calculate holidays, rosh chodesh, candle lighting & havdalah times,
Parashat HaShavua, Daf Yomi, days of the omer, and the molad.
Event names can be rendered in several languges using the locale
option.
Kind: global class
- HebrewCalendar
- .calendar([options]) ⇒
Array.<Event>
- .getBirthdayOrAnniversary(hyear, gdate) ⇒
HDate
| undefined
- .getYahrzeit(hyear, gdate) ⇒
HDate
| undefined
- .getHolidaysForYear(year) ⇒
HolidayYearMap
- .getHolidaysForYearArray(year, il) ⇒
Array.<HolidayEvent>
- .getHolidaysOnDate(date, [il]) ⇒
Array.<HolidayEvent>
| undefined
- .eruvTavshilin(date, il) ⇒
boolean
- .reformatTimeStr(timeStr, suffix, options) ⇒
string
- .version() ⇒
string
- .getSedra(hyear, il) ⇒
Sedra
- .hallel(hdate, il) ⇒
number
- .tachanun(hdate, il) ⇒
TachanunResult
HebrewCalendar.calendar([options]) ⇒ Array.<Event>
Calculates holidays and other Hebrew calendar events based on CalOptions.
Each holiday is represented by an Event object which includes a date,
a description, flags and optional attributes.
If given no options, returns holidays for the Diaspora for the current Gregorian year.
The date range returned by this function can be controlled by:
options.year
- Gregorian (e.g. 1993) or Hebrew year (e.g. 5749)options.isHebrewYear
- to interpret year
as Hebrew yearoptions.numYears
- generate calendar for multiple years (default 1)options.month
- Gregorian or Hebrew month (to filter results to a single month)
Alternatively, specify start and end days with Date
or HDate instances:
options.start
- use specific start date (requires end
date)options.end
- use specific end date (requires start
date)
Unless options.noHolidays == true
, default holidays include:
- Major holidays - Rosh Hashana, Yom Kippur, Pesach, Sukkot, etc.
- Minor holidays - Purim, Chanukah, Tu BiShvat, Lag BaOmer, etc.
- Minor fasts - Ta'anit Esther, Tzom Gedaliah, etc. (unless
options.noMinorFast
) - Special Shabbatot - Shabbat Shekalim, Zachor, etc. (unless
options.noSpecialShabbat
) - Modern Holidays - Yom HaShoah, Yom HaAtzma'ut, etc. (unless
options.noModern
) - Rosh Chodesh (unless
options.noRoshChodesh
)
Holiday and Torah reading schedules differ between Israel and the Disapora.
Set options.il=true
to use the Israeli schedule.
Additional non-default event types can be specified:
- Parashat HaShavua - weekly Torah Reading on Saturdays (
options.sedrot
) - Counting of the Omer (
options.omer
) - Shabbat Mevarchim HaChodesh on Saturday before Rosh Chodesh (
options.shabbatMevarchim
) - Molad announcement on Saturday before Rosh Chodesh (
options.molad
) - Yom Kippur Katan (
options.yomKippurKatan
)
Daily Study of texts are supported by the
@hebcal/learning package,
for example:
- Babylonian Talmud Daf Yomi (
options.dailyLearning.dafYomi
) - Jerusalem Talmud (Yerushalmi) Yomi (
options.dailyLearning.yerushalmi
) - Mishna Yomi (
options.dailyLearning.mishnaYomi
) - Nach Yomi (
options.dailyLearning.nachYomi
)
Candle-lighting and Havdalah times are approximated using latitude and longitude
specified by the Location class. The Location
class contains a small
database of cities with their associated geographic information and time-zone information.
If you ever have any doubts about Hebcal's times, consult your local halachic authority.
If you enter geographic coordinates above the arctic circle or antarctic circle,
the times are guaranteed to be wrong.
To add candle-lighting options, set options.candlelighting=true
and set
options.location
to an instance of Location
. By default, candle lighting
time is 18 minutes before sundown (40 minutes for Jerusalem,
30 minutes for Haifa and Zikhron Ya'akov) and Havdalah is
calculated according to Tzeit Hakochavim - Nightfall (the point when 3 small stars
are observable in the night time sky with the naked eye). The default Havdalah
option (Tzeit Hakochavim) is calculated when the sun is 8.5° below the horizon.
These defaults can be changed using these options:
options.candleLightingMins
- minutes before sundown to light candlesoptions.havdalahMins
- minutes after sundown for Havdalah (typical values are 42, 50, or 72).
Havdalah times are suppressed when options.havdalahMins=0
.options.havdalahDeg
- degrees for solar depression for Havdalah.
Default is 8.5 degrees for 3 small stars. Use 7.083 degrees for 3 medium-sized stars.
Havdalah times are suppressed when options.havdalahDeg=0
.
If both options.candlelighting=true
and options.location
is specified,
Chanukah candle-lighting times and minor fast start/end times will also be generated.
Chanukah candle-lighting is at Bein HaShmashos (13.5 minutes before
the sun is 7.083° below the horizon in the evening)
on weekdays, at regular candle-lighting time on Fridays, and at regular Havdalah time on
Saturday night (see above).
Minor fasts begin at Alot HaShachar (sun is 16.1° below the horizon in the morning) and
end when 3 medium-sized stars are observable in the night sky (sun is 7.083° below the horizon
in the evening).
Two options also exist for generating an Event with the Hebrew date:
options.addHebrewDates
- print the Hebrew date for the entire date rangeoptions.addHebrewDatesForEvents
- print the Hebrew date for dates with some events
Lastly, translation and transliteration of event titles is controlled by
options.locale
and the Locale API.
@hebcal/core
supports three locales by default:
en
- default, Sephardic transliterations (e.g. "Shabbat")ashkenazi
- Ashkenazi transliterations (e.g. "Shabbos")he
- Hebrew (e.g. "שַׁבָּת")
Additional locales (such as ru
or fr
) are supported by the
@hebcal/locales package
Kind: static method of HebrewCalendar
Param | Type | Default |
---|
[options] | CalOptions | {} |
Example
import {HebrewCalendar, HDate, Location, Event} from '@hebcal/core';
const options: CalOptions = {
year: 1981,
isHebrewYear: false,
candlelighting: true,
location: Location.lookup('San Francisco'),
sedrot: true,
omer: true,
};
const events = HebrewCalendar.calendar(options);
for (const ev of events) {
const hd = ev.getDate();
const date = hd.greg();
console.log(date.toLocaleDateString(), ev.render('en'), hd.toString());
}
HebrewCalendar.getBirthdayOrAnniversary(hyear, gdate) ⇒ HDate
| undefined
Calculates a birthday or anniversary (non-yahrzeit).
hyear
must be after original gdate
of anniversary.
Returns undefined
when requested year preceeds or is same as original year.
Hebcal uses the algorithm defined in "Calendrical Calculations"
by Edward M. Reingold and Nachum Dershowitz.
The birthday of someone born in Adar of an ordinary year or Adar II of
a leap year is also always in the last month of the year, be that Adar
or Adar II. The birthday in an ordinary year of someone born during the
first 29 days of Adar I in a leap year is on the corresponding day of Adar;
in a leap year, the birthday occurs in Adar I, as expected.
Someone born on the thirtieth day of Marcheshvan, Kislev, or Adar I
has his birthday postponed until the first of the following month in
years where that day does not occur. [Calendrical Calculations p. 111]
Kind: static method of HebrewCalendar
Returns: HDate
| undefined
- anniversary occurring in hyear
Param | Type | Description |
---|
hyear | number | Hebrew year |
gdate | Date | HDate | Gregorian or Hebrew date of event |
Example
import {HebrewCalendar} from '@hebcal/core';
const dt = new Date(2014, 2, 2);
const hd = HebrewCalendar.getBirthdayOrAnniversary(5780, dt);
console.log(hd.greg().toLocaleDateString('en-US'));
HebrewCalendar.getYahrzeit(hyear, gdate) ⇒ HDate
| undefined
Calculates yahrzeit.
hyear
must be after original gdate
of death.
Returns undefined
when requested year preceeds or is same as original year.
Hebcal uses the algorithm defined in "Calendrical Calculations"
by Edward M. Reingold and Nachum Dershowitz.
The customary anniversary date of a death is more complicated and depends
also on the character of the year in which the first anniversary occurs.
There are several cases:
- If the date of death is Marcheshvan 30, the anniversary in general depends
on the first anniversary; if that first anniversary was not Marcheshvan 30,
use the day before Kislev 1.
- If the date of death is Kislev 30, the anniversary in general again depends
on the first anniversary — if that was not Kislev 30, use the day before
Tevet 1.
- If the date of death is Adar II, the anniversary is the same day in the
last month of the Hebrew year (Adar or Adar II).
- If the date of death is Adar I 30, the anniversary in a Hebrew year that
is not a leap year (in which Adar only has 29 days) is the last day in
Shevat.
- In all other cases, use the normal (that is, same month number) anniversary
of the date of death. [Calendrical Calculations p. 113]
Kind: static method of HebrewCalendar
Returns: HDate
| undefined
- anniversary occurring in hyear
Param | Type | Description |
---|
hyear | number | Hebrew year |
gdate | Date | HDate | Gregorian or Hebrew date of death |
Example
import {HebrewCalendar} from '@hebcal/core';
const dt = new Date(2014, 2, 2);
const hd = HebrewCalendar.getYahrzeit(5780, dt);
console.log(hd.greg().toLocaleDateString('en-US'));
HebrewCalendar.getHolidaysForYear(year) ⇒ HolidayYearMap
Lower-level holidays interface, which returns a Map
of Event
s indexed by
HDate.toString()
. These events must filtered especially for flags.IL_ONLY
or flags.CHUL_ONLY
depending on Israel vs. Diaspora holiday scheme.
Kind: static method of HebrewCalendar
Param | Type | Description |
---|
year | number | Hebrew year |
HebrewCalendar.getHolidaysForYearArray(year, il) ⇒ Array.<HolidayEvent>
Returns an array of holidays for the year
Kind: static method of HebrewCalendar
Param | Type | Description |
---|
year | number | Hebrew year |
il | boolean | use the Israeli schedule for holidays |
HebrewCalendar.getHolidaysOnDate(date, [il]) ⇒ Array.<HolidayEvent>
| undefined
Returns an array of Events on this date (or undefined
if no events)
Kind: static method of HebrewCalendar
Param | Type | Description |
---|
date | HDate | Date | number | Hebrew Date, Gregorian date, or absolute R.D. day number |
[il] | boolean | use the Israeli schedule for holidays |
HebrewCalendar.eruvTavshilin(date, il) ⇒ boolean
Eruv Tavshilin
Kind: static method of HebrewCalendar
Param | Type |
---|
date | Date | HDate |
il | boolean |
HebrewCalendar.reformatTimeStr(timeStr, suffix, options) ⇒ string
Helper function to format a 23-hour (00:00-23:59) time in US format ("8:13pm") or
keep as "20:13" for any other locale/country. Uses CalOptions to determine
locale.
If options.hour12
is false
, locale is ignored and always returns 24-hour time.
If options.hour12
is true
, locale is ignored and always returns 12-hour time.
Kind: static method of HebrewCalendar
Param | Type | Description |
---|
timeStr | string | original time like "20:30" |
suffix | string | "p" or "pm" or " P.M.". Add leading space if you want it |
options | CalOptions | |
HebrewCalendar.version() ⇒ string
Kind: static method of HebrewCalendar
HebrewCalendar.getSedra(hyear, il) ⇒ Sedra
Convenience function to create an instance of Sedra
or reuse a previously
created and cached instance.
Kind: static method of HebrewCalendar
Param | Type |
---|
hyear | number |
il | boolean |
HebrewCalendar.hallel(hdate, il) ⇒ number
Return a number containing information on what Hallel is said on that day.
Whole Hallel is said on Chanukah, the first Yom Tov of Pesach, Shavuot, Sukkot,
Yom Ha'atzmaut, and Yom Yerushalayim.
Half Hallel is said on Rosh Chodesh (not Rosh Hashanah), and the last 6 days of Pesach.
The number is one of the following values:
0 - No Hallel
1 - Half Hallel
2 - Whole Hallel
Kind: static method of HebrewCalendar
Param | Type |
---|
hdate | HDate |
il | boolean |
HebrewCalendar.tachanun(hdate, il) ⇒ TachanunResult
Return details on what Tachanun (or Tzidchatcha on Shabbat) is said on hdate
.
Tachanun is not said on Rosh Chodesh, the month of Nisan, Lag Baomer,
Rosh Chodesh Sivan until Isru Chag, Tisha B'av, 15 Av, Erev Rosh Hashanah,
Rosh Hashanah, Erev Yom Kippur until after Simchat Torah, Chanukah,
Tu B'shvat, Purim and Shushan Purim, and Purim and Shushan Purim Katan.
In some congregations Tachanun is not said until from Rosh Chodesh Sivan
until 14th Sivan, Sukkot until after Rosh Chodesh Cheshvan, Pesach Sheini,
Yom Ha'atzmaut, and Yom Yerushalayim.
Tachanun is not said at Mincha on days before it is not said at Shacharit.
Tachanun is not said at Shacharit on Shabbat, but is at Mincha, usually.
Kind: static method of HebrewCalendar
Param | Type |
---|
hdate | HDate |
il | boolean |
greg
Gregorian date helper functions.
Kind: global variable
months : enum
Hebrew months of the year (NISAN=1, TISHREI=7)
Kind: global enum
Read only: true
Properties
Name | Type | Default | Description |
---|
NISAN | number | 1 | Nissan / ניסן |
IYYAR | number | 2 | Iyyar / אייר |
SIVAN | number | 3 | Sivan / סיון |
TAMUZ | number | 4 | Tamuz (sometimes Tammuz) / תמוז |
AV | number | 5 | Av / אב |
ELUL | number | 6 | Elul / אלול |
TISHREI | number | 7 | Tishrei / תִּשְׁרֵי |
CHESHVAN | number | 8 | Cheshvan / חשון |
KISLEV | number | 9 | Kislev / כסלו |
TEVET | number | 10 | Tevet / טבת |
SHVAT | number | 11 | Sh'vat / שבט |
ADAR_I | number | 12 | Adar or Adar Rishon / אדר |
ADAR_II | number | 13 | Adar Sheini (only on leap years) / אדר ב׳ |
flags : enum
Holiday flags for Event
Kind: global enum
Read only: true
Properties
Name | Type | Default | Description |
---|
CHAG | number | 1 | Chag, yontiff, yom tov |
LIGHT_CANDLES | number | 2 | Light candles 18 minutes before sundown |
YOM_TOV_ENDS | number | 4 | End of holiday (end of Yom Tov) |
CHUL_ONLY | number | 8 | Observed only in the Diaspora (chutz l'aretz) |
IL_ONLY | number | 16 | Observed only in Israel |
LIGHT_CANDLES_TZEIS | number | 32 | Light candles in the evening at Tzeit time (3 small stars) |
CHANUKAH_CANDLES | number | 64 | Candle-lighting for Chanukah |
ROSH_CHODESH | number | 128 | Rosh Chodesh, beginning of a new Hebrew month |
MINOR_FAST | number | 256 | Minor fasts like Tzom Tammuz, Ta'anit Esther, ... |
SPECIAL_SHABBAT | number | 512 | Shabbat Shekalim, Zachor, ... |
PARSHA_HASHAVUA | number | 1024 | Weekly sedrot on Saturdays |
DAF_YOMI | number | 2048 | Daily page of Talmud (Bavli) |
OMER_COUNT | number | 4096 | Days of the Omer |
MODERN_HOLIDAY | number | 8192 | Yom HaShoah, Yom HaAtzma'ut, ... |
MAJOR_FAST | number | 16384 | Yom Kippur and Tish'a B'Av |
SHABBAT_MEVARCHIM | number | 32768 | On the Saturday before Rosh Chodesh |
MOLAD | number | 65536 | Molad |
USER_EVENT | number | 131072 | Yahrzeit or Hebrew Anniversary |
HEBREW_DATE | number | 262144 | Daily Hebrew date ("11th of Sivan, 5780") |
MINOR_HOLIDAY | number | 524288 | A holiday that's not major, modern, rosh chodesh, or a fast day |
EREV | number | 1048576 | Evening before a major or minor holiday |
CHOL_HAMOED | number | 2097152 | Chol haMoed, intermediate days of Pesach or Sukkot |
MISHNA_YOMI | number | 4194304 | Mishna Yomi |
YOM_KIPPUR_KATAN | number | 8388608 | Yom Kippur Katan, minor day of atonement on the day preceeding each Rosh Chodesh |
YERUSHALMI_YOMI | number | 16777216 | Daily page of Jerusalem Talmud (Yerushalmi) |
NACH_YOMI | number | 33554432 | Nach Yomi |
DAILY_LEARNING | number | 67108864 | Daily Learning |
holidayDesc : enum
Transliterated names of holidays, used by Event.getDesc()
Kind: global enum
Read only: true
Properties
Name | Type | Default | Description |
---|
ASARA_BTEVET | string | "Asara B'Tevet" | Asara B'Tevet |
BIRKAT_HACHAMAH | string | "Birkat Hachamah" | Birkat Hachamah |
CHAG_HABANOT | string | "Chag HaBanot" | Chag HaBanot |
CHANUKAH_8TH_DAY | string | "Chanukah: 8th Day" | Chanukah: 8th Day |
EREV_TISHA_BAV | string | "Erev Tish'a B'Av" | Erev Tish'a B'Av |
LEIL_SELICHOT | string | "Leil Selichot" | Leil Selichot |
PURIM_KATAN | string | "Purim Katan" | Purim Katan |
PURIM_MESHULASH | string | "Purim Meshulash" | Purim Meshulash |
SHABBAT_CHAZON | string | "Shabbat Chazon" | Shabbat Chazon |
SHABBAT_HACHODESH | string | "Shabbat HaChodesh" | Shabbat HaChodesh |
SHABBAT_HAGADOL | string | "Shabbat HaGadol" | Shabbat HaGadol |
SHABBAT_NACHAMU | string | "Shabbat Nachamu" | Shabbat Nachamu |
SHABBAT_PARAH | string | "Shabbat Parah" | Shabbat Parah |
SHABBAT_SHEKALIM | string | "Shabbat Shekalim" | Shabbat Shekalim |
SHABBAT_SHIRAH | string | "Shabbat Shirah" | Shabbat Shirah |
SHABBAT_SHUVA | string | "Shabbat Shuva" | Shabbat Shuva |
SHABBAT_ZACHOR | string | "Shabbat Zachor" | Shabbat Zachor |
SHUSHAN_PURIM_KATAN | string | "Shushan Purim Katan" | Shushan Purim Katan |
TAANIT_BECHOROT | string | "Ta'anit Bechorot" | Ta'anit Bechorot |
TAANIT_ESTHER | string | "Ta'anit Esther" | Ta'anit Esther |
TISHA_BAV | string | "Tish'a B'Av" | Tish'a B'Av |
TZOM_GEDALIAH | string | "Tzom Gedaliah" | Tzom Gedaliah |
TZOM_TAMMUZ | string | "Tzom Tammuz" | Tzom Tammuz |
YOM_HAATZMA_UT | string | "Yom HaAtzma'ut" | Yom HaAtzma'ut |
YOM_HASHOAH | string | "Yom HaShoah" | Yom HaShoah |
YOM_HAZIKARON | string | "Yom HaZikaron" | Yom HaZikaron |
BEN_GURION_DAY | string | "BEN_GURION_DAY" | Ben-Gurion Day |
CHANUKAH_1_CANDLE | string | "CHANUKAH_1_CANDLE" | Chanukah: 1 Candle |
EREV_PESACH | string | "EREV_PESACH" | Erev Pesach |
EREV_PURIM | string | "EREV_PURIM" | Erev Purim |
EREV_ROSH_HASHANA | string | "EREV_ROSH_HASHANA" | Erev Rosh Hashana |
EREV_SHAVUOT | string | "EREV_SHAVUOT" | Erev Shavuot |
EREV_SUKKOT | string | "EREV_SUKKOT" | Erev Sukkot |
EREV_YOM_KIPPUR | string | "EREV_YOM_KIPPUR" | Erev Yom Kippur |
FAMILY_DAY | string | "FAMILY_DAY" | Family Day |
HEBREW_LANGUAGE_DAY | string | "HEBREW_LANGUAGE_DAY" | Hebrew Language Day |
HERZL_DAY | string | "HERZL_DAY" | Herzl Day |
JABOTINSKY_DAY | string | "JABOTINSKY_DAY" | Jabotinsky Day |
LAG_BAOMER | string | "LAG_BAOMER" | Lag BaOmer |
PESACH_I | string | "PESACH_I" | Pesach I |
PESACH_II | string | "PESACH_II" | Pesach II |
PESACH_III_CHM | string | "PESACH_III_CHM" | Pesach III (CH''M) |
PESACH_II_CHM | string | "PESACH_II_CHM" | Pesach II (CH''M) |
PESACH_IV_CHM | string | "PESACH_IV_CHM" | Pesach IV (CH''M) |
PESACH_SHENI | string | "PESACH_SHENI" | Pesach Sheni |
PESACH_VII | string | "PESACH_VII" | Pesach VII |
PESACH_VIII | string | "PESACH_VIII" | Pesach VIII |
PESACH_VI_CHM | string | "PESACH_VI_CHM" | Pesach VI (CH''M) |
PESACH_V_CHM | string | "PESACH_V_CHM" | Pesach V (CH''M) |
PURIM | string | "PURIM" | Purim |
ROSH_HASHANA_II | string | "ROSH_HASHANA_II" | Rosh Hashana II |
ROSH_HASHANA_LABEHEMOT | string | "ROSH_HASHANA_LABEHEMOT" | Rosh Hashana LaBehemot |
SHAVUOT | string | "SHAVUOT" | Shavuot |
SHAVUOT_I | string | "SHAVUOT_I" | Shavuot I |
SHAVUOT_II | string | "SHAVUOT_II" | Shavuot II |
SHMINI_ATZERET | string | "SHMINI_ATZERET" | Shmini Atzeret |
SHUSHAN_PURIM | string | "SHUSHAN_PURIM" | Shushan Purim |
SIGD | string | "SIGD" | Sigd |
SIMCHAT_TORAH | string | "SIMCHAT_TORAH" | Simchat Torah |
SUKKOT_I | string | "SUKKOT_I" | Sukkot I |
SUKKOT_II | string | "SUKKOT_II" | Sukkot II |
SUKKOT_III_CHM | string | "SUKKOT_III_CHM" | Sukkot III (CH''M) |
SUKKOT_II_CHM | string | "SUKKOT_II_CHM" | Sukkot II (CH''M) |
SUKKOT_IV_CHM | string | "SUKKOT_IV_CHM" | Sukkot IV (CH''M) |
SUKKOT_VII_HOSHANA_RABA | string | "SUKKOT_VII_HOSHANA_RABA" | Sukkot VII (Hoshana Raba) |
SUKKOT_VI_CHM | string | "SUKKOT_VI_CHM" | Sukkot VI (CH''M) |
SUKKOT_V_CHM | string | "SUKKOT_V_CHM" | Sukkot V (CH''M) |
TU_BAV | string | "TU_BAV" | Tu B'Av |
TU_BISHVAT | string | "TU_BISHVAT" | Tu BiShvat |
YITZHAK_RABIN_MEMORIAL_DAY | string | "YITZHAK_RABIN_MEMORIAL_DAY" | Yitzhak Rabin Memorial Day |
YOM_HAALIYAH | string | "YOM_HAALIYAH" | Yom HaAliyah |
YOM_HAALIYAH_SCHOOL_OBSERVANCE | string | "YOM_HAALIYAH_SCHOOL_OBSERVANCE" | Yom HaAliyah School Observance |
YOM_KIPPUR | string | "YOM_KIPPUR" | Yom Kippur |
YOM_YERUSHALAYIM | string | "YOM_YERUSHALAYIM" | Yom Yerushalayim |
parshiot : Array.<string>
The 54 parshiyot of the Torah as transilterated strings
parshiot[0] == 'Bereshit', parshiot[1] == 'Noach', parshiot[52] == "Ha'azinu".
Kind: global constant
Read only: true
version
DO NOT EDIT THIS AUTO-GENERATED FILE!
Kind: global constant
hebrew2abs(year, month, day) ⇒ number
Converts Hebrew date to R.D. (Rata Die) fixed days.
R.D. 1 is the imaginary date Monday, January 1, 1 on the Gregorian
Calendar.
Kind: global function
Param | Type | Description |
---|
year | number | Hebrew year |
month | number | Hebrew month |
day | number | Hebrew date (1-30) |
abs2hebrew(abs) ⇒ SimpleHebrewDate
Converts absolute R.D. days to Hebrew date
Kind: global function
Param | Type | Description |
---|
abs | number | absolute R.D. days |
isLeapYear(year) ⇒ boolean
Returns true if Hebrew year is a leap year
Kind: global function
Param | Type | Description |
---|
year | number | Hebrew year |
monthsInYear(year) ⇒ number
Number of months in this Hebrew year (either 12 or 13 depending on leap year)
Kind: global function
Param | Type | Description |
---|
year | number | Hebrew year |
daysInMonth(month, year) ⇒ number
Number of days in Hebrew month in a given year (29 or 30)
Kind: global function
Param | Type | Description |
---|
month | number | Hebrew month (e.g. months.TISHREI) |
year | number | Hebrew year |
getMonthName(month, year)
Returns a transliterated string name of Hebrew month in year,
for example 'Elul' or 'Cheshvan'.
Kind: global function
Param | Type | Description |
---|
month | number | Hebrew month (e.g. months.TISHREI) |
year | number | Hebrew year |
elapsedDays(year) ⇒ number
Days from sunday prior to start of Hebrew calendar to mean
conjunction of Tishrei in Hebrew YEAR
Kind: global function
Param | Type | Description |
---|
year | number | Hebrew year |
daysInYear(year) ⇒ number
Number of days in the hebrew YEAR.
A common Hebrew calendar year can have a length of 353, 354 or 355 days
A leap Hebrew calendar year can have a length of 383, 384 or 385 days
Kind: global function
Param | Type | Description |
---|
year | number | Hebrew year |
longCheshvan(year) ⇒ boolean
true if Cheshvan is long in Hebrew year
Kind: global function
Param | Type | Description |
---|
year | number | Hebrew year |
shortKislev(year) ⇒ boolean
true if Kislev is short in Hebrew year
Kind: global function
Param | Type | Description |
---|
year | number | Hebrew year |
monthFromName(monthName) ⇒ number
Converts Hebrew month string name to numeric
Kind: global function
Param | Type | Description |
---|
monthName | string | monthName |
gematriya(num) ⇒ string
Converts a numerical value to a string of Hebrew letters.
When specifying years of the Hebrew calendar in the present millennium,
we omit the thousands (which is presently 5 [ה]).
Kind: global function
Example
gematriya(5774)
gematriya(25)
gematriya(60)
gematriya(3761)
gematriya(1123)
gematriyaStrToNum(str) ⇒ number
Converts a string of Hebrew letters to a numerical value.
Only considers the value of Hebrew letters א
through ת
.
Ignores final Hebrew letters such as ך
(kaf sofit) or ם
(mem sofit)
and vowels (nekudot).
Kind: global function
omerSefira(omerDay, lang) ⇒
Returns the sefira. For example, on day 8
חֶֽסֶד שֶׁבִּגְבוּרָה
Chesed shebiGevurah
Lovingkindness within Might
Kind: global function
Returns: a string such as Lovingkindness within Might
or חֶֽסֶד שֶׁבִּגְבוּרָה
Param | Description |
---|
omerDay | the day of the omer, 1-49 inclusive |
lang | en (English), he (Hebrew with nikud), or translit (Hebrew in Sephardic transliteration) |
omerTodayIs(omerDay, lang) ⇒
Returns a sentence with that evening's omer count
Kind: global function
Returns: a string such as Today is 10 days, which is 1 week and 3 days of the Omer
or הַיוֹם עֲשָׂרָה יָמִים, שְׁהֵם שָׁבוּעַ אֶחָד וְשְׁלוֹשָׁה יָמִים לָעוֹמֶר
Param | Description |
---|
omerDay | the day of the omer, 1-49 inclusive |
lang | en (English), he (Hebrew with nikud) |
omerEmoji(omerDay) ⇒
Returns an emoji number symbol with a circle, for example ㊲
from the “Enclosed CJK Letters and Months” block of the Unicode standard
Kind: global function
Returns: a single Unicode character from ①
through ㊾
Param | Description |
---|
omerDay | the day of the omer, 1-49 inclusive |
molad()
Calculates the molad for a Hebrew month
Kind: global function
getPseudoISO(tzid, date) ⇒ string
Returns a string similar to Date.toISOString()
but in the
timezone tzid
. Contrary to the typical meaning of Z
at the end
of the string, this is not actually a UTC date.
Kind: global function
Param | Type |
---|
tzid | string |
date | Date |
getTimezoneOffset(tzid, date) ⇒ number
Returns number of minutes tzid
is offset from UTC on date date
.
Kind: global function
Param | Type |
---|
tzid | string |
date | Date |
pad4(number) ⇒ string
Formats a number with leading zeros so the resulting string is 4 digits long.
Similar to string.padStart(4, '0')
but will also format
negative numbers similar to how the JavaScript date formats
negative year numbers (e.g. -37
is formatted as -000037
).
Kind: global function
pad2(number) ⇒ string
Formats a number with leading zeros so the resulting string is 2 digits long.
Similar to string.padStart(2, '0')
.
Kind: global function