@hebcal/hdate
Version:
converts between Hebrew and Gregorian dates using Rata Die (R.D.) algorithm by Dershowitz and Reingold
65 lines (64 loc) • 3.4 kB
TypeScript
import { SimpleHebrewDate } from './hdateBase';
export type AnniversaryDate = Date | SimpleHebrewDate | number;
/**
* Calculates yahrzeit.
* `hyear` must be after original `date` 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]
* @example
* import {getYahrzeit} from '@hebcal/hdate';
* const dt = new Date(2014, 2, 2); // '2014-03-02' == '30 Adar I 5774'
* const anniversary = getYahrzeit(5780, dt); // '2/25/2020' == '30 Sh\'vat 5780'
* @param hyear Hebrew year
* @param date Gregorian or Hebrew date of death
* @returns anniversary occurring in `hyear`
*/
export declare function getYahrzeit(hyear: number, date: AnniversaryDate): Date | undefined;
export declare function getYahrzeitHD(hyear: number, date: AnniversaryDate): SimpleHebrewDate | undefined;
/**
* Calculates a birthday or anniversary (non-yahrzeit).
* `hyear` must be after original `date` 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]
* @example
* import {getBirthdayOrAnniversary} from '@hebcal/hdate';
* const dt = new Date(2014, 2, 2); // '2014-03-02' == '30 Adar I 5774'
* const anniversary = getBirthdayOrAnniversary(5780, dt); // '3/26/2020' == '1 Nisan 5780'
* @param hyear Hebrew year
* @param date Gregorian or Hebrew date of event
* @returns anniversary occurring in `hyear`
*/
export declare function getBirthdayOrAnniversary(hyear: number, date: AnniversaryDate): Date | undefined;
export declare function getBirthdayHD(hyear: number, date: AnniversaryDate): SimpleHebrewDate | undefined;