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 只处理日期(年、月、日)且不能处理小时、分钟或秒。

许可证

MIT

依赖项

~1MB
~18K SLoC