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)
holidaysをtrueに設定すると、休日のみを抽出します。
startとendに同じ値を設定してください。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)
}
async function myFunction() {
const awaiter = new Promise(resolve => {
if (JapaneseHolidays) {
resolve()
} else {
window.addEventListener('JapaneseHolidaysLoaded', resolve)
}
})
await awaiter()
// やりたい処理を書く
}