Expand description
§jpholiday
日本の祝日を判定する依存ゼロの Rust ライブラリです。 内閣府が公表しているデータ に基づき、振替休日・国民の休日・春分/秋分の日(天文計算)まで再現します。
2027 年までの祝日は公式発表に基づいて動作確認済みです。それ以降も取得できますが、 正式な公表がないため正確性は保証されません。
§関数 API
use jpholiday::Date;
// 指定日が祝日か
assert!(jpholiday::is_holiday(Date::new(2017, 1, 1).unwrap()));
assert!(!jpholiday::is_holiday(Date::new(2017, 1, 3).unwrap()));
// 祝日名(振替休日も含む)
assert_eq!(
jpholiday::is_holiday_name(Date::new(2017, 1, 2).unwrap()).as_deref(),
Some("元日 振替休日")
);
assert_eq!(jpholiday::is_holiday_name(Date::new(2017, 1, 3).unwrap()), None);
// その年・月・範囲の祝日一覧
let year = jpholiday::year_holidays(2017);
assert_eq!(year[0], (Date::new(2017, 1, 1).unwrap(), "元日".to_string()));§クラス API
use jpholiday::{Date, JPHoliday};
let jp = JPHoliday::new();
let holidays = jp.holidays(Date::new(2020, 1, 1).unwrap());
assert_eq!(holidays[0].name, "元日");§独自の祝日を追加する
use jpholiday::{Date, JPHoliday, OriginalHolidayChecker};
struct CompanyHoliday;
impl OriginalHolidayChecker for CompanyHoliday {
fn is_holiday(&self, date: Date) -> bool {
date == Date::new(2020, 2, 9).unwrap()
}
fn holiday_name(&self, _date: Date) -> String {
"特別休暇".to_string()
}
}
let mut jp = JPHoliday::new();
jp.register(CompanyHoliday);
assert!(jp.is_holiday(Date::new(2020, 2, 9).unwrap()));
jp.unregister::<CompanyHoliday>();
assert!(!jp.is_holiday(Date::new(2020, 2, 9).unwrap()));Modules§
- astronomy
- 春分・秋分の天文計算。
Structs§
Enums§
- Date
Error - 日付の生成に失敗したことを表すエラー。
Traits§
- Original
Holiday Checker - 利用者が独自の祝日を定義するためのトレイト。
Functions§
- between
- 指定範囲(両端を含む)のすべての祝日を
(日付, 名称)のタプルで返します。 - days_
in_ month - 指定した年月の日数を返します(
monthは 1〜12)。範囲外ならNone。 - holidays
- その日に該当するすべての祝日を返します。
- is_
holiday - その日が祝日かどうかを返します。
- is_
holiday_ name - その日の祝日名を返します(該当しなければ
None)。 - is_
leap_ year - 指定年が閏年かどうかを返します(先発グレゴリオ暦)。
- month_
holidays - その月のすべての祝日を
(日付, 名称)のタプルで返します。monthが範囲外なら空を返します。 - register
- 独自の祝日チェッカーをグローバル API に登録します。
- unregister
- 指定型の独自祝日チェッカーをグローバル API から登録解除します。
- year_
holidays - その年のすべての祝日を
(日付, 名称)のタプルで返します。