zemen 0.1.7

Ethiopian to Gregorian conversion utility
Documentation
# Zemen - የ ኢትዮጵያ ቀን መቁጠሪያ

> [!WARNING]
> I've recently discovered a bug that may impact its accuracy The `Zemen::today`
> function doesn't properly return the current date when the `time` feature is
> disabled. At this time, I'm unable to resolve the issue immediately. I
> encourage users to submit a pull request if they’re interested in contributing
> a fix. In the meantime, you may want to explore alternative crates that provide
> similar functionality or use the crate with the `time` feature turned on.
> 
> Thank you for your understanding and support! I’ll update this message as soon
> as a resolution is available.

## Introduction

A date conversion crate to convert between ethiopian and gregorian dates. We
have a custom `struct` to represent ethiopian date, i.e. `Zemen`, and we are
using an external crate `time`, and specifically `time::Date`, to represent
gregorian dates.

The crate uses the [Beyene-Kudlek](http://www.geez.org/Calendars/) algorithm to
convert between jdn (Julian Day number) and ethiopic calender. And the
[time](https://github.com/time-rs/time) crate to convert between jdn (Julian
Day number) and gregorian date.

Docs found [here](https://docs.rs/zemen/latest/zemen/)

## Installation

```sh
cargo add zemen
```

## Usage

```rust
use time::{Date, Month};
use zemen::{Zemen, Werh};
use zemen::error;

fn main() -> Result<(), error::Error> {
  // creating dates
  // Werh means month in Ge'ez
  let qen = Zemen::from_eth_cal(1992, Werh::Tahasass, 22)?;
  let date = Date::from_calendar_date(2000, Month::January, 1)?;

  // conversion
  let converted_day = Date::from(&qen);
  let converted_qen = Zemen::from(&date);

  println!("date: {}", converted_day);
  println!("qen: {}", converted_qen);

  // accessing individual element
  println!("year: {}", qen.year());
  println!("month: {}", qen.month());
  println!("month(number): {}", qen.month() as u8);
  println!("day: {}", qen.day());

  // get the next, and previous date. `next` and `previous` consume `self`
  let nege = qen.next();
  println!("nege: {}", nege);
  let tilant = nege.previous().previous();
  println!("tilant: {}", tilant);

  // get the next month
  let qetay_wer = tilant.month().next();
  println!("wer: {}", qetay_wer);

  // get the previous month
  let yalef_wer = tilant.month().previous();
  println!("wer: {}", yalef_wer);
  Ok(())
}
```
## Formatting

```rust
use zemen::*;
fn main() -> Result<(), error::Error> {
  let qen = Zemen::from_eth_cal(2015, Werh::Tir, 10)?;
  let formatted = qen.format("ዛሬ DD, MMM D-YYYY ነው");

  // prints: ዛሬ ረቡዕ, ጥር 10-2015 ነው
  println!("{}", formatted);
  Ok(())
}
```