japanese-holidays.js
西暦2000-2999年の日本の休日情報が取得可能
クイックスタート

CDNからライブラリを読み込みます

<script type="module" src="https://holidays.plasticheart.info/latest/japanese-holidays.min.js"></script>

コードを書きます

const now = new Date()
const today = {
    year: now.getFullYear(),
    month: now.getMonth() + 1,
    day: now.getDate()
}
const dateInfo = JapaneseHolidays.get(today)
// [{
//     "date": { "year": 2026, "month": 1, "day": 1 },
//     "kind": "national",
//     "possibility": "yes",
//     "name": "元日",
//     "description": "年のはじめを祝う"
// }]
📚 詳しい使いかた
/**
 * @typedef {{year: number, month: number, day: number}} DateYMD
 * @typedef {{holidays: bool}} DateOptions
 */

// 指定した日の情報を取得する
JapaneseHolidays.get(date: DateYMD)

// 指定した期間の情報を取得する
JapaneseHolidays.get(start: DateYMD, end: DateYMD)
JapaneseHolidays.get(start: DateYMD, end: DateYMD, options: DateOptions)
  • DateOptionsのholidaystrueに設定すると、休日のみを抽出します。
    • DateOptionsを指定しつつ1日だけを抽出したい場合はstartendに同じ値を設定してください。
  • 返値は配列で、各オブジェクトには次のプロパティが含まれます。
    • date: { year: number, month: number, day: number }取得した日付です。
    • kind: string?休日の種別です。
      • null非休日
      • "national"国民の休日
      • "substitute"振替休日
      • "holiday"それ以外の休日
    • possibility: string休日の可能性です。
      • "no"非休日
      • "yes"休日
      • "maybe"休日 (未確定)
    • name: string?国民の休日に関する法律で定められた休日の名称です。
    • description: string?国民の休日に関する法律で定められた休日の概要です。
    • あくまで国民の休日を判定するので、土曜日と日曜日は休日とは扱われません。
有効化を待ちたい場合

window.addEventListener()で待つことができます。 前処理に時間がかかるとイベント発火後にイベントを待機することになって正しく検知できないので、すでにJapaneseHolidaysオブジェクトが存在するかどうかを確認することをおすすめします。

function myCallback() {
    // やりたい処理を書く
}

if (JapaneseHolidays) {
    myCallback()
} else {
    window.addEventListener('JapaneseHolidaysLoaded', myCallback)
}
Promiseを使えば自分で定義したasync関数の中で待つこともできます。
async function myFunction() {
    const awaiter = new Promise(resolve => {
        if (JapaneseHolidays) {
            resolve()
        } else {
            window.addEventListener('JapaneseHolidaysLoaded', resolve)
        }
    })
    await awaiter()
    // やりたい処理を書く
}
使用上の注意
  • このライブラリとCDNはホビー目的を想定しています
    • 無停止稼働や内容の正確さについて保証しません
    • 絶対に業務ロジックに組み込まないでください。一切の責任を負いません
  • 未発表の休日も現行法に準拠して取得できます
    • 内閣府による祝日の発表がすぐに反映されることを期待しないでください
    • 再来年以降は未確定フラグ付きで返却します
🆙 最近のアップデート
  • 内閣府発表の2027年の祝日に対応(v0.1.2, 2026-02-02)
  • オプション引数をサポート(v0.1.1, 2026-01-31)
  • 初版リリース(v0.1.0, 2026-01-30)