@hebcal/hdate
Version:
converts between Hebrew and Gregorian dates using Rata Die (R.D.) algorithm by Dershowitz and Reingold
117 lines (116 loc) • 3.73 kB
TypeScript
/**
* Hebrew months of the year (NISAN=1, TISHREI=7)
* @readonly
* @enum {number}
*/
export declare const months: {
/** Nissan / ניסן */
readonly NISAN: 1;
/** Iyyar / אייר */
readonly IYYAR: 2;
/** Sivan / סיון */
readonly SIVAN: 3;
/** Tamuz (sometimes Tammuz) / תמוז */
readonly TAMUZ: 4;
/** Av / אב */
readonly AV: 5;
/** Elul / אלול */
readonly ELUL: 6;
/** Tishrei / תִּשְׁרֵי */
readonly TISHREI: 7;
/** Cheshvan / חשון */
readonly CHESHVAN: 8;
/** Kislev / כסלו */
readonly KISLEV: 9;
/** Tevet / טבת */
readonly TEVET: 10;
/** Sh'vat / שבט */
readonly SHVAT: 11;
/** Adar or Adar Rishon / אדר */
readonly ADAR_I: 12;
/** Adar Sheini (only on leap years) / אדר ב׳ */
readonly ADAR_II: 13;
};
/** Transliterated Hebrew month names. */
export type MonthName = 'Nisan' | 'Iyyar' | 'Sivan' | 'Tamuz' | 'Av' | 'Elul' | 'Tishrei' | 'Cheshvan' | 'Kislev' | 'Tevet' | "Sh'vat" | 'Adar' | 'Adar I' | 'Adar II';
/**
* 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.
* @param year Hebrew year
* @param month Hebrew month
* @param day Hebrew date (1-30)
* @example
* const abs = hebrew2abs(5769, months.CHESHVAN, 15);
*/
export declare function hebrew2abs(year: number, month: number, day: number): 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.
*/
export declare function hd2abs(hdate: SimpleHebrewDate): number;
export type SimpleHebrewDate = {
/** Hebrew year */
yy: number;
/** Hebrew month of year (1=NISAN, 7=TISHREI) */
mm: number;
/** Day of month (1-30) */
dd: number;
};
/**
* Converts absolute R.D. days to Hebrew date
* @param abs absolute R.D. days
*/
export declare function abs2hebrew(abs: number): SimpleHebrewDate;
/**
* Returns true if Hebrew year is a leap year
* @param year Hebrew year
*/
export declare function isLeapYear(year: number): boolean;
/**
* Number of months in this Hebrew year (either 12 or 13 depending on leap year)
* @param year Hebrew year
*/
export declare function monthsInYear(year: number): number;
/**
* Number of days in Hebrew month in a given year (29 or 30)
* @param month Hebrew month (e.g. months.TISHREI)
* @param year Hebrew year
*/
export declare function daysInMonth(month: number, year: number): number;
/**
* Returns a transliterated string name of Hebrew month in year,
* for example 'Elul' or 'Cheshvan'.
* @param month Hebrew month (e.g. months.TISHREI)
* @param year Hebrew year
*/
export declare function getMonthName(month: number, year: number): MonthName;
/**
* Days from sunday prior to start of Hebrew calendar to mean
* conjunction of Tishrei in Hebrew YEAR
* @param year Hebrew year
*/
export declare function elapsedDays(year: number): 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
* @param year Hebrew year
*/
export declare function daysInYear(year: number): number;
/**
* true if Cheshvan is long in Hebrew year
* @param year Hebrew year
*/
export declare function longCheshvan(year: number): boolean;
/**
* true if Kislev is short in Hebrew year
* @param year Hebrew year
*/
export declare function shortKislev(year: number): boolean;
/**
* Converts Hebrew month string name to numeric
* @param monthName monthName
*/
export declare function monthFromName(monthName: string | number): number;