JavaScript カレンダー(休日表示付き)
カレンダーに土、日・祝日、および本日表示を行うための JavaScript です。このスクリプトにカレンダー解析スクリプトとCSSを加えることによって、スクリーンショットのような土・日・祝日・本日の装飾を行うことができます。振替休日やハッピーマンデーにも(多分)対応しています。
休日表示をするスクリプトをネットでいくつか見つけたのですが、カレンダー用のテーブルを作成しながら同時に休日を判定するタイプのものが多かったため、一旦マークアップされたカレンダーに対しても利用可能となる、汎用的なスクリプトを作ってみました。
このスクリプトは年月日から土、日・祝日、本日を判定するというシンプルなものです。JavaScript が利用可能であればブログツールやサービスに依存しません。
冒頭に述べた Movable Type 等のカレンダーを解析するスクリプトは別途エントリーする予定です(まとめて書くと収拾がつかなくなるため本エントリーは日付判定用スクリプトの紹介にとどめています)。
スクリプト作成にあたっては下記のサイトを参考にさせて頂きました。ありがとうございました(他にいくつか参考にさせて頂いたのですが失念しました、すいません)。
なお、Movable Type のカレンダープラグインとして、nlog(n) さんの 休日表示カレンダープラグイン2 が有名です(Perl モジュールの Date::Japanese::Holiday が必要です)。ご紹介まで。
1.機能
このスクリプトは与えられた年月日を元に下記のチェックを行います。
- 本日
- 土曜日
- 日曜/祝日(ハッピーマンデー・振替休日含む)
春分の日・秋分の日の算出は1980?2099に対応しています。また国民の祝日に関する法律の一部を改正する法律案により、5月6日が振替休日になるケースも考慮しています。
前後数十年の全ての休日が考慮できているかどうかは定かでありません。不具合ありましたらご連絡ください(ただし遠い過去または未来について考慮する予定はありません)。
2.ダウンロード
下記のリンクをクリックしてダウンロードしてください。
dayChecker.js
dayChecker.js(イギリスの休日表示用)
2006.03.15 Ver 1.00
2006.04.11 Ver 1.00en イギリス版追加
2006.04.11 Ver 1.01 バグ修正
2006.04.15 Ver 1.02/Ver 1.01en バグ修正
2006.04.16 Ver 1.03/Ver 1.02en バグ修正
2006.08.03 Ver 1.04/Ver 1.03en バグ修正
2007.04.21 Ver 1.05 春分の日・秋分の日の振替休日が表示されない不具合修正
2009.02.17 Ver 1.06 シルバーウィーク対応
3.アップロード
ダウンロードしたスクリプトを、Movable Type / Serene Bach の場合は index.html のあるディレクトリにアップロードしてください。
他のブログサービスで利用する場合につきましてはそれぞれのアップロード先に従います。
4.スクリプトのインクルード
スクリプトをHTMLページに読み込ませるため、テンプレート(またはHTML)の <head>~</head> の間に下記の設定を追加します。
<script type="text/javascript" src="http://domain/path/to/dayChecker.js"></script>
src 属性には配置したスクリプトのURLを設定してください(アップロード先が index.html と異なるディレクトリの場合はご注意ください)。またスクリプトは utf-8 で作成しておりますので、ブログの文字コードが異なる場合は、スクリプトの文字コードをエディタ等を用いてブログの文字コードに変更するか、
<script type="text/javascript" src="http://domain/path/to/dayChecker.js" charset="utf-8"></script>
と、青色で示した charset 属性に utf-8 を設定し、追加してください。
5.API
上記の機能を利用する場合、下記のインタフェースを起動してください(それほどたいそうなものではありませんが)。
isHoliday(year, month, day)
- 機能
- 与えられた年月日の日・祝日判定を行います。
- パラメータ
- year - 年(4桁)
- month - 月
- day - 日
- 返却値
- 日・祝日の場合:true
- 日・祝日以外の場合:false
isSaturday(year, month, day)
- 機能
- 与えられた年月日の土曜日判定を行います。
- パラメータ
- year - 年(4桁)
- month - 月
- day - 日
- 返却値
- 土曜日の場合:true
- 土曜日以外の場合:false
isToday(year, month, day)
- 機能
- 与えられた年月日の本日判定を行います。
- パラメータ
- year - 年(4桁)
- month - 月
- day - 日
- 返却値
- 本日の場合:true
- 本日以外の場合:false
setCurrentDate()
- 機能
- この関数を起動した年月日を保持します。他の関数を起動する前にこの関数を必ず起動してください。この年月日が判定基準元の年月日となります。
- パラメータ
- なし
- 返却値
- なし
2006.04.11 追記
イギリス版を追加しました。また日本語版のスクリプトに一部誤りがありましたので修正しました。
2006.08.03 追記
スクリプトで8月・9月の本日表示ができない不具合を対処しました。
2007.04.21 追記
春分の日・秋分の日の振替休日が表示されない不具合を修正しました。