日本の祝日に関するメモ書き

日本の祝日を出力するJPDateクラス(jcal.rb)を作成する上で調べたことを、忘れないようにメモ書き。

  • リンク先の各サイトの素晴らしく貴重な情報には、とても感謝しています。

カレンダーに関する知識

春分秋分に関する知識

春分の日の計算式 (3月XX日)
1851-1899年通用=int(19.8277+0.242194*(年-1980)-int( (年-1983)/4) )
1900-1979年通用=int(20.8357+0.242194*(年-1980)-int( (年-1983)/4) )
1980-2099年通用=int(20.8431+0.242194*(年-1980)-int( (年-1980)/4) )
2100-2150年通用=int(21.8510+0.242194*(年-1980)-int( (年-1980)/4) )

秋分の日の計算式  (9月XX日)
1851-1899年通用=int(22.2588+0.242194*(年-1980)-int( (年-1983)/4) )
1900-1979年通用=int(23.2588+0.242194*(年-1980)-int( (年-1983)/4) )
1980-2099年通用=int(23.2488+0.242194*(年-1980)-int( (年-1980)/4) )
2100-2150年通用=int(24.2488+0.242194*(年-1980)-int( (年-1980)/4) )

※「春分の日」「秋分の日」の祝日の正式には
  海上保安庁が「官報」に告示することで確定します。
http://hp.vector.co.jp/authors/VA006522/zatugaku/syunbun.txt
 - 1851 - 1899	[19.2811 + 0.242194 * (y - 1980) - [(y - 1983) / 4]]
 + 1851 - 1899	[19.8277 + 0.242194 * (y - 1980) - [(y - 1983) / 4]]

小数点の丸め方

  • 春分秋分を求める数式で、小数点以下を丸める処理を誤ると日付が1日ズレてしまい、ガッカリすることになる。
  • 例えば、以下の数式のint関数は、小数点以下を削除して、整数部分のみをそのまま残す意味で使われている。
1900-1979年通用=int(20.8357+0.242194*(年-1980)-int((年-1983)/4))

int(1.25) = 1
int(1.75) = 1
int(-1.25) = -1
int(-1.75) = -1
  • 一方、表計算アプリのINT関数はマイナスを処理する時、意味が違ってくる。
INT(1.25) = 1
INT(1.75) = 1
INT(-1.25) = -2
INT(-1.75) = -2
  • 表計算アプリで同じ処理をしようとすれば、TRUNC関数(あるいはFIX関数)を使う必要がある。
TRUNC(1.25) = 1
TRUNC(1.75) = 1
TRUNC(-1.25) = -1
TRUNC(-1.75) = -1
  • この違いは何かと言えば、INTは、元の少数を超えない整数に丸める。TRUNCは、少数部分を削除して、整数部分をそのまま残す。
  • 以下のように積み重ねた整数の箱のモデルをイメージすれば、INTは常に箱の底となる整数に丸めるのだ。
|     |
+-----+ +2
|+1.75|
|+1.5 |
|+1.25|
+-----+ +1	<--INT(1.5) <--TRUNC(1.5)
|     |
|     |
|     |
+-----+  0
|     |
|     |
|     |
+-----+ -1	<--TRUNC(1.5)
|-1.25|
|-1.5 |
|-1.75|
+-----+ -2	<--INT(-1.5)
|     |
  • ちなみに、Rubyのceil、floorは、この箱のモデルをイメージすると理解しやすい。
ceil 天井という意味 常に天井の値を取る
floor 床という意味 常に床(底)の値を取る(INTと同等)
to_i to Integerの略 少数を削除して、整数部分をそのまま残す(TRUNCと同等)
-1/4 整数の割り算 = -0.25.floor = -1(整数同士の割り算はfloorされる)
  • ところで、最初の数式に戻って、以下のように変形してみる。
  1900-1979年通用=int(20.8357+0.242194*(年-1980) - int((年 - 1983) / 4))
= 1900-1979年通用=int(20.8357+0.242194*(年-1980) - int((年 - 1980 - 3) / 4))
= 1900-1979年通用=int(20.8357+0.242194*(年-1980) - int((年 - 1980) / 4 - (3 / 4)))
= 1900-1979年通用=int(20.8357+0.242194*(年-1980) - int((年 - 1980) / 4 - 0.75))
  • あれあれ?、元の少数に0.75を引き算して、TRUNCしている!
  • これを先程の箱のモデルに当てはめてみると...
TRUNC(-1.25 - 0.75) = TRUNC(-2   ) = -2
TRUNC(-1.5  - 0.75) = TRUNC(-2.25) = -2
TRUNC(-1.75 - 0.75) = TRUNC(-2.5 ) = -2

INT(-1.25) = -2
INT(-1.5 ) = -2
INT(-1.75) = -2
  • つまり、最初の数式は表計算アプリやRubyなら、以下のように表現できるのだ!
    • INT関数が使える環境なら、1983という半端な数値を使う必要はない。
  int( 20.8357 + 0.242194 * (年 - 1980) - int( (年 - 1983) / 4) )
= INT( 20.8357 + 0.242194 * (年 - 1980) - INT( (年 - 1980) / 4) )
  int( 20.8357 + 0.242194 * (年 - 1980) - int( (年 - 1983) / 4) )
= ( 20.8357 + 0.242194 * (年 - 1980) - ( (年 - 1980) / 4).floor ).floor
= ( 20.8357 + 0.242194 * (年 - 1980) - (年 - 1980) / 4 ).floor

春分秋分を求める数式

  • 以上のことを理解して、春分秋分を求める数式は、以下のように定義できる。
春分の日の計算式(3月XX日のXXを算出する)
1900-2099年: INT(  21.4471 + 0.242377 * (年-1900) - INT( (年-1900)/4 )  )

1851-1899年: INT(  19.8277 + 0.242194 * (年-1980) - INT( (年-1980)/4 )  )
1900-1979年: INT(  20.8357 + 0.242194 * (年-1980) - INT( (年-1980)/4 )  )
1980-2099年: INT(  20.8431 + 0.242194 * (年-1980) - INT( (年-1980)/4 )  )
2100-2150年: INT(  21.8510 + 0.242194 * (年-1980) - INT( (年-1980)/4 )  )
秋分の日の計算式(9月XX日のXXを算出する)
1900-2099年: INT(  23.8896 + 0.242032 * (年-1900) - INT( (年-1900)/4 )  )

1851-1899年: INT(  22.2588 + 0.242194 * (年-1980) - INT( (年-1980)/4 )  )
1900-1979年: INT(  23.2588 + 0.242194 * (年-1980) - INT( (年-1980)/4 )  )
1980-2099年: INT(  23.2488 + 0.242194 * (年-1980) - INT( (年-1980)/4 )  )
2100-2150年: INT(  24.2488 + 0.242194 * (年-1980) - INT( (年-1980)/4 )  )
  • 実際に利用しているRubyコード
  def equinox_day(y, m)
    case y
    when 1851..1899
      dy = y - 1980
      return Date.new(y, m, (19.8277 + 0.242194*dy - dy/4).to_i) if m == 3
      return Date.new(y, m, (22.2588 + 0.242194*dy - dy/4).to_i) if m == 9
    when 1900..2099
      dy = y - 1900
      return Date.new(y, m, (21.4471 + 0.242377*dy - dy/4).to_i) if m == 3
      return Date.new(y, m, (23.8896 + 0.242032*dy - dy/4).to_i) if m == 9
    when 2100..2150
      dy = y - 1980
      return Date.new(y, m, (21.8510 + 0.242194*dy - dy/4).to_i) if m == 3
      return Date.new(y, m, (24.2488 + 0.242194*dy - dy/4).to_i) if m == 9
    end
  end

第n週の月曜日を求める

  • 第1月曜日がいつになるかを考えてみる。
  • その月が何曜日から始まるかで、日付が以下のように決まる。
    • 火曜始まりなら7日
    • 水曜始まりなら6日
    • 木曜始まりなら5日
    • 金曜始まりなら4日
    • 土曜始まりなら3日
    • 日曜始まりなら2日
    • 月曜始まりなら1日
  • 火曜日を先頭に、きれいに並んだ!
  • 曜日とは桁上がりしない7進数なので、7の補数(7 - n)を計算してみる。
    • 火曜始まりなら7 - 7日 = 0
    • 水曜始まりなら7 - 6日 = 1
    • 木曜始まりなら7 - 5日 = 2
    • 金曜始まりなら7 - 4日 = 3
    • 土曜始まりなら7 - 3日 = 4
    • 日曜始まりなら7 - 2日 = 5
    • 月曜始まりなら7 - 1日 = 6
  • この数列は、火曜0始まりのwdayの値だ!
  • ならば、火曜0始まりのwdayを求められれば、第1月曜日は計算できるのだ。
    • 7 - 火曜0始まりのwday = 第1月曜の日
  • 通常のwdayは、日曜0始まりのwdayである。
0 1 2 3 4 5 6
  • 日曜は火曜の2日前なので、常に2日前のwdayを観察すれば、それが火曜0始まりのwdayになるはず。
    • ちなみに、5日後とも考えられるので、5日後のwdayを観察してもOK。
  • 2014年6月は、以下のようなカレンダーである。
      6月 2014
Su Mo Tu We Th Fr Sa
 1  2  3  4  5  6  7
 8  9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
  • 2014/6/1〜7までの日付に、2日前の日付でwdayを求めてみると...
irb(main):026:0> (Date.new(2014,6,1) - 2).wday
=> 5
irb(main):027:0> (Date.new(2014,6,2) - 2).wday
=> 6
irb(main):028:0> (Date.new(2014,6,3) - 2).wday
=> 0
irb(main):029:0> (Date.new(2014,6,4) - 2).wday
=> 1
irb(main):030:0> (Date.new(2014,6,5) - 2).wday
=> 2
irb(main):031:0> (Date.new(2014,6,6) - 2).wday
=> 3
irb(main):032:0> (Date.new(2014,6,7) - 2).wday
=> 4
  • 見事に、火曜0始まりのwdayとなっている!
  • よって、y年m月の第1月曜は、以下の数式で求められる。
7 - (Date.new(y, m) - 2).wday
  • 第2月曜なら、第1月曜に+7で求められる。
  • 第3月曜なら、第1月曜に+14で求められる。
  • では、y年m月の第n月曜を求めてみると...
7 * n - (Date.new(y, m) - 2).wday
  • さらに、「2」の部分を0〜6に変更すれば、第n日曜〜第n土曜まで、簡単に求められるのだ!
  • では、y年m月の第nW曜日を求めてみると...
W=1 W=2 W=3 W=4 W=5 W=6 W=0
7 * n - (Date.new(y, m) - W).wday

祝日・祭日に関する知識

日本の祝日・祭日・休日の遷移

以上の布告・勅令・法律を読み解くと、太陽暦へ改暦以降の日本の祝日は、以下のように遷移してきたと解釈できる。

戦前(明治6年 1873年〜昭和23年 1948年)
変更内容 new 春季皇靈祭 mv 神嘗祭 mv 天長節 new 天長節祝日 mv 天長節
変更内容 new 秋季皇靈祭 mv 孝明天皇明治天皇 new 明治節
変更内容 mv 明治天皇大正天皇祭
施行日西暦 1873/01/04 1873/10/14 1878/06/05 1879/07/05 1912/09/03 1913/07/16 1927/03/03
施行日和暦 明治6年 明治6年 明治11年 明治12年 大正元年 大正2年 昭和2年
1月3日 元始祭 元始祭 元始祭 元始祭 元始祭 元始祭
1月5日 新年宴會 新年宴會 新年宴會 新年宴會 新年宴會 新年宴會
1月29日 神武天皇即位日
1月30日 孝明天皇 孝明天皇 孝明天皇
2月11日 紀元節 紀元節 紀元節 紀元節 紀元節 紀元節
春分 春季皇靈祭 春季皇靈祭 春季皇靈祭 春季皇靈祭 春季皇靈祭
4月3日 神武天皇 神武天皇 神武天皇 神武天皇 神武天皇 神武天皇
4月29日 天長節
7月30日 明治天皇 明治天皇
8月11日
8月31日 天長節 天長節
9月17日 神嘗祭 神嘗祭
秋分 秋季皇靈祭 秋季皇靈祭 秋季皇靈祭 秋季皇靈祭 秋季皇靈祭
10月17日 神嘗祭 神嘗祭 神嘗祭 神嘗祭
10月31日 天長節祝日
11月3日 天長節 天長節 天長節 明治節
11月11日 天長節*1
11月23日 新嘗祭 新嘗祭 新嘗祭 新嘗祭 新嘗祭 新嘗祭
12月25日 大正天皇祭

四方節について

  • 四方節(1月1日)は紀元節天長節明治節とともに四大節の1つだが、
  • 実は法令で定められた休日ではなく、年始の習慣としての休日であった。
  • (現在の1月2日、3日が慣例的に休日となっている扱いと似ている)
戦後(昭和23年 1948年〜)
変更内容 new 建国記念日 new 振替休日 new 国民の休日 mv 天皇誕生日 new 海の日 mv 成人の日 mv 海の日 mv みどりの日 new 山の日
変更内容 new 体育の日 new みどりの日 mv 体育の日 mv 敬老の日 new 昭和の日
変更内容
施行日西暦 1948/07/20 1966/06/25 1973/04/12 1985/12/27 1989/02/17 1996/01/01 2000/01/01 2003/01/01 2007/01/01 2016/01/01
施行日和暦 昭和23年 昭和41年 昭和48年 昭和60年 平成元年 平成8年 平成12年 平成15年 平成19年 平成28年
1月1日 元日 元日 元日 元日 元日 元日 元日 元日 元日 元日
1月第2月曜日 成人の日 成人の日 成人の日 成人の日
1月15日 成人の日 成人の日 成人の日 成人の日 成人の日 成人の日
2月11日 建国記念の日 建国記念の日 建国記念の日 建国記念の日 建国記念の日 建国記念の日 建国記念の日 建国記念の日 建国記念の日
春分 春分の日 春分の日 春分の日 春分の日 春分の日 春分の日 春分の日 春分の日 春分の日 春分の日
4月29日 天皇誕生日 天皇誕生日 天皇誕生日 天皇誕生日 みどりの日 みどりの日 みどりの日 みどりの日 昭和の日 昭和の日
5月3日 憲法記念日 憲法記念日 憲法記念日 憲法記念日 憲法記念日 憲法記念日 憲法記念日 憲法記念日 憲法記念日 憲法記念日
5月4日 みどりの日 みどりの日
5月5日 こどもの日 こどもの日 こどもの日 こどもの日 こどもの日 こどもの日 こどもの日 こどもの日 こどもの日 こどもの日
7月第3月曜日 海の日 海の日 海の日
7月20日 海の日 海の日
8月11日 山の日
9月第3月曜日 敬老の日 敬老の日 敬老の日
9月15日 敬老の日 敬老の日 敬老の日 敬老の日 敬老の日 敬老の日
秋分 秋分の日 秋分の日 秋分の日 秋分の日 秋分の日 秋分の日 秋分の日 秋分の日 秋分の日 秋分の日
10月第2月曜日 体育の日 体育の日 体育の日 体育の日
10月10日 体育の日 体育の日 体育の日 体育の日 体育の日
11月3日 文化の日 文化の日 文化の日 文化の日 文化の日 文化の日 文化の日 文化の日 文化の日 文化の日
11月23日 勤労感謝の日 勤労感謝の日 勤労感謝の日 勤労感謝の日 勤労感謝の日 勤労感謝の日 勤労感謝の日 勤労感謝の日 勤労感謝の日 勤労感謝の日
12月23日 天皇誕生日 天皇誕生日 天皇誕生日 天皇誕生日 天皇誕生日 天皇誕生日
振替休日 振替休日 振替休日 振替休日 振替休日 振替休日 振替休日 振替休日 振替休日
国民の休日 国民の休日 国民の休日 国民の休日 国民の休日 国民の休日 国民の休日 国民の休日
臨時の祝日
大正 4年 1915年11月10日 即位ノ礼
大正 4年 1915年11月14日 大嘗祭
大正 4年 1915年11月16日 即位礼及大嘗祭後大饗第一日
昭和 3年 1928年11月10日 即位ノ礼
昭和 3年 1928年11月14日 大嘗祭
昭和 3年 1928年11月16日 即位礼及大嘗祭後大饗第一日
昭和34年 1959年 4月10日 皇太子明仁親王の結婚の儀
平成元年 1989年 2月24日 昭和天皇大喪の礼
平成 2年 1990年11月12日 即位礼正殿の儀
平成 5年 1993年 6月 9日 皇太子徳仁親王結婚の儀

祝日を定義したRubyコード

require 'date'

# 日本の太陽暦の始まり
# 明治5年11月9日・1872年12月9日施行 太政官布告第337号 改暦ノ布告
# 「今般太陰&#26310;ヲ廢シ太陽&#26310;御頒行相成候ニ付來ル12月3日ヲ以テ明治6年1月1日ト被定候事」
#    太陰暦            太陽暦            西暦
#   明治5年12月 2日                     1872年12月31日    太陰暦ここまで
#   明治5年12月 3日    明治6年 1月 1日    1873年 1月 1日    太陽暦ここから
# JPDateクラスは、太陽暦 明治6年・1873年1月1日以降の日本の祝日を扱う
class JPDate < Date
  HOLIDAYS = []

  # 以下の法律に準拠する
  # 明治 6年 1873年 1月 4日施行 太政官布告第1号 五節ヲ廃シ祝日ヲ定ム
  HOLIDAYS += [
    {month:1,  day:29,          term:1873..1873, name:'神武天皇即位日'},
  ]

  # 明治 6年 1873年10月14日施行 太政官布告第344号 年中祭日祝日ノ休暇日ヲ定ム
  # 明治11年 1878年 6月 5日施行 太政官布告第 23号 年中祭日祝日ノ休暇日ヲ定ム(改正)
  # 明治12年 1879年 7月 5日施行 太政官布告第 27号 年中祭日祝日ノ休暇日ヲ定ム(改正)
  HOLIDAYS += [
    {month:1,  day:3,           term:1874..1912, name:'元始祭'},
    {month:1,  day:5,           term:1874..1912, name:'新年宴會'},
    {month:1,  day:30,          term:1874..1912, name:'孝明天皇祭'},
    {month:2,  day:11,          term:1874..1912, name:'紀元節'},
    {month:3,  day:'spring_day',term:1879..1912, name:'春季皇靈祭'},# 1878年6月5日追加
    {month:4,  day:3,           term:1874..1912, name:'神武天皇祭'},
    {month:9,  day:'autumn_day',term:1878..1911, name:'秋季皇靈祭'},# 1878年6月5日追加
    {month:9,  day:17,          term:1874..1878, name:'神嘗祭'},
    {month:10, day:17,          term:1879..1911, name:'神嘗祭'},   # 1879年7月5日修正
    {month:11, day:3,           term:1873..1911, name:'天長節'},
    {month:11, day:23,          term:1873..1911, name:'新嘗祭'},
  ]

  # 四方節について
  # 四方節(1月1日)は紀元節・天長節・明治節とともに四大節の1つだが
  # 実は法令で定められた休日ではなく、年始の習慣としての休日であった
  # (現在の1月2日、3日が慣例的に休日となっている扱いと似ている)

  # 大正元年 1912年 9月 4日施行 勅令第 19号 休日ニ關スル件
  # 大正 2年 1913年 7月16日施行 勅令第259号 休日ニ關スル件(改正)
  # 昭和 2年 1927年 3月 4日施行 勅令第 25号 休日ニ關スル件(改正)
  HOLIDAYS += [
    {month:1,  day:3,           term:1913..1948, name:'元始祭'},
    {month:1,  day:5,           term:1913..1948, name:'新年宴會'},
    {month:2,  day:11,          term:1913..1948, name:'紀元節'},
    {month:3,  day:'spring_day',term:1913..1948, name:'春季皇靈祭'},
    {month:4,  day:3,           term:1913..1948, name:'神武天皇祭'},
    {month:4,  day:29,          term:1927..1948, name:'天長節'},   # 1927年3月4日改正
    {month:7,  day:30,          term:1913..1926, name:'明治天皇祭'},
    {month:8,  day:31,          term:1913..1926, name:'天長節'},
    {month:9,  day:'autumn_day',term:1912..1947, name:'秋季皇靈祭'},
    {month:10, day:17,          term:1912..1947, name:'神嘗祭'},
    {month:10, day:31,          term:1913..1926, name:'天長節祝日'},# 1913年7月16日改正
    {month:11, day:3,           term:1927..1947, name:'明治節'},   # 1927年3月4日改正
    {month:11, day:23,          term:1912..1947, name:'新嘗祭'},
    {month:12, day:25,          term:1927..1947, name:'大正天皇際'},# 1927年3月4日改正
  ]

  # 昭和23年 1948年 7月20日公布・施行 法律第178号 国民の祝日に関する法律
  # 昭和41年 1966年 6月25日公布・施行 法律第 86号 国民の祝日に関する法律(改正)
  # 昭和48年 1973年 4月12日公布・施行 法律第 10号 国民の祝日に関する法律(改正)
  # 昭和60年 1985年12月27日公布・施行 法律第103号 国民の祝日に関する法律(改正)
  # 平成元年 1989年 2月17日公布・施行 法律第  5号 国民の祝日に関する法律(改正)
  # 平成 7年 1995年 3月 8日公布・平成 8年 1996年1月1日施行 法律第 22号 国民の祝日に関する法律(改正)
  # 平成10年 1998年10月21日公布・平成12年 2000年1月1日施行 法律第141号 国民の祝日に関する法律(改正)
  # 平成13年 2001年 6月22日公布・平成15年 2003年1月1日施行 法律第 59号 国民の祝日に関する法律(改正)
  # 平成17年 2005年 5月20日公布・平成19年 2007年1月1日施行 法律第 43号 国民の祝日に関する法律(改正)
  # 平成26年 2014年 5月30日公布・平成28年 2016年1月1日施行 法律第 43号 国民の祝日に関する法律(改正)
  HOLIDAYS += [
    {month:1,  day:1,           term:1949..9999, name:'元旦'},
    {month:1,  day:15,          term:1949..1999, name:'成人の日'},
    {month:1,  day:'monday 2',  term:2000..9999, name:'成人の日'},
    {month:2,  day:11,          term:1967..9999, name:'建国記念日'},
    {month:3,  day:'spring_day',term:1949..2099, name:'春分の日'},
    {month:4,  day:29,          term:1949..1988, name:'天皇誕生日'},
    {month:4,  day:29,          term:1989..2006, name:'みどりの日'},
    {month:4,  day:29,          term:2007..9999, name:'昭和の日'},
    {month:5,  day:3 ,          term:1949..9999, name:'憲法記念日'},
    {month:5,  day:4 ,          term:2007..9999, name:'みどりの日'},
    {month:5,  day:5 ,          term:1949..9999, name:'こどもの日'},
    {month:7,  day:20,          term:1996..2002, name:'海の日'},
    {month:7,  day:'monday 3',  term:2003..9999, name:'海の日'},
    {month:8,  day:11,          term:2016..9999, name:'山の日'},
    {month:9,  day:15,          term:1966..2002, name:'敬老の日'},
    {month:9,  day:'monday 3',  term:2003..9999, name:'敬老の日'},
    {month:9,  day:'autumn_day',term:1948..2099, name:'秋分の日'},
    {month:10, day:10,          term:1966..1999, name:'体育の日'},
    {month:10, day:'monday 2',  term:2000..9999, name:'体育の日'},
    {month:11, day:3,           term:1948..9999, name:'文化の日'},
    {month:11, day:23,          term:1948..9999, name:'勤労感謝の日'},
    {month:12, day:23,          term:1989..9999, name:'天皇誕生日'},
  ]
  SUBSTITUTE_HOLIDAY_START = Date.new(1973,  4, 12)
  NATIONAL_HOLIDAY_START   = Date.new(1985, 12, 27)

  # 臨時の休日
  # 大正 4年 1915年 9月21日施行 勅令161号 大禮ニ關スル休日ノ件
  # 昭和 3年 1928年 9月 8日施行 勅令226号 大禮ニ關スル休日ノ件
  # 昭和34年 1959年 3月17日施行 法律 16号 皇太子明仁親王の結婚の儀の行われる日を休日とする法律
  # 平成元年 1989年 2月17日施行 法律  4号 昭和天皇の大喪の礼の行われる日を休日とする法律
  # 平成 2年 1990年 6月 1日施行 法律 24号 即位礼正殿の儀の行われる日を休日とする法律
  # 平成 5年 1993年 4月30日施行 法律 32号 皇太子徳仁親王の結婚の儀の行われる日を休日とする法律
  HOLIDAYS += [
    {month:11, day:10,          term:1915..1915, name:'即位ノ礼'},
    {month:11, day:14,          term:1915..1915, name:'大嘗祭'},
    {month:11, day:16,          term:1915..1915, name:'大饗第一日'},
    {month:11, day:10,          term:1928..1928, name:'即位ノ礼'},
    {month:11, day:14,          term:1928..1928, name:'大嘗祭'},
    {month:11, day:16,          term:1928..1928, name:'大饗第一日'},
    {month:4,  day:10,          term:1959..1959, name:'結婚の儀'},
    {month:2,  day:24,          term:1989..1989, name:'大喪の礼'},
    {month:11, day:12,          term:1990..1990, name:'即位の礼'},
    {month:6,  day:9,           term:1993..1993, name:'結婚の儀'},
  ]

...中略...

end # class JPDate

元号について

暦種 年号 西暦
太陰暦 慶応 4年 9月 8日 1868年10月23日
太陰暦 明治元年 9月 8日 1868年10月23日
太陰暦 明治 5年12月 2日 1873年12月31日
太陽暦 明治 6年 1873年 1月 1日
太陽暦 明治45年 1912年 7月30日
太陽暦 大正元年 1912年 7月30日
太陽暦 大正15年 1926年12月25日
太陽暦 昭和元年 1926年12月25日
太陽暦 昭和64年 1989年 1月 7日
太陽暦 平成元年 1989年 1月 8日
  • 1868年10月23日は、慶応 4年であり、明治元年でもある。
  • 1912年 7月30日は、明治45年であり、大正元年でもある。
  • 1926年12月25日は、大正15年であり、昭和元年でもある。
  • 平成の「元号を改める政令」以降、公布の翌日から新しい元号になった。
今後年号ハ御一代一号ニ定メ慶応四年ヲ改テ明治元年ト為ス及詔書 明治元年9月8日 http://dajokan.ndl.go.jp/SearchSys/History.pl?ID=00000763&FLKEY=0008863272951090
朕菲紱ヲ以テ大統ヲ承ケ祖宗ノ靈ニ誥ケテ萬機ノ政ヲ行フ茲ニ先帝ノ定制ニ遵ヒ明治四十五年七月三十日以後ヲ改メテ大正元年ト爲ス主者施行セヨ  御 名 御 璽     明治四十五年七月三十日 大正改元の詔書
朕皇祖皇宗ノ威靈ニ褚リ大統ヲ承ケ萬機ヲ總フ茲ニ定制ニ遵ヒ元號ヲ建テ大正十五年十二月二十五日以後ヲ改メテ昭和元年ト爲ス  御 名 御 璽     大正十五年十二月二十五日 昭和改元の詔書
元号を改める政令 (昭和六十四年一月七日政令第一号)  内閣は、元号法 (昭和五十四年法律第四十三号)第一項 の規定に基づき、この政令を制定する。  元号を平成に改める。    附 則  この政令は、公布の日の翌日から施行する。 元号を改める政令

*1:同年10月14日の太政官布告第344号によって11月3日変更