Crates.io Documentation Build Status Average time to resolve an issue Percentage of issues still open License: MIT

heca-lib

heca-lib

heca-lib is a blazingly fast Hebrew calender library. It's the backend behind the heca program.

Usage:

  1. Add to Cargo.toml:

toml [dependencies] heca-lib = "1.3"

  1. Import the types:

rust use heca_lib::prelude::*; use heca_lib::*;

Overview:

Convert:

This library can convert from Hebrew to Gregorian dates and back. You can get a HebrewDate either from a known Hebrew date or from a Gregorian date:

```rust

extern crate heca_lib;

use chrono::Utc; use chrono::offset::TimeZone; use hecalib::prelude::*; use hecalib::HebrewDate;

asserteq!(HebrewDate::fromgregorian(Utc.ymd(2018,9,10).andhms(17,59,59)).unwrap(),HebrewDate::fromymd(5779,HebrewMonth::Tishrei,1).unwrap());

```

You can then get back a Gregorian date from this Hebrew Date.

```rust

extern crate heca_lib;

use chrono::Utc; use chrono::offset::TimeZone; use hecalib::{HebrewDate}; use hecalib::prelude::*;

asserteq!(HebrewDate::fromymd(5779,HebrewMonth::Tishrei,10).unwrap().togregorian(),Utc.ymd(2018, 9,18).andhms(18,00,00));

```

Get Information on the Hebrew Year

This library can also list the major Jewish holidays and Torah readings in a given year (for both Israel and the Diaspora):

```rust

extern crate heca_lib;

use hecalib::{HebrewYear,HebrewDate}; use hecalib::prelude::*;

asserteq!(HebrewYear::new(5779).unwrap().getholidays(Location::Chul, &[TorahReadingType::Shabbos])[0].name(), TorahReading::Shabbos(Parsha::Vayelach)); asserteq!(HebrewYear::new(5779).unwrap().getholidays(Location::Chul, &[TorahReadingType::SpecialParsha]).iter().find(|x| x.name() == TorahReading::SpecialParsha(SpecialParsha::Zachor)).unwrap().day(),HebrewDate::from_ymd(5779,HebrewMonth::Adar2,9).unwrap());

```

Notes:

  1. This library won't work for years before 3764 (4).
  2. I tested this library against hebcal for all Rosh Hashanas between 3764 and 9999 (4-6239). I also checked it for all Rosh Chodesh Adars in those years. However, I take no resposibility if you accidently keep Yom Tov on the wrong day!

Current version: 1.3.1

License: MIT