現行の『祝日法』で定められている祝日等の情報をまとめています。
カレンダー処理などを構築する際の参考にしてください。
平成15年より施行される改正祝日法には、あまり世間一般には知れ渡っていない隠れた
祝日(休日)が存在します。詳細はこちらをご覧下さい。
祝日の判定・祝日一覧シートの作成などは、『kt関数アドイン』『kt祝日一覧表示ツール』を
利用すると簡単に行なうことが出来ます。
VBA(VB)用の祝日判定ロジックを公開しています。
※ [昭和の日]改正記録、与党/秋(11月)のGW構想 追跡情報ページ はこちら です。
「9月の国民の休日」を追跡した記録は こちら です。
[ この場所へのリンク ]
(参考ホームページ)
『祝日法』の条文(昭和の日 改正条文)を整理すると、現在の【祝日】は下記のように定められています。 祝 日 名 日 付 制定(公布)日 施 行 日 開 始 年 元 日 1月1日 S23(1948)/ 7/20 ← 1949〜 成人の日 1月15日 S23(1948)/ 7/20 ← 1949〜 1月第2月曜 H10(1998)/10/21 H12(2000)/1/1 2000〜 建国記念の日 2月11日 S41(1966)/ 6/25 ← 1967〜 春分の日 春分日 S23(1948)/ 7/20 ← 1949〜 天皇誕生日 (昭和天皇)
”みどりの日”に改称
”昭和の日”に改称4月29日 S23(1948)/ 7/20 ← 1949〜 H1(1989)/ 2/17 ← 1989〜 H17(2005)/ 5/20 H19(2007)/1/1 2007〜 憲法記念日 5月 3日 S23(1948)/ 7/20 ← 1949〜 国民の休日(注1)
”みどりの日”に改称5月 4日 S60(1985)/12/27 ← 1986〜 H17(2005)/ 5/20 H19(2007)/1/1 2007〜 こどもの日 5月 5日 S23(1948)/ 7/20 ← 1949〜 海の日 7月20日 H7(1995)/ 3/ 8 H8(1996)/1/1 1996〜 7月第3月曜日 H13(2001)/6/22 H15(2003)/1/1 2003〜 敬老の日 9月15日 S41(1966)/ 6/25 ← 1966〜 9月第3月曜日 H13(2001)/6/22 H15(2003)/1/1 2003〜 国民の休日(注2) (注2)参照 H13(2001)/6/22 H15(2003)/1/1 2003〜 秋分の日 秋分日 S23(1948)/ 7/20 ← 1948〜 体育の日 10月10日 S41(1966)/ 6/25 ← 1966〜 10月第2月曜 H10(1998)/10/21 H12(2000)/1/1 2000〜 文化の日 11月 3日 S23(1948)/ 7/20 ← 1948〜 勤労感謝の日 11月23日 S23(1948)/ 7/20 ← 1948〜 天皇誕生日 12月23日 H1(1989)/ 2/17 ← 1989〜
[ この場所へのリンク ]
祝 日 名 英語表記 (主に 在サンフランシスコ日本総領事館 HP を参考)
※ 祝日の所管官庁である内閣府は ”英語名” の決定に関しては一切
関与していません。外務省の一部である総領事館の文書という事で、
これならば、公式に準ずる名称と考えて良いと判断し参考にしました。元 日 New Year's Day 成人の日 Coming of Age Day 建国記念の日 National Foundation Day 春分の日 Vernal Equinox Day 昭和の日 Showa Day みどりの日 Greenery Day 憲法記念日 Constitution Memorial Day こどもの日 Children's Day 海の日 Marine Day 敬老の日 Respect for the Aged Day 秋分の日 Autumnal Equinox Day 体育の日 Health and Sports Day 文化の日 National Culture Day 勤労感謝の日 Labor Thanksgiving Day 天皇誕生日 Emperor's Birthday 国民の休日 Citizen's Holiday / Holiday by law / National Holiday 振替休日 holiday in lieu / substitute holiday ※ 皇室関連の4休日については、宮内庁に確認しました( 2004/9/24 )
[ HIH ] 《略》 His (Her) Imperial Highness : 殿下(妃殿下)皇太子明仁親王の結婚の儀 The Rite of Wedding of HIH Crown Prince Akihito 昭和天皇の大喪の礼 The Funeral Ceremony of Emperor Showa. (←末尾 ピリオド) 即位礼 正殿の儀 The Ceremony of the Enthronement
of His Majesty the Emperor (at the Seiden)皇太子徳仁親王の結婚の儀 The Rite of Wedding of HIH Crown Prince Naruhito
※振替休日 S48(1973)/4/12制定&施行
”祝日が日曜にあたるときは、その翌日を休日”
1973/2/11(日) →振替休日なし 1973/4/29(日),9/23(日) →振替休日あり
改正:H17(2005)/5/20制定 , H19(2007)/1/1施行
”祝日が日曜にあたるときは、その日後において、
その日に最も近い「国民の祝日」でない日を休日”
5/3(日) → 5/6(水) が振替休日(追加)
5/4(日) → 5/6(火) が振替休日(追加)
5/5(日) → 5/6(月) が振替休日(従来通り)
※その他の休日 ・皇太子明仁親王の結婚の儀 昭和34年 4月10日 (1959年) ・昭和天皇の大喪の礼 平成元年 2月24日 (1989年) ・即位礼正殿の儀 平成 2年11月12日 (1990年) ・皇太子徳仁親王の結婚の儀 平成 5年 6月 9日 (1993年)
(補) 「明治改元の布告」の詔書に記されている日付は【明治元年九月八日】になっていますが、「改暦の布告」が
※改 元 (西暦変換) 明治:M1. 9. 8 〜 M45. 7.29(1868. 9. 8 〜 1912. 7.29)明治 + 1867明治:M1.10.23 〜 M45. 7.29 (1868.10.23 〜 1912. 7.29) 明治 + 1867 改元の布告 大正:T1. 7.30 〜 T15.12.24 (1912. 7.30 〜 1926.12.24) 大正 + 1911 改元の布告 昭和:S1.12.25 〜 S64. 1. 7 (1926.12.25 〜 1989. 1. 7) 昭和 + 1925 改元の布告 平成:H1. 1. 8 〜 (1989. 1. 8 〜 ) 平成 + 1988 元号法 , 政令
発せられたのは【明治五年】です。即ち、それ以前の日付は旧暦日付で記されている訳です。
明治元(1868)年九月八日を新暦に直すと【1868年10月23日】になります。
歴史について語るならば「明治元(1868)年九月八日」と表現するべきでしょうが、コンピューター等において期間
を計算する場合を考えれば、新暦の基準でそのまま遡った「1868年10月23日」を使わないと正しい期間は得ら
れません。 (2002/7/4 追記)
※【国民の休日の適用】
--- 国民の祝日に関する法律 ---
第3条 3項(S60(1985)/12/27施行)
その前日及び翌日が「国民の祝日」である日(日曜日にあたる日
及び前項に規定する休日にあたる日を除く。)は、休日とする。
改正:H17(2005)/5/20制定 , H19(2007)/1/1施行
その前日及び翌日が「国民の祝日」である日(「国民の祝日」で
ない日に限る)は、休日とする。
上記の「第3条3項」に該当する日付は、現在2つあります。
・ひとつは、「憲法記念日」と「こどもの日」に挟まれる『5月4日』(2006年まで)
・もうひとつは、平成15年より施行された改正祝日法によって発生する事になる
「敬老の日」と「秋分の日」に挟まれる日付
(注1) 5月4日の扱いは下記のようになります(2006年まで)。
日曜日の場合は、只の日曜日(≠祝日)
月曜日の場合は憲法記念日の振替休日
火〜土曜日の場合に「国民の休日」
(2007年以降は「みどりの日」で祝日に固定されます)
[ この場所へのリンク ]
(注2) 平成15年施行の改正祝日法により9月にも「国民の休日」は現れます。
( 9月の国民の休日 記載HPリンク集 )
「敬老の日」を『9月第3月曜日』にする改正により、「敬老の日」と「秋分の日」が
【1日おいて並ぶ】年が現れます。つまり、「5月4日」を祝日(休日?)にした条項の
適用で敬老の日と秋分の日に挟まれた、この日も祝日(休日?)となります( 算出式 )。
2008年 9月 日 月 火 水 木 金 土 14 15 16 17 18 19 20 敬老の日:15日 21 22 23 24 25 26 27 秋分の日:23日 2009年 9月 日 月 火 水 木 金 土 20 21 22 23 24 25 26 敬老の日:21日, 秋分の日:23日 2010年 9月 日 月 火 水 木 金 土 19 20 21 22 23 24 25 敬老の日:20日, 秋分の日:23日
2100年まででは、
2009, 2015, 2026, 2032, 2037, 2043, 2049
2054, 2060, 2071, 2077, 2088, 2094, 2099
の年が対象になります。ただし、正式には「秋分の日」は前年の官報で公示される事
によって定まる祝日ですから、この9月の「国民の休日」も官報の公示をもって
正式に定まると解釈するべきでしょう。
※ H20/2/1 本日公示された 官報 により、2009年の 「秋分の日」 が 9月23日 に
確定しました。これにより、かねてより アナウンス してきた 『9月の国民の休日(9月
22日)』 も確定しました。 \(^o^)/
祝日法改正(海の日/敬老の日ハッピーマンデー化)の内容はこちらです。第3条3項に
関する記述がありませんから、上記の9月の「国民の休日」も有効ということです。
「海の日」と「敬老の日」を『第3月曜日』にする法案は、2001年6月15日に可決成立
(公布は2001年6月22日)。
(補)『秋分の日』が第3火曜日にあたる年には【4連休】となります。
2100年まででは、2020/2048/2065/2076/2082/2093年で
『19(土),20(日),21(敬老の日),22(秋分の日)』
と並びます。
[ この場所へのリンク ]
『春分の日/秋分の日』は官報に公示される事によって初めて正式に定められる祝日です。
したがって、未来の『春分の日/秋分の日』は、あくまで計算で求めた天文学上の日付という
扱いになります。天文学上の春分日/秋分日は下記の簡易計算式で求める事ができます。
(「春分/秋分」以外の[二十四節気]日付も求められる略算式はこちらです)
春分日の移り変わり / 秋分日の移り変わり (二十四節気略算式 検証ブックより)
春分/秋分日リスト(1950〜2050年)
出典:恒星社厚生閣 刊
海上保安庁水路部「暦計算研究会」編 『新こよみ便利帳』
「新こよみ便利帳」は一般の書店には並んでいません(注文になります)。
早く手に入れたい人は『ヤマト ブックサービス』がお薦め(2〜3日で届きます)。
上記の式の各係数の意味を知りたい方は、こちらのHPで詳しく説明されています。
『暦と天文の雑学』
[ この場所へのリンク ]
(補足) 2002/3/28追記(3/28に海上保安庁水路部「暦算担当官」に確認しました)
確認時のメールでのやりとりはこちら。
上記の式で1851〜1979年の範囲では[(年−1983)÷4]となっていますが、ガウス記号
本来の意味からすると[(年−1980)÷4]となります。この相違は下記の理由に拠るものです。
ガウス記号は『その値を越えない最大の整数値』という意味です。したがって、正数の場合
には【単に小数部を切り捨てた値】ですが、負数の場合には異なりますので注意してください。
[−8.4]→ −9 [8.4]→ 8
FortranまたはC系の言語での『Int関数』は符号に関係なく【小数部を切り捨てた整数部】
という機能ですが、VB(VBA)では
Fix関数‥‥‥符号に関係なく【小数部を切り捨てた整数部】 Fix(-8.4)→−8
Int関数‥‥‥『その値を越えない最大の整数値』 Int(-8.4)→−9
という機能になります。
上記の式で『1851〜1979年』の範囲が[(年−1983)÷4]となっているのは、
Fortran/C等のInt関数でガウス記号の意味を実現する
為に行なった補正によるものです。
したがって、VB(VBA)で上記の式のまま使う場合には『Fix関数』を使ってください。
尚、VB(VBA)で『Int関数』を使えば、
『1851〜1979年』の範囲も 『 Int((年−1980)÷4) 』
となりますので、全ての期間で共通になります。
【 春分/秋分日の移り変わり ( 日付リスト ) 】
[ この場所へのリンク ]
日付Xを与えられて、この日付Xが『敬老の日と秋分の日に挟まれた祝日』かどうかの判定は
(1) 「日付X」の年 >= 2003 & 月 = 9
(2) 「日付X」の前日が『第3月曜日』‥‥‥敬老の日
(3) 〃 の翌日が『秋分の日』
です。(2)については、「ある日付を渡して第3月曜日か?」を判定する関数などが用意されて
いれば、それを利用すれば済みますが、無い場合は下記のようにします。
(2-1) 「日付X」は『火曜日』(「日付X」の前日は『月曜日』と同値)
(2-2) 「日付X」の前日は『第3』
ここで、【日付Xは第3?】とは出来ないですから注意して下さい。
何故なら『第3月曜日』の翌日は『第3火曜日 または 第4火曜日』ですから。
『第3』の判定は下記の式で求まります。
If (Day(日付) >= 15) And (Day(日付) <= 21) Then
これを数式化すると、
If ((Int((Day(日付) - 1) / 7) + 1) = 3) Then
または、If ((((Day(日付) - 1) \ 7) + 1) = 3) Then
になります。
「秋分の日」は前述の式で求まりますので、まとめると
If (Year(日付X) >= 2003) And _
(Month(日付X) = 9) And _
(Weekday(日付X) = vbTuesday) And _
((Int((Day(日付X - 1) - 1) / 7) + 1) = 3) And _
((Day(日付X) + 1) = 式1) Then
となります。
--- [式1]の内容(1980年〜2099年) ---
Int(23.2488 + 0.242194 * (Year(日付X) - 1980) - Int((Year(日付X) - 1980) / 4))
ただ、上のように全ての条件をひとつのIF文で処理するのは、非常に無駄なことです。
例えば、9月以外で3行目以降の判定は無意味ですよね。IF文をネストさせて、その時点で
必要な判定のみに分けた方が処理時間の為には有効です。
下記は出来るだけ無駄を省いた条件判定の一例です。
Select Case Month(日付X)
:
Case 9
If (Day(日付X) = 15) And _
(Year(日付X) >= 1966) And (Year(日付X) <= 2002) Then
敬老の日
ElseIf (Day(日付X) = 式1) Then
秋分の日
ElseIf (Weekday(日付X) = vbMonday) And (Year(日付X) >= 2003) Then
If ((Int((Day(日付X) - 1) / 7) + 1) = 3) Then
敬老の日
End If
ElseIf (Weekday(日付X) = vbTuesday) And (Year(日付X) >= 2003) Then
If ((Int((Day(日付X - 1) - 1) / 7) + 1) = 3) And (Day(日付X + 1) = 式1) Then
国民の休日
End If
End If
Case 10
:
End Select
(注)「秋分の日」が月/火曜日になる場合もありますから、曜日判定は「秋分の日」判定後に
行なっています。
なお、第3月曜日(15〜21)と秋分の日(22〜24)が重なる事はありません。
「年」判定と「日/曜日」判定を別のIF文に分けると、2003年以降で『第3月曜日=15日』の場合に
【敬老の日】と判断してくれません(2002年以前の条件判定の段階で抜け出す)ので、「年」判定は
And条件にしてあります。
[ この場所へのリンク ]
『9月の国民の休日』の判定条件は
「前日が敬老の日(第3月曜)」&「翌日が秋分の日」
というものですが、2150年までのカレンダーを眺めてみると、もっと単純に
【翌日の「秋分の日」が水曜日】
だけでもOKみたいです。
(理由) 2003年以降で「秋分の日」が[24日]になるのは[2103,2107年]ですが、その年は
各々[月曜,土曜]に当たりますので対象外です。そして、「22〜23の2日前」の日付
は『≦21』ですから、その日は【第3〜】に決定です。従って
2003年以降で「秋分の日」が水曜日ならば、前々日は【第3月曜】で
「敬老の日」に決定となる為、間に挟まる日付は「国民の休日」
と判断できます。
「9月の国民の休日」には第3or第4火曜日のケースがありますが、「秋分の日」は
22〜24日の範囲になるので「第4〜」固定である為、曜日だけの判定でOKです。
上に例示したコードは下記のように簡素化できることになります。
ElseIf (Year(日付X) >= 2003) And _
(Weekday(日付X + 1) = vbWednesday) And _
(Day(日付X + 1) = 式1:秋分日) Then
国民の休日
End If
この式は「ある日付を渡して、その日は国民の休日か?」という見方の算出式ですが、逆に
「ある年を渡して、その年の国民の休日は何日か?」という見方の算出式は下記になります。
If (年 >= 2003) Then
If (Weekday( DateSerial( 年, 9, 式1:秋分日 ) ) = vbWednesday ) Then
国民の休日の日付は9月の『 (式1:秋分日) - 1 』日
Else
国民の休日は無し
End If
Else
国民の休日は無し
End If