【 2016年9月15日  サイト 移転のお知らせ 】
      AddinBox サイトを [ DION ] から [ さくら インターネット ] へ移転しました。  なお、旧サイト は 2017年10月 まで残します。
      この ページ の 移転先 URL  ⇒⇒  http://addinbox.sakura.ne.jp/holiday_topic.htm  
 

AddinBox(Home)

 
    現行の『祝日法』で定められている祝日等の情報をまとめています。
  カレンダー処理などを構築する際の参考にしてください。
    平成15年より施行される改正祝日法には、あまり世間一般には知れ渡っていない隠れた
  祝日(休日)が存在します。詳細はこちらをご覧下さい。
    祝日の判定・祝日一覧シートの作成などは、『kt関数アドイン』『kt祝日一覧表示ツール』を
  利用すると簡単に行なうことが出来ます。
    VBA(VB)用の祝日判定ロジックを公開しています。

※ 重要 ※
     ・ [ 海の日 ]  ハッピーマンデーを止めて、再び 『7月20日』 に戻す動きがあります (H26/8/1)。
     ・ [ 山の日 ]  祝日法改正案 が 可決/成立しました。2016(H28)年より施行です (H26/5/23)。

     ・ 祝日分散化&ハッピーマンデー廃止法案 の動向にご注意ください( H22/2/14 )。
       上記法案成立時に必要となる 祝日ロジック修正の検討 を始めました( H22/3/11 )。

祝  日  一  覧

【 祝日 一覧 取得ツール 】
  ・ エクセルシート等に貼り付けて利用できる祝日一覧表 および XML定義による祝日一覧表が下記から入手できます。
  ・ Outlook 用の祝日アップデートデータ も下記から取得できます。尚、データのみの提供でインストールはマニュアル
      作業になります。手順はアップデートデータの提供ページに記載してあります。 (2006/1/2)
  ・ JavaScript 1.3 以降では 1970/1/1 以前の日付も扱えるので、制限(1970 〜) を解除します。 (2015/7/11)

  年 〜  年の
    (期間を西暦年[1948〜2050年]で指定)    (2014/5/29 [山の日] 対応済)

  ・ Excel 及び Delphi で作った祝日一覧作成ツールは こちら
  ・ FireFox 3.5/3.6 (2011/3〜6 頃) の JavaScript 不具合による 祝日リスト 作成トラブルの履歴は こちら


[ この場所へのリンク ]
休日の変遷リンク  (参考ホームページ)
  『祝日法』の条文を整理すると、現在の【祝日】は下記のように定められています。

    【 祝日法 改正論議 の 記録 】    ,    『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〜
  山の日 8月 11日 H26(2014)/5/30 H28(2016)/1/1 2016〜
  敬老の日 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
  山の日   Mountain 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年)

海上保安庁 海洋情報部 (旧 水路部)出典:恒星社厚生閣 刊
        海上保安庁水路部「暦計算研究会」編  『新こよみ便利帳』 (絶版)

春分/秋分の計算式
上記の式の各係数の意味を知りたい方は、こちらのHPで詳しく説明されています。
       こよみのページ    『暦と天文の雑学』

[ この場所へのリンク ]
(補足) 2002/3/28追記(3/28に海上保安庁水路部「暦算担当官」に確認しました)
            確認時のメールでのやりとりはこちら

      上記の式で1851〜1979年の範囲では[(年−198)÷4]となっていますが、ガウス記号
      本来の意味からすると[(年−198)÷4]
となります。この相違は下記の理由に拠るものです。

      ガウス記号は『その値を越えない最大の整数値』という意味です。したがって、正数の場合
      には【単に小数部を切り捨てた値】ですが、負数の場合には異なりますので注意してください。
           [−8.4]→ −9        [8.4]→ 8

      FortranまたはC系の言語での『Int関数』は符号に関係なく【小数部を切り捨てた整数部】
      という機能ですが、VB(VBA)では
          Fix関数‥‥‥符号に関係なく【小数部を切り捨てた整数部】 Fix(-8.4)→−8
          Int関数‥‥‥『その値を越えない最大の整数値』                Int(-8.4)→−9
      という機能になります。

      上記の式で『1851〜1979年』の範囲が[(年−198)÷4]となっているのは、
           Fortran/C等のInt関数でガウス記号の意味を実現する
      為に行なった補正によるものです。

      したがって、VB(VBA)で上記の式のまま使う場合には『Fix関数』を使ってください。
      尚、VB(VBA)で『Int関数』を使えば、
       
『1851〜1979年』の範囲も 『 Int((年−198)÷4) 』
      となりますので、全ての期間で共通になります。


【 春分/秋分日の移り変わり ( 日付リスト ) 】




[ この場所へのリンク ]

9月の「国民の休日」の判定方法

日付Xを与えられて、この日付Xが『敬老の日と秋分の日に挟まれた祝日』かどうかの判定は
     (1) 「日付X」の年 >= 2003 & 月 = 9
     (2) 「日付X」の前日が『第3月曜日』‥‥‥敬老の日
     (3)     〃     の翌日が『秋分の日』

です。(2)については、「ある日付を渡して第3月曜日か?」を判定する関数などが用意されて
いれば、それを利用すれば済みますが、無い場合は下記のようにします。
     (2-1) 「日付X」は『火曜日』(「日付X」の前日は『月曜日』と同値)
     (2-2) 「日付X」の前日は『第3』

ここで、【日付Xは第3?】とは出来ないですから注意して下さい。
何故なら『第3月曜日』の翌日は『火曜日 または 火曜日』ですから。

『第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月の「国民の休日」の判定方法2(簡易判定)

『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




角田 桂一 Mail:addinbox@h4.dion.ne.jp CopyRight(C) 2001 Allrights Reserved.