flaretool.holiday package

Submodules

flaretool.holiday.JapaneseHolidays module

旧モジュールパス互換のためのシム

実装は flaretool.holiday.japanese_holidays に移動しました。 flaretool.holiday.JapaneseHolidays というモジュールパスを importしている既存コードのために残しています。

class flaretool.holiday.JapaneseHolidays.JapaneseHolidays

Bases: object

日本の祝日を管理するクラス(オフライン版)

祝日の定義は flaretool.holiday.algorithms の宣言的な ルールテーブルに基づいて計算されます。

法定の祝日に加えて、単発の追加休日(set_additional_holiday() / add_custom_holidays())や毎年繰り返すカスタム休日ルール (add_custom_holiday_rule())をインスタンス単位で登録できます。 これらの独自休日は法定祝日の判定結果(キャッシュ)には影響しません。

add_business_days(date: str | datetime | date, days: int) date

指定日からn営業日後(または前)の日付を取得

days が正の場合はn営業日後、負の場合はn営業日前を返します。 days が 0 の場合は変換した日付をそのまま返します (その日が営業日かどうかは判定しません)。

週末(set_weekendの設定に従う)・祝日・独自休日をスキップします。

Parameters:
  • date (str or datetime or date) – 起点の日付

  • days (int) – 進める営業日数(負の値で過去方向)

Returns:

n営業日後(前)の日付

Return type:

datetime.date

add_custom_holiday_rule(name: str, rule: str) None

毎年繰り返すカスタム休日ルールを追加

ルール文字列の書式:
  • “MM/DD” : 毎年その日を休日とする(例: “8/15”)

  • “MM/DD-MM/DD” : 毎年その期間(両端を含む)を休日とする (例: “12/29-1/3”)

開始月日が終了月日より後の場合(例: “12/29-1/3”)は年をまたぐ 期間として扱います。判定対象の日付それ自身の年で評価されるため、 例えば “12/29-1/3” は 2025年12月30日にも 2026年1月2日にも 該当します(12/29~12/31 と 1/1~1/3 のどちらの側も、判定する 日付と同じ年で照合されます)。

注意:
  • ルールは判定時に遅延評価され、法定祝日のキャッシュには 影響しません。

  • 法定祝日と重なる日は法定祝日名が優先されます。

  • ルールに該当する日が日曜日でも振替休日は発生しません (振替休日は法令に基づく祝日と単発の追加休日のみが対象)。

Parameters:
  • name (str) – 休日名

  • rule (str) – ルール文字列(”MM/DD” または “MM/DD-MM/DD”)

Raises:

ValueError – ルール文字列の書式が不正な場合

add_custom_holidays(name: str, dates: Iterable[str | datetime | date]) None

独自の休日をまとめて追加

set_additional_holiday の一括登録版です。同じ名称で複数の日付を 単発の追加休日として登録します。

Parameters:
  • name (str) – 休日名

  • dates (Iterable[str or datetime or date]) – 休日の日付の一覧

Raises:

ValueError – サポートされていない日付形式が含まれる場合

clear_custom_holidays() None

独自の休日をすべてクリア

単発の追加休日(set_additional_holiday / add_custom_holidays)と 毎年繰り返すカスタム休日ルール(add_custom_holiday_rule)の両方を 削除します。週末の設定(set_weekend)は変更しません。

count_business_days(start_date: str | datetime | date, end_date: str | datetime | date) int

指定期間内(両端を含む)の営業日数を取得

Parameters:
  • start_date (str or datetime or date) – 開始日

  • end_date (str or datetime or date) – 終了日

Returns:

営業日数

Return type:

int

Raises:

ValueError – 開始日が終了日より後の場合

get_business_date_range(start_date: date, end_date: date) list[date]

指定期間内の営業日の一覧を取得

週末とみなす曜日は set_weekend の設定に従います (デフォルトは土曜日・日曜日)。

Parameters:
  • start_date (datetime.date) – 開始日

  • end_date (datetime.date) – 終了日

Returns:

日付のリスト

Return type:

list[datetime.date]

get_date_information(date: date) tuple[int, str, int, str | None]

指定された日付から週番号、曜日、および祝日の名称を取得

Parameters:

date (datetime.date) – 日付

Returns:

週番号(int)(0-4)、曜日(str)、曜日(int)(0-6)、祝日の名称(str)のタプル

Return type:

tuple

get_first_business_day(date: date, days: int = 1) date

指定された月の営業日を取得(デフォルトは第1営業日)

Parameters:
  • date (datetime.date) – 日付

  • days (int) – 営業日数(デフォルトは1)

Returns:

営業日

Return type:

datetime.date

get_holiday_name(date: str | datetime | date) str | None

祝日名を取得

法定祝日(国民の休日・振替休日を含む)、単発の追加休日、 毎年繰り返すカスタム休日ルールの順に判定します (法定祝日名が常に優先されます)。

Parameters:

date (datetime or date or str) – 日時

Returns:

祝日名(祝日ではない場合はNone)

Return type:

str

get_holidays(date: str) list[tuple[date, str]]

祝日の一覧を取得

Parameters:

date (str) – 年 or 年月 の日時

Raises:

ValueError – 日時のフォーマットエラー

Returns:

(日付, 祝日名) のタプルのリスト。

Return type:

list[tuple[datetime.date, str]]

Note

v0.3.0 でタプルの並びを (祝日名, 日付) から (日付, 祝日名) に変更し、 get_holidays_in_range / get_rest_days_in_range と統一しました。

Example

>>> get_holidays("2023")
>>> get_holidays("2023-01")
>>> get_holidays("2023/01")
>>> get_holidays("202301")
get_holidays_in_range(start_date: date, end_date: date) list[tuple[date, str]]

特定の期間内の祝日一覧を取得

Parameters:
  • start_date (datetime.date) – 開始日

  • end_date (datetime.date) – 終了日

Returns:

(日付, 祝日名) のタプルのリスト。

Return type:

list[tuple[datetime.date, str]]

get_last_business_day(date: date) date

指定された月の最終営業日を取得

Parameters:

date (datetime.date) – 日付

Returns:

最終営業日

Return type:

datetime.date

static get_last_day(date: date) date

指定された月の最終日を取得

Parameters:

date (datetime.date) – 月を指定した日付

Returns:

最終日の日付オブジェクト

Return type:

datetime.date

get_rest_days_in_range(start_date: date, end_date: date) list[tuple[date, str]]

特定の期間内の休みの一覧を取得(土日含む)

「土曜日」「日曜日」のラベル付けは暦に基づいており、 set_weekend による営業日設定の影響を受けません。

Parameters:
  • start_date (datetime.date) – 開始日

  • end_date (datetime.date) – 終了日

Returns:

(日付, 名称) のタプルのリスト

Return type:

list[tuple[datetime.date, str]]

is_additional_holiday(date: date) bool

追加休日チェック

単発の追加休日(set_additional_holiday / add_custom_holidays)と、 毎年繰り返すカスタム休日ルール(add_custom_holiday_rule)の いずれかに該当するかを判定します。

Parameters:

date (datetime.date) – 日付

Returns:

追加休日の場合はTrue、そうでない場合はFalse

Return type:

bool

is_autumn_equinox(date: date) bool

秋分の日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

秋分の日であればTrue、そうでなければFalse

Return type:

bool

is_business_day(date: str | datetime | date) bool

営業日(週末でも祝日・独自休日でもない日)の判定

週末とみなす曜日は set_weekend で変更できます (デフォルトは土曜日・日曜日)。

Parameters:

date (str or datetime or date) – 判定する日付

Returns:

営業日であればTrue、そうでなければFalse

Return type:

bool

is_childrens_day(date: date) bool

こどもの日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

こどもの日であればTrue、そうでなければFalse

Return type:

bool

is_coming_of_age_day(date: date) bool

成人の日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

成人の日であればTrue、そうでなければFalse

Return type:

bool

is_constitution_day(date: date) bool

憲法記念日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

憲法記念日であればTrue、そうでなければFalse

Return type:

bool

is_culture_day(date: date) bool

文化の日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

文化の日であればTrue、そうでなければFalse

Return type:

bool

is_emperors_birthday(date: date) bool

天皇誕生日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

天皇誕生日であればTrue、そうでなければFalse

Return type:

bool

is_foundation_day(date: date) bool

建国記念日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

建国記念日であればTrue、そうでなければFalse

Return type:

bool

is_greenery_day(date: date) bool

みどりの日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

みどりの日であればTrue、そうでなければFalse

Return type:

bool

is_health_and_sports_day(date: date) bool

スポーツの日(2019年以前は体育の日)の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

スポーツの日であればTrue、そうでなければFalse

Return type:

bool

is_holiday(date: str | datetime | date) bool

祝日(振替休日・国民の休日・追加休日を含む)の判定

Parameters:

date (str or datetime or date) – 判定する日付

Returns:

祝日であればTrue、そうでなければFalse

Return type:

bool

is_labour_thanksgiving_day(date: date) bool

勤労感謝の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

勤労感謝であればTrue、そうでなければFalse

Return type:

bool

is_marine_day(date: date) bool

海の日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

海の日であればTrue、そうでなければFalse

Return type:

bool

is_mountain_day(date: date) bool

山の日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

山の日であればTrue、そうでなければFalse

Return type:

bool

is_national_holiday(date: date) bool

国民の休日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

国民の休日であればTrue、そうでなければFalse

Return type:

bool

is_new_year(date: date) bool

元日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

元日であればTrue、そうでなければFalse

Return type:

bool

is_respect_for_the_aged_day(date: date) bool

敬老の日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

敬老の日であればTrue、そうでなければFalse

Return type:

bool

is_showa_day(date: date) bool

昭和の日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

昭和の日であればTrue、そうでなければFalse

Return type:

bool

is_spring_equinox(date: date) bool

春分の日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

春分の日であればTrue、そうでなければFalse

Return type:

bool

is_transfer_holiday(date: date) bool

振替休日チェック

法定の振替休日(1973年4月12日の祝日法改正の施行以降)と、 単発の追加休日が日曜日と重なった場合の翌月曜日を振替休日と 判定します。判定は算出済みの休日名が 「(振替休日)」で終わるかどうかに基づくため、 祝日そのもの(例: 2026年5月4日のみどりの日)を誤って 振替休日と判定することはありません。

Parameters:

date (datetime.date) – 日付

Returns:

振替休日の場合はTrue、そうでない場合はFalse

Return type:

bool

next_business_day(date: str | datetime | date, *, include_start: bool = False) date

指定日以降で直近の営業日を取得

Parameters:
  • date (str or datetime or date) – 起点の日付

  • include_start (bool) – Trueの場合、起点が営業日ならその日を返す (デフォルト: False = 翌営業日から探索)

Returns:

直近の営業日

Return type:

datetime.date

previous_business_day(date: str | datetime | date, *, include_start: bool = False) date

指定日以前で直近の営業日を取得

Parameters:
  • date (str or datetime or date) – 起点の日付

  • include_start (bool) – Trueの場合、起点が営業日ならその日を返す (デフォルト: False = 前営業日から探索)

Returns:

直近の営業日

Return type:

datetime.date

print_calendar(date: date) None

カレンダーを出力

日曜始まりで、日曜日は赤・土曜日は青・祝日は緑で表示します。

Parameters:

date (datetime.date) – 対象年月

set_additional_holiday(name: str, date: date) None

独自の休日を追加

Parameters:
  • name (str) – 休日名

  • date (datetime.date) – 休日の日付

set_weekend(saturday: bool = True, sunday: bool = True) None

営業日判定で週末(休業日)とみなす曜日を設定

この設定は営業日関連の判定 (is_business_day / get_business_date_range / add_business_days / count_business_days / next_business_day / previous_business_day / get_first_business_day / get_last_business_day)にのみ影響します。

祝日の判定そのもの(is_holiday / get_holiday_name / 振替休日など)や、 get_rest_days_in_range の「土曜日」「日曜日」のラベル付けには 影響しません(これらは法令・暦に基づいたままです)。

両方を False にすると、祝日・独自休日を除くすべての曜日が 営業日として扱われます。

Parameters:
  • saturday (bool) – 土曜日を週末として扱う場合はTrue(デフォルト: True)

  • sunday (bool) – 日曜日を週末として扱う場合はTrue(デフォルト: True)

static to_date(date: str | datetime | date) date

日付文字列をdateオブジェクトに変換します

Parameters:

date (str or datetime or date) – 変換する日付文字列。

Returns:

変換されたdateオブジェクト。

Return type:

date

Raises:

ValueError – サポートされていない日付形式の場合に発生します。

week_day(date: date, week: int, weekday: int) date | None

指定された日付の月の「第week weekday曜日」に該当する日付を取得

Parameters:
  • date (datetime.date) – 対象の年月を含む日付

  • week (int) – 週 (1から5)

  • weekday (int) – 曜日 (1から7, 月曜日を1とする)

Returns:

該当する日付。 week・weekdayが範囲外の場合や、その月に第week週の 該当曜日が存在しない場合はNone

Return type:

datetime.date or None

flaretool.holiday.JapaneseHolidaysOnline module

旧モジュールパス互換のためのシム

実装は flaretool.holiday.online に移動しました。 flaretool.holiday.JapaneseHolidaysOnline というモジュールパスを importしている既存コードのために残しています。

class flaretool.holiday.JapaneseHolidaysOnline.JapaneseHolidaysOnline

Bases: JapaneseHolidays

日本の祝日を管理するクラス(オンライン版)

コンストラクタで祝日データをAPIから取得します。 サポート範囲外の日付はオフライン版のロジックにフォールバックします (その際、インスタンスごとに一度だけ警告を出します)。

holidays: HolidaysResponseModel
is_autumn_equinox(date: date) bool

秋分の日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

秋分の日であればTrue、そうでなければFalse

Return type:

bool

is_childrens_day(date: date) bool

こどもの日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

こどもの日であればTrue、そうでなければFalse

Return type:

bool

is_coming_of_age_day(date: date) bool

成人の日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

成人の日であればTrue、そうでなければFalse

Return type:

bool

is_constitution_day(date: date) bool

憲法記念日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

憲法記念日であればTrue、そうでなければFalse

Return type:

bool

is_culture_day(date: date) bool

文化の日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

文化の日であればTrue、そうでなければFalse

Return type:

bool

is_emperors_birthday(date: date) bool

天皇誕生日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

天皇誕生日であればTrue、そうでなければFalse

Return type:

bool

is_foundation_day(date: date) bool

建国記念日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

建国記念日であればTrue、そうでなければFalse

Return type:

bool

is_greenery_day(date: date) bool

みどりの日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

みどりの日であればTrue、そうでなければFalse

Return type:

bool

is_health_and_sports_day(date: date) bool

スポーツの日(2019年以前は体育の日)の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

スポーツの日であればTrue、そうでなければFalse

Return type:

bool

is_labour_thanksgiving_day(date: date) bool

勤労感謝の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

勤労感謝であればTrue、そうでなければFalse

Return type:

bool

is_marine_day(date: date) bool

海の日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

海の日であればTrue、そうでなければFalse

Return type:

bool

is_mountain_day(date: date) bool

山の日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

山の日であればTrue、そうでなければFalse

Return type:

bool

is_new_year(date: date) bool

元日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

元日であればTrue、そうでなければFalse

Return type:

bool

is_respect_for_the_aged_day(date: date) bool

敬老の日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

敬老の日であればTrue、そうでなければFalse

Return type:

bool

is_showa_day(date: date) bool

昭和の日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

昭和の日であればTrue、そうでなければFalse

Return type:

bool

is_spring_equinox(date: date) bool

春分の日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

春分の日であればTrue、そうでなければFalse

Return type:

bool

show_info() None

祝日の対応情報を表示

version: str

flaretool.holiday.algorithms module

日本の祝日判定ルール(純粋関数とデータ駆動の定義テーブル)

このモジュールは日付計算のみを行う純粋関数の集まりで、 ネットワークやインスタンス状態には依存しません。

  • HOLIDAY_RULES: 祝日の宣言的な定義テーブル (名称・適用年範囲・日付ルール)。並び順は JapaneseHolidays.get_holiday_name() の判定優先順位と同じです。

  • holidays_of_year(): 1年分の法定休日(国民の休日・振替休日を含む)を {日付: 名称} の辞書として算出します。結果はキャッシュされるため、 期間検索やカレンダー出力は辞書引きだけで済みます。

class flaretool.holiday.algorithms.HolidayRule(key: str, name: str | Callable[[int], str], date_rule: Callable[[int], date | None])

Bases: object

祝日1件分の宣言的な定義

key

英語識別子(JapaneseHolidaysのis_<key>メソッドに対応)

Type:

str

name

祝日名(年によって変わる場合は関数)

Type:

str or Callable[[int], str]

date_rule

年からその年の日付を求めるルール

Type:

DateRule

date_for_year(year: int) date | None

その年の該当日付を返す(適用外の年は None)

date_rule: Callable[[int], date | None]
key: str
matches(date: date) bool

日付がこの祝日に該当するかを判定する

name: str | Callable[[int], str]
name_for_year(year: int) str

その年に用いる祝日名を返す

flaretool.holiday.algorithms.equinox(month: int, base: float) Callable[[int], date | None]

春分・秋分の日の祝日ルールを返す(1900年~2099年の近似式)

flaretool.holiday.algorithms.fixed(month: int, day: int) Callable[[int], date | None]

毎年同じ月日の祝日ルールを返す

flaretool.holiday.algorithms.holidays_of_year(year: int) dict[date, str]

1年分の法定休日を算出する

国民の休日と振替休日を含みます(利用者が追加した独自の休日は含みません)。 結果はキャッシュされるため、2回目以降の呼び出しは辞書参照のみです。

Parameters:

year (int) – 西暦年

Returns:

日付をキー、祝日名を値とする辞書(日付昇順)

Return type:

dict[datetime.date, str]

flaretool.holiday.algorithms.is_national_holiday(date: date) bool

国民の休日(祝日に挟まれた平日等)の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

国民の休日であればTrue、そうでなければFalse

Return type:

bool

flaretool.holiday.algorithms.matches(key: str, date: date) bool

定義テーブル上の祝日 key に日付が該当するかを判定する

flaretool.holiday.algorithms.nth_monday(month: int, n: int) Callable[[int], date | None]

第n月曜日(ハッピーマンデー)の祝日ルールを返す

flaretool.holiday.algorithms.segments(*parts: tuple[int | None, int | None, Callable[[int], date | None]]) Callable[[int], date | None]

適用年範囲付きのルールを合成する

(開始年, 終了年, 日付ルール) のタプルを順に評価し、 最初に年が範囲内となったルールを適用します(Noneは無制限)。 どの範囲にも該当しない年は None(祝日なし)です。

flaretool.holiday.errors module

祝日機能の例外定義

exception flaretool.holiday.errors.JapaneseHolidaysError(**kwargs)

Bases: FlareToolError

祝日データの取得に失敗した場合に送出される例外

flaretool.holiday.japanese_holidays module

日本の祝日を管理するクラス(オフライン版)

class flaretool.holiday.japanese_holidays.JapaneseHolidays

Bases: object

日本の祝日を管理するクラス(オフライン版)

祝日の定義は flaretool.holiday.algorithms の宣言的な ルールテーブルに基づいて計算されます。

法定の祝日に加えて、単発の追加休日(set_additional_holiday() / add_custom_holidays())や毎年繰り返すカスタム休日ルール (add_custom_holiday_rule())をインスタンス単位で登録できます。 これらの独自休日は法定祝日の判定結果(キャッシュ)には影響しません。

add_business_days(date: str | datetime | date, days: int) date

指定日からn営業日後(または前)の日付を取得

days が正の場合はn営業日後、負の場合はn営業日前を返します。 days が 0 の場合は変換した日付をそのまま返します (その日が営業日かどうかは判定しません)。

週末(set_weekendの設定に従う)・祝日・独自休日をスキップします。

Parameters:
  • date (str or datetime or date) – 起点の日付

  • days (int) – 進める営業日数(負の値で過去方向)

Returns:

n営業日後(前)の日付

Return type:

datetime.date

add_custom_holiday_rule(name: str, rule: str) None

毎年繰り返すカスタム休日ルールを追加

ルール文字列の書式:
  • “MM/DD” : 毎年その日を休日とする(例: “8/15”)

  • “MM/DD-MM/DD” : 毎年その期間(両端を含む)を休日とする (例: “12/29-1/3”)

開始月日が終了月日より後の場合(例: “12/29-1/3”)は年をまたぐ 期間として扱います。判定対象の日付それ自身の年で評価されるため、 例えば “12/29-1/3” は 2025年12月30日にも 2026年1月2日にも 該当します(12/29~12/31 と 1/1~1/3 のどちらの側も、判定する 日付と同じ年で照合されます)。

注意:
  • ルールは判定時に遅延評価され、法定祝日のキャッシュには 影響しません。

  • 法定祝日と重なる日は法定祝日名が優先されます。

  • ルールに該当する日が日曜日でも振替休日は発生しません (振替休日は法令に基づく祝日と単発の追加休日のみが対象)。

Parameters:
  • name (str) – 休日名

  • rule (str) – ルール文字列(”MM/DD” または “MM/DD-MM/DD”)

Raises:

ValueError – ルール文字列の書式が不正な場合

add_custom_holidays(name: str, dates: Iterable[str | datetime | date]) None

独自の休日をまとめて追加

set_additional_holiday の一括登録版です。同じ名称で複数の日付を 単発の追加休日として登録します。

Parameters:
  • name (str) – 休日名

  • dates (Iterable[str or datetime or date]) – 休日の日付の一覧

Raises:

ValueError – サポートされていない日付形式が含まれる場合

clear_custom_holidays() None

独自の休日をすべてクリア

単発の追加休日(set_additional_holiday / add_custom_holidays)と 毎年繰り返すカスタム休日ルール(add_custom_holiday_rule)の両方を 削除します。週末の設定(set_weekend)は変更しません。

count_business_days(start_date: str | datetime | date, end_date: str | datetime | date) int

指定期間内(両端を含む)の営業日数を取得

Parameters:
  • start_date (str or datetime or date) – 開始日

  • end_date (str or datetime or date) – 終了日

Returns:

営業日数

Return type:

int

Raises:

ValueError – 開始日が終了日より後の場合

get_business_date_range(start_date: date, end_date: date) list[date]

指定期間内の営業日の一覧を取得

週末とみなす曜日は set_weekend の設定に従います (デフォルトは土曜日・日曜日)。

Parameters:
  • start_date (datetime.date) – 開始日

  • end_date (datetime.date) – 終了日

Returns:

日付のリスト

Return type:

list[datetime.date]

get_date_information(date: date) tuple[int, str, int, str | None]

指定された日付から週番号、曜日、および祝日の名称を取得

Parameters:

date (datetime.date) – 日付

Returns:

週番号(int)(0-4)、曜日(str)、曜日(int)(0-6)、祝日の名称(str)のタプル

Return type:

tuple

get_first_business_day(date: date, days: int = 1) date

指定された月の営業日を取得(デフォルトは第1営業日)

Parameters:
  • date (datetime.date) – 日付

  • days (int) – 営業日数(デフォルトは1)

Returns:

営業日

Return type:

datetime.date

get_holiday_name(date: str | datetime | date) str | None

祝日名を取得

法定祝日(国民の休日・振替休日を含む)、単発の追加休日、 毎年繰り返すカスタム休日ルールの順に判定します (法定祝日名が常に優先されます)。

Parameters:

date (datetime or date or str) – 日時

Returns:

祝日名(祝日ではない場合はNone)

Return type:

str

get_holidays(date: str) list[tuple[date, str]]

祝日の一覧を取得

Parameters:

date (str) – 年 or 年月 の日時

Raises:

ValueError – 日時のフォーマットエラー

Returns:

(日付, 祝日名) のタプルのリスト。

Return type:

list[tuple[datetime.date, str]]

Note

v0.3.0 でタプルの並びを (祝日名, 日付) から (日付, 祝日名) に変更し、 get_holidays_in_range / get_rest_days_in_range と統一しました。

Example

>>> get_holidays("2023")
>>> get_holidays("2023-01")
>>> get_holidays("2023/01")
>>> get_holidays("202301")
get_holidays_in_range(start_date: date, end_date: date) list[tuple[date, str]]

特定の期間内の祝日一覧を取得

Parameters:
  • start_date (datetime.date) – 開始日

  • end_date (datetime.date) – 終了日

Returns:

(日付, 祝日名) のタプルのリスト。

Return type:

list[tuple[datetime.date, str]]

get_last_business_day(date: date) date

指定された月の最終営業日を取得

Parameters:

date (datetime.date) – 日付

Returns:

最終営業日

Return type:

datetime.date

static get_last_day(date: date) date

指定された月の最終日を取得

Parameters:

date (datetime.date) – 月を指定した日付

Returns:

最終日の日付オブジェクト

Return type:

datetime.date

get_rest_days_in_range(start_date: date, end_date: date) list[tuple[date, str]]

特定の期間内の休みの一覧を取得(土日含む)

「土曜日」「日曜日」のラベル付けは暦に基づいており、 set_weekend による営業日設定の影響を受けません。

Parameters:
  • start_date (datetime.date) – 開始日

  • end_date (datetime.date) – 終了日

Returns:

(日付, 名称) のタプルのリスト

Return type:

list[tuple[datetime.date, str]]

is_additional_holiday(date: date) bool

追加休日チェック

単発の追加休日(set_additional_holiday / add_custom_holidays)と、 毎年繰り返すカスタム休日ルール(add_custom_holiday_rule)の いずれかに該当するかを判定します。

Parameters:

date (datetime.date) – 日付

Returns:

追加休日の場合はTrue、そうでない場合はFalse

Return type:

bool

is_autumn_equinox(date: date) bool

秋分の日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

秋分の日であればTrue、そうでなければFalse

Return type:

bool

is_business_day(date: str | datetime | date) bool

営業日(週末でも祝日・独自休日でもない日)の判定

週末とみなす曜日は set_weekend で変更できます (デフォルトは土曜日・日曜日)。

Parameters:

date (str or datetime or date) – 判定する日付

Returns:

営業日であればTrue、そうでなければFalse

Return type:

bool

is_childrens_day(date: date) bool

こどもの日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

こどもの日であればTrue、そうでなければFalse

Return type:

bool

is_coming_of_age_day(date: date) bool

成人の日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

成人の日であればTrue、そうでなければFalse

Return type:

bool

is_constitution_day(date: date) bool

憲法記念日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

憲法記念日であればTrue、そうでなければFalse

Return type:

bool

is_culture_day(date: date) bool

文化の日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

文化の日であればTrue、そうでなければFalse

Return type:

bool

is_emperors_birthday(date: date) bool

天皇誕生日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

天皇誕生日であればTrue、そうでなければFalse

Return type:

bool

is_foundation_day(date: date) bool

建国記念日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

建国記念日であればTrue、そうでなければFalse

Return type:

bool

is_greenery_day(date: date) bool

みどりの日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

みどりの日であればTrue、そうでなければFalse

Return type:

bool

is_health_and_sports_day(date: date) bool

スポーツの日(2019年以前は体育の日)の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

スポーツの日であればTrue、そうでなければFalse

Return type:

bool

is_holiday(date: str | datetime | date) bool

祝日(振替休日・国民の休日・追加休日を含む)の判定

Parameters:

date (str or datetime or date) – 判定する日付

Returns:

祝日であればTrue、そうでなければFalse

Return type:

bool

is_labour_thanksgiving_day(date: date) bool

勤労感謝の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

勤労感謝であればTrue、そうでなければFalse

Return type:

bool

is_marine_day(date: date) bool

海の日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

海の日であればTrue、そうでなければFalse

Return type:

bool

is_mountain_day(date: date) bool

山の日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

山の日であればTrue、そうでなければFalse

Return type:

bool

is_national_holiday(date: date) bool

国民の休日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

国民の休日であればTrue、そうでなければFalse

Return type:

bool

is_new_year(date: date) bool

元日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

元日であればTrue、そうでなければFalse

Return type:

bool

is_respect_for_the_aged_day(date: date) bool

敬老の日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

敬老の日であればTrue、そうでなければFalse

Return type:

bool

is_showa_day(date: date) bool

昭和の日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

昭和の日であればTrue、そうでなければFalse

Return type:

bool

is_spring_equinox(date: date) bool

春分の日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

春分の日であればTrue、そうでなければFalse

Return type:

bool

is_transfer_holiday(date: date) bool

振替休日チェック

法定の振替休日(1973年4月12日の祝日法改正の施行以降)と、 単発の追加休日が日曜日と重なった場合の翌月曜日を振替休日と 判定します。判定は算出済みの休日名が 「(振替休日)」で終わるかどうかに基づくため、 祝日そのもの(例: 2026年5月4日のみどりの日)を誤って 振替休日と判定することはありません。

Parameters:

date (datetime.date) – 日付

Returns:

振替休日の場合はTrue、そうでない場合はFalse

Return type:

bool

next_business_day(date: str | datetime | date, *, include_start: bool = False) date

指定日以降で直近の営業日を取得

Parameters:
  • date (str or datetime or date) – 起点の日付

  • include_start (bool) – Trueの場合、起点が営業日ならその日を返す (デフォルト: False = 翌営業日から探索)

Returns:

直近の営業日

Return type:

datetime.date

previous_business_day(date: str | datetime | date, *, include_start: bool = False) date

指定日以前で直近の営業日を取得

Parameters:
  • date (str or datetime or date) – 起点の日付

  • include_start (bool) – Trueの場合、起点が営業日ならその日を返す (デフォルト: False = 前営業日から探索)

Returns:

直近の営業日

Return type:

datetime.date

print_calendar(date: date) None

カレンダーを出力

日曜始まりで、日曜日は赤・土曜日は青・祝日は緑で表示します。

Parameters:

date (datetime.date) – 対象年月

set_additional_holiday(name: str, date: date) None

独自の休日を追加

Parameters:
  • name (str) – 休日名

  • date (datetime.date) – 休日の日付

set_weekend(saturday: bool = True, sunday: bool = True) None

営業日判定で週末(休業日)とみなす曜日を設定

この設定は営業日関連の判定 (is_business_day / get_business_date_range / add_business_days / count_business_days / next_business_day / previous_business_day / get_first_business_day / get_last_business_day)にのみ影響します。

祝日の判定そのもの(is_holiday / get_holiday_name / 振替休日など)や、 get_rest_days_in_range の「土曜日」「日曜日」のラベル付けには 影響しません(これらは法令・暦に基づいたままです)。

両方を False にすると、祝日・独自休日を除くすべての曜日が 営業日として扱われます。

Parameters:
  • saturday (bool) – 土曜日を週末として扱う場合はTrue(デフォルト: True)

  • sunday (bool) – 日曜日を週末として扱う場合はTrue(デフォルト: True)

static to_date(date: str | datetime | date) date

日付文字列をdateオブジェクトに変換します

Parameters:

date (str or datetime or date) – 変換する日付文字列。

Returns:

変換されたdateオブジェクト。

Return type:

date

Raises:

ValueError – サポートされていない日付形式の場合に発生します。

week_day(date: date, week: int, weekday: int) date | None

指定された日付の月の「第week weekday曜日」に該当する日付を取得

Parameters:
  • date (datetime.date) – 対象の年月を含む日付

  • week (int) – 週 (1から5)

  • weekday (int) – 曜日 (1から7, 月曜日を1とする)

Returns:

該当する日付。 week・weekdayが範囲外の場合や、その月に第week週の 該当曜日が存在しない場合はNone

Return type:

datetime.date or None

flaretool.holiday.models module

祝日オンラインAPIのレスポンスデータモデル

class flaretool.holiday.models.HolidaysResponseModel(*, title: str, author: str, version: str, status: bool, message: str, updated: datetime, supported: SupportedRange, count: int, holidays: dict[date, str] | None)

Bases: BaseDataModel

祝日一覧APIのレスポンスモデル

author: str
count: int
holidays: dict[date, str] | None
message: str
model_config = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

status: bool
supported: SupportedRange
title: str
updated: datetime
version: str
class flaretool.holiday.models.SupportedRange(*, from_date: date, to: date)

Bases: BaseDataModel

オンライン版祝日データがサポートする日付範囲

from_date: date
model_config = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

to_date: date
flaretool.holiday.models.supported

alias of SupportedRange

flaretool.holiday.online module

日本の祝日を管理するクラス(オンライン版)

class flaretool.holiday.online.JapaneseHolidaysOnline

Bases: JapaneseHolidays

日本の祝日を管理するクラス(オンライン版)

コンストラクタで祝日データをAPIから取得します。 サポート範囲外の日付はオフライン版のロジックにフォールバックします (その際、インスタンスごとに一度だけ警告を出します)。

holidays: HolidaysResponseModel
is_autumn_equinox(date: date) bool

秋分の日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

秋分の日であればTrue、そうでなければFalse

Return type:

bool

is_childrens_day(date: date) bool

こどもの日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

こどもの日であればTrue、そうでなければFalse

Return type:

bool

is_coming_of_age_day(date: date) bool

成人の日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

成人の日であればTrue、そうでなければFalse

Return type:

bool

is_constitution_day(date: date) bool

憲法記念日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

憲法記念日であればTrue、そうでなければFalse

Return type:

bool

is_culture_day(date: date) bool

文化の日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

文化の日であればTrue、そうでなければFalse

Return type:

bool

is_emperors_birthday(date: date) bool

天皇誕生日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

天皇誕生日であればTrue、そうでなければFalse

Return type:

bool

is_foundation_day(date: date) bool

建国記念日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

建国記念日であればTrue、そうでなければFalse

Return type:

bool

is_greenery_day(date: date) bool

みどりの日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

みどりの日であればTrue、そうでなければFalse

Return type:

bool

is_health_and_sports_day(date: date) bool

スポーツの日(2019年以前は体育の日)の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

スポーツの日であればTrue、そうでなければFalse

Return type:

bool

is_labour_thanksgiving_day(date: date) bool

勤労感謝の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

勤労感謝であればTrue、そうでなければFalse

Return type:

bool

is_marine_day(date: date) bool

海の日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

海の日であればTrue、そうでなければFalse

Return type:

bool

is_mountain_day(date: date) bool

山の日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

山の日であればTrue、そうでなければFalse

Return type:

bool

is_new_year(date: date) bool

元日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

元日であればTrue、そうでなければFalse

Return type:

bool

is_respect_for_the_aged_day(date: date) bool

敬老の日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

敬老の日であればTrue、そうでなければFalse

Return type:

bool

is_showa_day(date: date) bool

昭和の日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

昭和の日であればTrue、そうでなければFalse

Return type:

bool

is_spring_equinox(date: date) bool

春分の日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

春分の日であればTrue、そうでなければFalse

Return type:

bool

show_info() None

祝日の対応情報を表示

version: str

Module contents

日本の祝日を扱うパッケージ

class flaretool.holiday.JapaneseHolidays

Bases: object

日本の祝日を管理するクラス(オフライン版)

祝日の定義は flaretool.holiday.algorithms の宣言的な ルールテーブルに基づいて計算されます。

法定の祝日に加えて、単発の追加休日(set_additional_holiday() / add_custom_holidays())や毎年繰り返すカスタム休日ルール (add_custom_holiday_rule())をインスタンス単位で登録できます。 これらの独自休日は法定祝日の判定結果(キャッシュ)には影響しません。

add_business_days(date: str | datetime | date, days: int) date

指定日からn営業日後(または前)の日付を取得

days が正の場合はn営業日後、負の場合はn営業日前を返します。 days が 0 の場合は変換した日付をそのまま返します (その日が営業日かどうかは判定しません)。

週末(set_weekendの設定に従う)・祝日・独自休日をスキップします。

Parameters:
  • date (str or datetime or date) – 起点の日付

  • days (int) – 進める営業日数(負の値で過去方向)

Returns:

n営業日後(前)の日付

Return type:

datetime.date

add_custom_holiday_rule(name: str, rule: str) None

毎年繰り返すカスタム休日ルールを追加

ルール文字列の書式:
  • “MM/DD” : 毎年その日を休日とする(例: “8/15”)

  • “MM/DD-MM/DD” : 毎年その期間(両端を含む)を休日とする (例: “12/29-1/3”)

開始月日が終了月日より後の場合(例: “12/29-1/3”)は年をまたぐ 期間として扱います。判定対象の日付それ自身の年で評価されるため、 例えば “12/29-1/3” は 2025年12月30日にも 2026年1月2日にも 該当します(12/29~12/31 と 1/1~1/3 のどちらの側も、判定する 日付と同じ年で照合されます)。

注意:
  • ルールは判定時に遅延評価され、法定祝日のキャッシュには 影響しません。

  • 法定祝日と重なる日は法定祝日名が優先されます。

  • ルールに該当する日が日曜日でも振替休日は発生しません (振替休日は法令に基づく祝日と単発の追加休日のみが対象)。

Parameters:
  • name (str) – 休日名

  • rule (str) – ルール文字列(”MM/DD” または “MM/DD-MM/DD”)

Raises:

ValueError – ルール文字列の書式が不正な場合

add_custom_holidays(name: str, dates: Iterable[str | datetime | date]) None

独自の休日をまとめて追加

set_additional_holiday の一括登録版です。同じ名称で複数の日付を 単発の追加休日として登録します。

Parameters:
  • name (str) – 休日名

  • dates (Iterable[str or datetime or date]) – 休日の日付の一覧

Raises:

ValueError – サポートされていない日付形式が含まれる場合

clear_custom_holidays() None

独自の休日をすべてクリア

単発の追加休日(set_additional_holiday / add_custom_holidays)と 毎年繰り返すカスタム休日ルール(add_custom_holiday_rule)の両方を 削除します。週末の設定(set_weekend)は変更しません。

count_business_days(start_date: str | datetime | date, end_date: str | datetime | date) int

指定期間内(両端を含む)の営業日数を取得

Parameters:
  • start_date (str or datetime or date) – 開始日

  • end_date (str or datetime or date) – 終了日

Returns:

営業日数

Return type:

int

Raises:

ValueError – 開始日が終了日より後の場合

get_business_date_range(start_date: date, end_date: date) list[date]

指定期間内の営業日の一覧を取得

週末とみなす曜日は set_weekend の設定に従います (デフォルトは土曜日・日曜日)。

Parameters:
  • start_date (datetime.date) – 開始日

  • end_date (datetime.date) – 終了日

Returns:

日付のリスト

Return type:

list[datetime.date]

get_date_information(date: date) tuple[int, str, int, str | None]

指定された日付から週番号、曜日、および祝日の名称を取得

Parameters:

date (datetime.date) – 日付

Returns:

週番号(int)(0-4)、曜日(str)、曜日(int)(0-6)、祝日の名称(str)のタプル

Return type:

tuple

get_first_business_day(date: date, days: int = 1) date

指定された月の営業日を取得(デフォルトは第1営業日)

Parameters:
  • date (datetime.date) – 日付

  • days (int) – 営業日数(デフォルトは1)

Returns:

営業日

Return type:

datetime.date

get_holiday_name(date: str | datetime | date) str | None

祝日名を取得

法定祝日(国民の休日・振替休日を含む)、単発の追加休日、 毎年繰り返すカスタム休日ルールの順に判定します (法定祝日名が常に優先されます)。

Parameters:

date (datetime or date or str) – 日時

Returns:

祝日名(祝日ではない場合はNone)

Return type:

str

get_holidays(date: str) list[tuple[date, str]]

祝日の一覧を取得

Parameters:

date (str) – 年 or 年月 の日時

Raises:

ValueError – 日時のフォーマットエラー

Returns:

(日付, 祝日名) のタプルのリスト。

Return type:

list[tuple[datetime.date, str]]

Note

v0.3.0 でタプルの並びを (祝日名, 日付) から (日付, 祝日名) に変更し、 get_holidays_in_range / get_rest_days_in_range と統一しました。

Example

>>> get_holidays("2023")
>>> get_holidays("2023-01")
>>> get_holidays("2023/01")
>>> get_holidays("202301")
get_holidays_in_range(start_date: date, end_date: date) list[tuple[date, str]]

特定の期間内の祝日一覧を取得

Parameters:
  • start_date (datetime.date) – 開始日

  • end_date (datetime.date) – 終了日

Returns:

(日付, 祝日名) のタプルのリスト。

Return type:

list[tuple[datetime.date, str]]

get_last_business_day(date: date) date

指定された月の最終営業日を取得

Parameters:

date (datetime.date) – 日付

Returns:

最終営業日

Return type:

datetime.date

static get_last_day(date: date) date

指定された月の最終日を取得

Parameters:

date (datetime.date) – 月を指定した日付

Returns:

最終日の日付オブジェクト

Return type:

datetime.date

get_rest_days_in_range(start_date: date, end_date: date) list[tuple[date, str]]

特定の期間内の休みの一覧を取得(土日含む)

「土曜日」「日曜日」のラベル付けは暦に基づいており、 set_weekend による営業日設定の影響を受けません。

Parameters:
  • start_date (datetime.date) – 開始日

  • end_date (datetime.date) – 終了日

Returns:

(日付, 名称) のタプルのリスト

Return type:

list[tuple[datetime.date, str]]

is_additional_holiday(date: date) bool

追加休日チェック

単発の追加休日(set_additional_holiday / add_custom_holidays)と、 毎年繰り返すカスタム休日ルール(add_custom_holiday_rule)の いずれかに該当するかを判定します。

Parameters:

date (datetime.date) – 日付

Returns:

追加休日の場合はTrue、そうでない場合はFalse

Return type:

bool

is_autumn_equinox(date: date) bool

秋分の日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

秋分の日であればTrue、そうでなければFalse

Return type:

bool

is_business_day(date: str | datetime | date) bool

営業日(週末でも祝日・独自休日でもない日)の判定

週末とみなす曜日は set_weekend で変更できます (デフォルトは土曜日・日曜日)。

Parameters:

date (str or datetime or date) – 判定する日付

Returns:

営業日であればTrue、そうでなければFalse

Return type:

bool

is_childrens_day(date: date) bool

こどもの日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

こどもの日であればTrue、そうでなければFalse

Return type:

bool

is_coming_of_age_day(date: date) bool

成人の日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

成人の日であればTrue、そうでなければFalse

Return type:

bool

is_constitution_day(date: date) bool

憲法記念日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

憲法記念日であればTrue、そうでなければFalse

Return type:

bool

is_culture_day(date: date) bool

文化の日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

文化の日であればTrue、そうでなければFalse

Return type:

bool

is_emperors_birthday(date: date) bool

天皇誕生日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

天皇誕生日であればTrue、そうでなければFalse

Return type:

bool

is_foundation_day(date: date) bool

建国記念日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

建国記念日であればTrue、そうでなければFalse

Return type:

bool

is_greenery_day(date: date) bool

みどりの日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

みどりの日であればTrue、そうでなければFalse

Return type:

bool

is_health_and_sports_day(date: date) bool

スポーツの日(2019年以前は体育の日)の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

スポーツの日であればTrue、そうでなければFalse

Return type:

bool

is_holiday(date: str | datetime | date) bool

祝日(振替休日・国民の休日・追加休日を含む)の判定

Parameters:

date (str or datetime or date) – 判定する日付

Returns:

祝日であればTrue、そうでなければFalse

Return type:

bool

is_labour_thanksgiving_day(date: date) bool

勤労感謝の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

勤労感謝であればTrue、そうでなければFalse

Return type:

bool

is_marine_day(date: date) bool

海の日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

海の日であればTrue、そうでなければFalse

Return type:

bool

is_mountain_day(date: date) bool

山の日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

山の日であればTrue、そうでなければFalse

Return type:

bool

is_national_holiday(date: date) bool

国民の休日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

国民の休日であればTrue、そうでなければFalse

Return type:

bool

is_new_year(date: date) bool

元日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

元日であればTrue、そうでなければFalse

Return type:

bool

is_respect_for_the_aged_day(date: date) bool

敬老の日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

敬老の日であればTrue、そうでなければFalse

Return type:

bool

is_showa_day(date: date) bool

昭和の日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

昭和の日であればTrue、そうでなければFalse

Return type:

bool

is_spring_equinox(date: date) bool

春分の日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

春分の日であればTrue、そうでなければFalse

Return type:

bool

is_transfer_holiday(date: date) bool

振替休日チェック

法定の振替休日(1973年4月12日の祝日法改正の施行以降)と、 単発の追加休日が日曜日と重なった場合の翌月曜日を振替休日と 判定します。判定は算出済みの休日名が 「(振替休日)」で終わるかどうかに基づくため、 祝日そのもの(例: 2026年5月4日のみどりの日)を誤って 振替休日と判定することはありません。

Parameters:

date (datetime.date) – 日付

Returns:

振替休日の場合はTrue、そうでない場合はFalse

Return type:

bool

next_business_day(date: str | datetime | date, *, include_start: bool = False) date

指定日以降で直近の営業日を取得

Parameters:
  • date (str or datetime or date) – 起点の日付

  • include_start (bool) – Trueの場合、起点が営業日ならその日を返す (デフォルト: False = 翌営業日から探索)

Returns:

直近の営業日

Return type:

datetime.date

previous_business_day(date: str | datetime | date, *, include_start: bool = False) date

指定日以前で直近の営業日を取得

Parameters:
  • date (str or datetime or date) – 起点の日付

  • include_start (bool) – Trueの場合、起点が営業日ならその日を返す (デフォルト: False = 前営業日から探索)

Returns:

直近の営業日

Return type:

datetime.date

print_calendar(date: date) None

カレンダーを出力

日曜始まりで、日曜日は赤・土曜日は青・祝日は緑で表示します。

Parameters:

date (datetime.date) – 対象年月

set_additional_holiday(name: str, date: date) None

独自の休日を追加

Parameters:
  • name (str) – 休日名

  • date (datetime.date) – 休日の日付

set_weekend(saturday: bool = True, sunday: bool = True) None

営業日判定で週末(休業日)とみなす曜日を設定

この設定は営業日関連の判定 (is_business_day / get_business_date_range / add_business_days / count_business_days / next_business_day / previous_business_day / get_first_business_day / get_last_business_day)にのみ影響します。

祝日の判定そのもの(is_holiday / get_holiday_name / 振替休日など)や、 get_rest_days_in_range の「土曜日」「日曜日」のラベル付けには 影響しません(これらは法令・暦に基づいたままです)。

両方を False にすると、祝日・独自休日を除くすべての曜日が 営業日として扱われます。

Parameters:
  • saturday (bool) – 土曜日を週末として扱う場合はTrue(デフォルト: True)

  • sunday (bool) – 日曜日を週末として扱う場合はTrue(デフォルト: True)

static to_date(date: str | datetime | date) date

日付文字列をdateオブジェクトに変換します

Parameters:

date (str or datetime or date) – 変換する日付文字列。

Returns:

変換されたdateオブジェクト。

Return type:

date

Raises:

ValueError – サポートされていない日付形式の場合に発生します。

week_day(date: date, week: int, weekday: int) date | None

指定された日付の月の「第week weekday曜日」に該当する日付を取得

Parameters:
  • date (datetime.date) – 対象の年月を含む日付

  • week (int) – 週 (1から5)

  • weekday (int) – 曜日 (1から7, 月曜日を1とする)

Returns:

該当する日付。 week・weekdayが範囲外の場合や、その月に第week週の 該当曜日が存在しない場合はNone

Return type:

datetime.date or None

class flaretool.holiday.JapaneseHolidaysOnline

Bases: JapaneseHolidays

日本の祝日を管理するクラス(オンライン版)

コンストラクタで祝日データをAPIから取得します。 サポート範囲外の日付はオフライン版のロジックにフォールバックします (その際、インスタンスごとに一度だけ警告を出します)。

holidays: HolidaysResponseModel
is_autumn_equinox(date: date) bool

秋分の日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

秋分の日であればTrue、そうでなければFalse

Return type:

bool

is_childrens_day(date: date) bool

こどもの日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

こどもの日であればTrue、そうでなければFalse

Return type:

bool

is_coming_of_age_day(date: date) bool

成人の日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

成人の日であればTrue、そうでなければFalse

Return type:

bool

is_constitution_day(date: date) bool

憲法記念日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

憲法記念日であればTrue、そうでなければFalse

Return type:

bool

is_culture_day(date: date) bool

文化の日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

文化の日であればTrue、そうでなければFalse

Return type:

bool

is_emperors_birthday(date: date) bool

天皇誕生日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

天皇誕生日であればTrue、そうでなければFalse

Return type:

bool

is_foundation_day(date: date) bool

建国記念日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

建国記念日であればTrue、そうでなければFalse

Return type:

bool

is_greenery_day(date: date) bool

みどりの日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

みどりの日であればTrue、そうでなければFalse

Return type:

bool

is_health_and_sports_day(date: date) bool

スポーツの日(2019年以前は体育の日)の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

スポーツの日であればTrue、そうでなければFalse

Return type:

bool

is_labour_thanksgiving_day(date: date) bool

勤労感謝の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

勤労感謝であればTrue、そうでなければFalse

Return type:

bool

is_marine_day(date: date) bool

海の日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

海の日であればTrue、そうでなければFalse

Return type:

bool

is_mountain_day(date: date) bool

山の日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

山の日であればTrue、そうでなければFalse

Return type:

bool

is_new_year(date: date) bool

元日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

元日であればTrue、そうでなければFalse

Return type:

bool

is_respect_for_the_aged_day(date: date) bool

敬老の日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

敬老の日であればTrue、そうでなければFalse

Return type:

bool

is_showa_day(date: date) bool

昭和の日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

昭和の日であればTrue、そうでなければFalse

Return type:

bool

is_spring_equinox(date: date) bool

春分の日の判定

Parameters:

date (datetime.date) – 判定する日付

Returns:

春分の日であればTrue、そうでなければFalse

Return type:

bool

show_info() None

祝日の対応情報を表示

version: str