1个不稳定发布
0.1.0 | 2024年2月29日 |
---|
#172 in 日期和时间
110KB
2.5K SLoC
koyomi-rs
koyomi-rs
是一个依赖于 chrono 库的日本日历实用工具。
关于
它可以确定日本假日,无需配置文件或数据库维护。
此外,您还可以推导并确定与日期相关的各种日本特定定义(年、月、日)。
安装
在您的 Cargo.toml
中将 koyomi-rs
添加为依赖项。
cargo add koyomi-rs
[dependencies]
koyomi-rs = "0.1"
使用方法
日本假日
使用来自chrono的实现了 Datelike
的结构体,您可以确定特定日期是否对应于日本假日。
要使用它,请按照以下步骤操作。
use chrono::NaiveDate;
use koyomi_rs::JapaneseHoliday;
let date = NaiveDate::from_ymd_opt(2024, 1, 1).unwrap();
let holiday = JapaneseHoliday::holiday(&date); // Some(JapaneseHoliday::NewYearsDay);
// You can also determine whether it's a specific holiday.
let holiday = JapaneseHoliday::marine_day(&date); // None
日本年代
使用来自chrono的实现了 Datelike
的结构体,您可以确定日本年代。请注意,仅支持直到 明治
的年代名称。
要使用它,请按照以下步骤操作。
use chrono::NaiveDate;
use koyomi_rs::JapaneseEra;
let date = NaiveDate::from_ymd_opt(2024, 1, 1).unwrap();
let era = JapaneseEra::from_datelike(&date); // Some(JapaneseEra::Reiwa(6))
日本月份
使用来自chrono的实现了 Datelike
的结构体,您可以确定日本月份。
要使用它,请按照以下步骤操作。
use chrono::NaiveDate;
use koyomi_rs::JapaneseMonth;
let date = NaiveDate::from_ymd_opt(2024, 1, 1).unwrap();
let month = JapaneseMonth::from_datelike(&date); // JapaneseMonth::Mutsuki;
日本星期
使用来自chrono的实现了 Datelike
的结构体,您可以确定日本星期。
要使用它,请按照以下步骤操作。
use chrono::NaiveDate;
use koyomi_rs::JapaneseWeekday;
let date = NaiveDate::from_ymd_opt(2024, 1, 1).unwrap();
let zodiac = JapaneseWeekday::from_datelike(&date); // JapaneseWeekday::Getsu;
日本星座等
使用来自chrono的实现了 Datelike
的结构体,您可以确定日本星座。
要使用它,请按照以下步骤操作。
use chrono::NaiveDate;
use koyomi_rs::JapaneseZodiac;
let date = NaiveDate::from_ymd_opt(2024, 1, 1).unwrap();
let zodiac = JapaneseZodiac::from_datelike(&date); // JapaneseZodiac::Tatsu;
有关非星座符号的年份的日本特定定义,请参阅文档。
日本日历
您还可以生成包含所有上述内容的日历。
要将它用作日本日历,请按照以下步骤操作。
use koyomi_rs::Koyomi;
// Koyomi implements Iterator trait.
let mut calendar = Koyomi::year_of(2024);
let date = calendar.next().unwrap();
date.sexagenary_cycle_name(); // 甲辰
date.heavenly_stem_name(); // 甲
date.zodiac_name(); // 辰
date.western_year(); // 2024
date.era_name(); // Some("令和")
date.month_number(); // 1
date.month_name(); // 睦月
date.day(); // 1
date.weekday_name(); // 月
date.holiday_name(); // Some("元日")
注意
koyomi-rs
只处理日期(年、月、日)且不能处理小时、分钟或秒。
许可证
依赖项
~1MB
~18K SLoC