祝日テーブル仕様

みなさま、こんにちは、こんばんわ!

この記事は、私の作成したカレンダーアプリ(またはカレンダー機能)で使っている祝日テーブルについて解説します。

まず、祝日テーブルとは、カレンダークラスで使われる、祝日を決定する為のテーブルです。
私が作成した、それぞれのアプリのカレンダークラスで共通して使えるように設計しています。

//############################################################
// calendar用 祝日テーブル
// フォーマット形式
// 1 ... 月
// 2 ... 日
// 3 ... 週番号
// 4 ... 曜日 (0-日曜日 ~ 6-土曜日)
// 5 ... 制定開始年(西暦)
// 6 ... 制定終了年(西暦)
// 7 ... 祝日名(日本語)
// 8 ... 祝日名(英語)
//
// 国民の休日(2つの祝日に挟まれた平日)
// 振替休日(祝日が日曜日に当たるときは、その後に迎える最初の平日)
// 春分の日、秋分の日は、1873年~2299年対応
//############################################################
0, 1, 0, 0, 1973, 9999, "振替休日", "Substitute Holiday"
0, 2, 0, 0, 1986, 9999, "国民の休日", "National Holiday"
1, 0, 2, 1, 2000, 9999, "成人の日", "Coming of Age Day"
1, 1, 0, 0, 1949, 9999, "元旦", "New Year's Day"
1, 3, 0, 0, 1873, 1947, "元始祭", "Festival of Origins"
1, 5, 0, 0, 1873, 1947, "新年宴会", "New Year Banquet"
1, 15, 0, 0, 1949, 1999, "成人の日", "Coming of Age Day"
1, 30, 0, 0, 1873, 1912, "孝明天皇祭", "Emperor's Festival (Koumei)"
2, 11, 0, 0, 1873, 1966, "紀元節", "Epoch"
2, 11, 0, 0, 1967, 9999, "建国記念の日", "National Foundation Day"
2, 23, 0, 0, 2020, 9999, "天皇誕生日", "Emperor's Birthday (Hironomiya)"
3, 0, 0, 0, 1879, 1948, "春季皇霊祭", "Imperial Ceremony of Ancestor Worship Formerly Held on the Vernal Equinox"
3, 0, 0, 0, 1949, 2100, "春分の日", "Varnal Equinox"
4, 3, 0, 0, 1873, 1947, "神武天皇祭", "Emperor's Festival (Jinmu)"
4, 29, 0, 0, 1927, 1948, "天長節", "Emperor's birthday (Hirohito)"
4, 29, 0, 0, 1949, 1988, "天皇誕生日", "Emperor's Birthday (Hirohito)"
4, 29, 0, 0, 1989, 2006, "みどりの日", "Greenery Day"
4, 29, 0, 0, 2007, 9999, "昭和の日", "Showa Day"
5, 1, 0, 0, 2019, 2019, "新天皇即位日", "Emperor's Coronation Day"
5, 3, 0, 0, 1949, 9999, "憲法記念日", "Constitution Memorial Day"
5, 4, 0, 0, 2007, 9999, "みどりの日", "Greenery Day"
5, 5, 0, 0, 1949, 9999, "こどもの日", "Children's Day"
7, 0, 3, 1, 2003, 2019, "海の日", "Marine Day"
7, 0, 3, 1, 2021, 9999, "海の日", "Marine Day"
7, 20, 0, 0, 1996, 2002, "海の日", "Marine Day"
7, 23, 0, 0, 2020, 2020, "海の日", "Marine Day"
7, 24, 0, 0, 2020, 2020, "スポーツの日", "Sports Day"
7, 30, 0, 0, 1913, 1926, "明治天皇祭", "Emperor's Festival (Meiji)"
8, 10, 0, 0, 2020, 2020, "山の日", "Mountain Day"
8, 11, 0, 0, 2016, 2019, "山の日", "Mountain Day"
8, 11, 0, 0, 2021, 9999, "山の日", "Mountain Day"
8, 31, 0, 0, 1913, 1926, "天長節", "Emperor's birthday (Yoshihito)"
9, 0, 0, 0, 1878, 1947, "秋季皇霊祭", "Imperial Ceremony of Ancestor Worship Formerly Held on the Autumnal Equinox"
9, 0, 0, 0, 1948, 2100, "秋分の日", "Autumnal Equinox"
9, 0, 3, 1, 2003, 9999, "敬老の日", "Respect for the Aged Day"
9, 15, 0, 0, 1967, 2002, "敬老の日", "Respect for the Aged Day"
9, 17, 0, 0, 1873, 1878, "神嘗祭", "Kan'name Festival"
10, 0, 2, 1, 2000, 2019, "体育の日", "Health and Sports Day"
10, 0, 2, 1, 2021, 9999, "スポーツの日", "Sports Day"
10, 10, 0, 0, 1966, 1999, "体育の日", "Health and Sports Day"
10, 17, 0, 0, 1879, 1947, "神嘗祭", "Kan'name Festival"
10, 22, 0, 0, 2019, 2019, "即位礼正殿の儀", "Ceremony of Enthronement"
10, 31, 0, 0, 1913, 1926, "天長節祝日", "Holiday of Emperor's birthday"
11, 3, 0, 0, 1873, 1911, "天長節", "Emperor's birthday (Mutuhito)"
11, 3, 0, 0, 1927, 1947, "明治節", "Meiji"
11, 3, 0, 0, 1948, 9999, "文化の日", "National Culture Day"
11, 10, 0, 0, 1915, 1915, "即位の礼", "Ceremony of Accession"
11, 10, 0, 0, 1928, 1928, "即位の礼", "Ceremony of Accession"
11, 14, 0, 0, 1915, 1915, "大嘗祭", "Daijo Fastival"
11, 14, 0, 0, 1928, 1928, "大嘗祭", "Daijo Fastival"
11, 16, 0, 0, 1915, 1915, "大饗第1日", "Big Banquet 1st Day"
11, 16, 0, 0, 1928, 1928, "大饗第1日", "Big Banquet 1st Day"
11, 23, 0, 0, 1873, 1947, "新嘗祭", "Sinjo Fastival"
11, 23, 0, 0, 1948, 9999, "勤労感謝の日", "Labor Thanksgiving Day"
12, 23, 0, 0, 1989, 2018, "天皇誕生日", "Emperor's Birthday (Akihito)"
12, 25, 0, 0, 1927, 1947, "大正天皇祭", "Emperor's Festival (Taisho)"

上記は、現在設定している祝日テーブルです。

以下に、祝日の種類を説明します。

・固定祝日
1, 1, 0, 0, 1949, 9999, "元旦", "New Year's Day"

元旦、建国記念日、文化の日などの、日付が固定の祝日です。

このレコードの場合は
 1月, 1日, 週番号なし, 指定曜日なし, 適用開始1949年, 適用終了9999年, 祝日名(日本語), 祝日名(英語)
となります。


・移動祝日
1, 0, 2, 1, 2000, 9999, "成人の日", "Coming of Age Day"

成人の日、スポーツの日、敬老の日などの、「×月、第△、〇曜日」の形で、毎年の日付が移動する祝日です。
ハッピーマンデー制度の祝日ですね。

このレコードの場合は
 1月, 指定日なし, 第2週, 月曜日, 適用開始2000年, 適用終了9999年, 祝日名(日本語), 祝日名(英語)
となります。


・天文観測により決定される祝日
3, 0, 0, 0, 1949, 2299, "春分の日", "Varnal Equinox"

現在は「春分の日」と「秋分の日」がこれに当たります。
wikipedia によると
  ・祝日法により天文観測による春分が起こる「春分日」が選定され休日とされる。
  ・祝日法により天文観測による秋分が起こる「秋分日」が選定され休日とされる。
となっており、天文観測による特殊な計算で選定される祝日です。

このレコードの場合は
 3月, 指定日なし, 週番号なし, 指定曜日なし, 適用開始1949年, 適用終了2299年, 祝日名(日本語), 祝日名(英語)
となります。


・特殊祝日
0, 1, 0, 0, 1973, 9999, "振替休日", "Substitute Holiday"
0, 2, 0, 0, 1986, 9999, "国民の休日", "National Holiday"

祝日が日曜日だったらなどの条件をもつ祝日です。

wikipedia によると
  ・「振替休日」… 祝日が他の休日(日曜日など)と重なった場合、月曜日以降を休日にして休日が減らないようにする制度。
  ・「国民の休日」… 前後が祝日である平日は、国民の休日となり、休日となる。
となってます。

この2行のレコードは、月(1カラム)のカラムが 0 になっていますが、月としては扱いません。
日(2カラム)のカラムは、それぞれ 1, 2 となってますが、日ではなく、あくまで便宜上付けているに過ぎません。


ええ…

解説というほどのページではありませんね…w

一応、これにて終了、ということにします^^;;

お気づきの点などありましたら、コメント欄に記入してください。

最後まで読んでいただき、ありがとうございます。


祝日テーブル仕様” に対して2件のコメントがあります。

  1. ピンバック: JS Calendar | XERO System

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次の記事

JS Calendar