Skip to content

The Jewish Calendar TypeScript Lib behind CalJ.net

Notifications You must be signed in to change notification settings

zzgab/calj-jdates

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

@calj.net/jdates

npm version

The Jewish dates toolbox used on https://calj.net.

  • Manipulate Jewish and Gregorian dates
  • Transform dates between the two calendar systems
  • Compute the weekly Parasha
  • Compute the dates of the Holidays

CalJ.net

Modes

The library can be used in Node (both ESM and CommonJS) and in the browser:

Node ESM

import { GDate, HDate, Festival, Parasha } from "@calj.net/jdates";

Node CommonJS

const { GDate, HDate, Festival, Parasha } = require("@calj.net/jdates");

Browser

<script
src="https://cdn.jsdelivr.net/npm/@calj.net/jdates">
</script>

<script>
const {
  Festival,
  GDate,
  HDate,
  Parasha,
} = CalJ;
</script>

Examples

console.log("This week's Parasha in Israel:",
  new HebrewParashaLocalizer().sidra(Parasha.make(
    GDate.today(), ParashaScheme.ISRAEL
  ))
);

const h = HDate.make(GDate.make(9, 2, 2023));
console.log("9 Feb 2023 is: ",
  `${h.getDay()} ${h.getMonthName()} ${h.getYear()}`);

const yomKippur = Festival.yomKippur(5780);
const gYomKippur = GDate.make(yomKippur.getStartDate());
console.log("Yom Kippur 5780 is: ", `${gYomKippur}`);

API

You can instantiate GDate and HDate immutable objects, both extending the JDate abstract.

GDate

  • static GDate.make(date: Date): GDate


    Obtain a Gregorian date from a JavaScript Date instance.

  • static GDate.make(jdate: JDate): GDate


    Obtain a Gregorian date from another instance, which may be of class GDate (copy), or HDate (conversion).

  • static GDate.make(day: number, month: number, year: number): GDate


    Obtain a GDate instance positionned on the specified Gregorian date elements.

HDate

  • static HDate.make(date: Date): HDate


    Obtain a Jewish date from a JavaScript Date instance.

  • static HDate.make(jdate: JDate): HDate


    Obtain a Jewish date from another instance, which may be of class HDate (copy), or GDate (conversion).

  • static HDate.make(day: number, month: HDateMonth, year: number): HDate


    Obtain an HDate instance positionned on the specified Jewish date elements.

HDateMonth

An enum of the Jewish months:

{
    TISHRI,
    CHESHVAN,
    KISLEV,
    TEVET,
    SHVAT,
    ADAR,
    ADAR2,
    NISSAN,
    IYAR,
    SIVAN,
    TAMUZ,
    AV,
    ELUL,
}

JDate

  • .eq, .lt, .lte, .gt, .gte (other: JDate): boolean


    Boolean functions accepting an instance of JDate, to check respectively if the argument is ==, <, <=, >, >= to this instance. The comparison is done on the date itself, as a point in time, rather than equality of the objects or any other date components that represent the date in one system or the other.