Skip to main content

Crate jpholiday

Crate jpholiday 

Source
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§

Date
暦上の 1 日を表す型(先発グレゴリオ暦)。
Holiday
1 件の祝日(日付と名称)を表す不変の値。
JPHoliday
日本の祝日を判定するクラス。

Enums§

DateError
日付の生成に失敗したことを表すエラー。

Traits§

OriginalHolidayChecker
利用者が独自の祝日を定義するためのトレイト。

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
その年のすべての祝日を (日付, 名称) のタプルで返します。