# HijriDate-rs 0.1.4
Convert between hijri and gregorian date.
The algorithm used to convert between dates is limited to:
```
minimum handled hijri year = 1356
maximum handled hijri year = 1500
minimum handled gregorian year = 1938 maximum handled gregorian year = 2076 ```
## Usage
convert to gregorian
```rust extern crate hijridate; use hijridate::HijriDate;
let hd = HijriDate::fromhijri(1439,11,19); asserteq!((2018,8,1),(hd.yeargr,hd.monthgr,hd.day_gr)); ```
convert to hijri
```rust extern crate hijridate; use hijridate::HijriDate;
let hd = HijriDate::fromgr(2000,07,31); asserteq!((1421,4,29),(hd.year,hd.month,hd.day)); ```
hijri day and month name
```rust extern crate hijridate; use hijridate::HijriDate;
let hd = HijriDate::from_hijri(1439,11,18); println!("{}",hd.format("%Y %M %D")); ```
compare dates
```rust extern crate hijridate; use hijridate::HijriDate;
let hd1 = HijriDate::fromhijri(1500, 12, 30); let hd2 = HijriDate::fromhijri(1356, 1, 1); assert!(hd1 > hd2); ```
substract duration from a day
```rust extern crate hijridate; use hijridate::{Duration,HijriDate};
let hd1 = HijriDate::fromhijri(1420, 06, 15); let hd2 = HijriDate::fromhijri(1420, 05, 29); asserteq!(hd1 - Duration::days(16), hd_2); ```
substract a day from an other to get a duration
```rust
extern crate hijridate;
use hijridate::{Duration,HijriDate};
let hd1 = HijriDate::fromhijri(1356, 06, 15); let hd2 = HijriDate::fromhijri(1356, 06, 7); asserteq!(hd1-hd_2,Duration::days(8)); ```
formating guide
hijri
%Y hijri_year
%m hijri_month
%d hijri_day
%D hijri_day_name
%M hijri_month_name
%l hijri_month_len
gregorian
%gY gregorian_year
%gm gregorian_month
%gd gregorian_day
%gD gregorian_day_name
%gM gregorian_month_name
I translated the python version https://github.com/tytkal/python-hijiri-ummalqura to rust.
Original algorithm author
Suhail Alkowaileet
Python version author
Khalid Al-hussayen