#calendar #chinese #command-line-tool #cli

bin+lib nongli

A Rust library and CLI tool for Chinese calendar

2 releases

0.1.1 Oct 30, 2023
0.1.0 Oct 30, 2023

#375 in Date and time


Used in omnical

MIT license

59KB
1.5K SLoC

Nongli: A Rust library and CLI tool for Chinese calendar

github crates.io github License Preview

Note: This project is in early development and not guaranteed to run on every platform. Bug reports are welcome.

Install (as an executable)

cargo install nongli

or

cargo install --git https://github.com/supertsy5/nongli

As a library

Talk is cheap, let me show the code.

fn test() {
    use chrono::NaiveDate;
    use nongli::{ChineseDate, SolarTerm};
    let date = NaiveDate::from_ymd_opt(2023, 10, 30).unwrap();
    let chinese_date = ChineseDate::new(2023, 09, false, 16).unwrap();
    assert_eq!(ChineseDate::from_gregorian(&date), Some(chinese_date));
    assert_eq!(chinese_date.to_gregorian(), date);
    assert_eq!(
        SolarTerm::from_date(&NaiveDate::from_ymd_opt(2023, 10, 25).unwrap()),
        Some(SolarTerm::Shuangjiang)
    );
}

Development

Tip: run

. aliases.sh

for common aliases.

Clone this repository and run:

cargo build

Dependencies

~2.1–3MB
~53K SLoC