when_exe 0.4.2 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (144) hide show
  1. checksums.yaml +5 -5
  2. data/LICENSE.ja.txt +8 -21
  3. data/LICENSE.txt +5 -27
  4. data/README.md +25 -79
  5. data/bin/.pryrc +9 -0
  6. data/bin/make_ttl.rb +3 -2
  7. data/bin/make_ttl.rb.config +3 -3
  8. data/lib/when_exe.rb +101 -5
  9. data/lib/when_exe/basictypes.rb +47 -16
  10. data/lib/when_exe/calendarnote.rb +27 -18
  11. data/lib/when_exe/calendartypes.rb +12 -50
  12. data/lib/when_exe/coordinates.rb +37 -391
  13. data/lib/when_exe/ephemeris.rb +53 -14
  14. data/lib/when_exe/ephemeris/eclipse.rb +8 -8
  15. data/lib/when_exe/ephemeris/moon.rb +333 -333
  16. data/lib/when_exe/ephemeris/notes.rb +29 -17
  17. data/lib/when_exe/ephemeris/phase_table.rb +825 -0
  18. data/lib/when_exe/ephemeris/term_table.rb +603 -0
  19. data/lib/when_exe/events.rb +1888 -0
  20. data/lib/when_exe/google_api.rb +26 -31
  21. data/lib/when_exe/icalendar.rb +129 -12
  22. data/lib/when_exe/inspect.rb +5 -5
  23. data/lib/when_exe/linkeddata.rb +43 -23
  24. data/lib/when_exe/locales/akt.rb +63 -0
  25. data/lib/when_exe/locales/encoding_conversion.rb +134 -134
  26. data/lib/when_exe/locales/iast.rb +90 -90
  27. data/lib/when_exe/locales/locale.rb +88 -18
  28. data/lib/when_exe/locales/transliteration_table.rb +62 -62
  29. data/lib/when_exe/mini_application.rb +14 -8
  30. data/lib/when_exe/namespace.rb +42 -0
  31. data/lib/when_exe/parts/enumerator.rb +16 -5
  32. data/lib/when_exe/parts/geometric_complex.rb +52 -2
  33. data/lib/when_exe/parts/method_cash.rb +229 -224
  34. data/lib/when_exe/parts/resource.rb +65 -35
  35. data/lib/when_exe/parts/timezone.rb +25 -34
  36. data/lib/when_exe/region/balinese.rb +5 -3
  37. data/lib/when_exe/region/chinese.rb +39 -11
  38. data/lib/when_exe/region/chinese/calendars.rb +1016 -1016
  39. data/lib/when_exe/region/chinese/epochs.rb +7 -7
  40. data/lib/when_exe/region/chinese/notes.rb +3 -3
  41. data/lib/when_exe/region/chinese/twins.rb +134 -11
  42. data/lib/when_exe/region/dee.rb +4 -4
  43. data/lib/when_exe/region/discordian.rb +1 -1
  44. data/lib/when_exe/region/geologicalage.rb +139 -128
  45. data/lib/when_exe/region/hanke_henry.rb +4 -4
  46. data/lib/when_exe/region/indian.rb +77 -8
  47. data/lib/when_exe/region/international_fixed.rb +3 -3
  48. data/lib/when_exe/region/islamic.rb +1 -1
  49. data/lib/when_exe/region/japanese.rb +12 -8
  50. data/lib/when_exe/region/japanese/calendars.rb +397 -397
  51. data/lib/when_exe/region/japanese/eclipses.rb +1194 -1194
  52. data/lib/when_exe/region/japanese/epochs.rb +8 -4
  53. data/lib/when_exe/region/japanese/location.rb +93 -0
  54. data/lib/when_exe/region/japanese/nihon_shoki.rb +70 -70
  55. data/lib/when_exe/region/japanese/notes.rb +57 -18
  56. data/lib/when_exe/region/japanese/residues.rb +33 -11
  57. data/lib/when_exe/region/japanese/twins.rb +27 -14
  58. data/lib/when_exe/region/japanese/weeks.rb +7 -7
  59. data/lib/when_exe/region/korean.rb +384 -384
  60. data/lib/when_exe/region/location.rb +40 -0
  61. data/lib/when_exe/region/martian.rb +1 -1
  62. data/lib/when_exe/region/mayan.rb +2 -2
  63. data/lib/when_exe/region/roman.rb +2 -2
  64. data/lib/when_exe/region/ryukyu.rb +101 -101
  65. data/lib/when_exe/region/saudi_arabian.rb +57 -0
  66. data/lib/when_exe/region/shire.rb +1 -1
  67. data/lib/when_exe/region/world.rb +3 -3
  68. data/lib/when_exe/region/zoroastrian.rb +1 -1
  69. data/lib/when_exe/spatial.rb +611 -0
  70. data/lib/when_exe/timestandard.rb +9 -7
  71. data/lib/when_exe/tmobjects.rb +34 -2
  72. data/lib/when_exe/tmposition.rb +225 -1322
  73. data/lib/when_exe/tmptypes.rb +1279 -0
  74. data/lib/when_exe/tmreference.rb +42 -7
  75. data/lib/when_exe/version.rb +3 -3
  76. data/test/events/example-datasets +6 -0
  77. data/test/events/history-dataset.csv +22 -0
  78. data/test/events/japanese-holiday-index.csv +28 -0
  79. data/test/events/japanese-holiday.csv +94 -0
  80. data/test/events/japanese-holiday.ttl +948 -0
  81. data/test/events/make_events_ttl.rb +18 -0
  82. data/test/events/mori_wikichoshi.csv +14 -0
  83. data/test/events/ndl_koyomi.csv +220 -0
  84. data/test/events/ndl_koyomi_index.csv +44 -0
  85. data/test/events/primeminister-dataset.csv +19 -0
  86. data/test/events/shogun-dataset.csv +22 -0
  87. data/test/events/test-history-dataset-edge-sparql.csv +26 -0
  88. data/test/events/test-history-dataset-edge.csv +27 -0
  89. data/test/events/test-history-dataset-sparql.csv +22 -0
  90. data/test/events/test-history-dataset.csv +23 -0
  91. data/test/events/test-history-events-edge.ttl +89 -0
  92. data/test/events/test-history-events.csv +6 -0
  93. data/test/examples/JapanHolidays.ics +2 -2
  94. data/test/examples/JapanHolidaysRFC6350.ics +3 -3
  95. data/test/examples/Residue.m17n +2 -2
  96. data/test/examples/Spatial.m17n +3 -3
  97. data/test/examples/Terms.m17n +3 -3
  98. data/test/scripts/8.ext.rb +6 -6
  99. data/test/scripts/8.rb +6 -6
  100. data/test/scripts/geometric_complex.rb +41 -41
  101. data/test/scripts/korea.rb +59 -59
  102. data/test/scripts/thai.rb +36 -36
  103. data/test/test.rb +6 -0
  104. data/test/test/basictypes.rb +431 -431
  105. data/test/test/calendarnote.rb +86 -86
  106. data/test/test/calendartypes.rb +97 -97
  107. data/test/test/coordinates.rb +399 -397
  108. data/test/test/ephemeris.rb +115 -115
  109. data/test/test/ephemeris/moon.rb +14 -14
  110. data/test/test/ephemeris/planets.rb +14 -14
  111. data/test/test/ephemeris/sun.rb +14 -14
  112. data/test/test/events.rb +32 -0
  113. data/test/test/google_api.rb +45 -32
  114. data/test/test/inspect.rb +153 -153
  115. data/test/test/parts.rb +488 -488
  116. data/test/test/region/armenian.rb +20 -20
  117. data/test/test/region/bahai.rb +58 -58
  118. data/test/test/region/balinese.rb +34 -34
  119. data/test/test/region/chinese.rb +229 -229
  120. data/test/test/region/christian.rb +226 -226
  121. data/test/test/region/coptic.rb +27 -27
  122. data/test/test/region/discordian.rb +20 -20
  123. data/test/test/region/french.rb +33 -33
  124. data/test/test/region/geologicalage.rb +17 -17
  125. data/test/test/region/indian.rb +14 -1
  126. data/test/test/region/iran.rb +54 -54
  127. data/test/test/region/islamic.rb +64 -54
  128. data/test/test/region/japanese.rb +281 -261
  129. data/test/test/region/jewish.rb +63 -63
  130. data/test/test/region/m17n.rb +21 -21
  131. data/test/test/region/mayan.rb +17 -16
  132. data/test/test/region/reforms.rb +2 -2
  133. data/test/test/region/residue.rb +7 -7
  134. data/test/test/region/shire.rb +58 -58
  135. data/test/test/region/swedish.rb +45 -45
  136. data/test/test/region/thai.rb +116 -116
  137. data/test/test/region/tibetan.rb +30 -30
  138. data/test/test/region/vietnamese.rb +102 -102
  139. data/test/test/region/zoroastrian.rb +58 -58
  140. data/test/test/timestandard.rb +81 -81
  141. data/test/test/tmobjects.rb +402 -402
  142. data/test/test/tmposition.rb +66 -4
  143. data/test/test/tmreference.rb +157 -157
  144. metadata +36 -93
@@ -1,6 +1,6 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  =begin
3
- Copyright (C) 2011-2015 Takashi SUGA
3
+ Copyright (C) 2011-2021 Takashi SUGA
4
4
 
5
5
  You may use and/or modify this file according to the license described in the LICENSE.txt file included in this archive.
6
6
  =end
@@ -335,7 +335,9 @@ module When
335
335
  ["[昭和,Shōwa=en:Sh%C5%8Dwa_period,S]1.12.25", "@A",
336
336
  "name=[昭和天皇,Emperor_Shōwa];1926-12-25"],
337
337
  ["[平成,Heisei=en:Heisei_period,H]1.01.08", "@A",
338
- "name=[今上天皇=ja:%%<明仁>,Emperor_Kinjō=en:Akihito];1989-01-08"]
338
+ "name=[上皇明仁,Emperor_Emeritus_of_Japan=en:Akihito];1989-01-08"],
339
+ ["[令和,Reiwa,R]1.05.01", "@A",
340
+ "name=[今上天皇=ja:%%<徳仁>,Emperor_Kinjō=en:Naruhito];2019-05-01"]
339
341
  ]]
340
342
 
341
343
  #
@@ -403,7 +405,7 @@ module When
403
405
  ["[鈴木善幸]1.07.17", "@A", "1980-07-17"],
404
406
  ["[中曽根康弘]1.11.27", "@A", "1982-11-27"],
405
407
  ["[竹下登]1.11.06", "@A", "1987-11-06",
406
- "name=[今上天皇=ja:%%<明仁>,Emperor_Kinjō=en:Akihito];1989-01-08", ""],
408
+ "name=[上皇明仁,Emperor_Emeritus_of_Japan=en:Akihito];1989-01-08", ""],
407
409
  ["[宇野宗佑]1.06.03", "@A", "1989-06-03"],
408
410
  ["[海部俊樹]1.08.10", "@A", "1989-08-10"],
409
411
  ["[宮沢喜一]1.11.05", "@A", "1991-11-05"],
@@ -420,7 +422,9 @@ module When
420
422
  ["[鳩山由紀夫]1.09.16", "@A", "2009-09-16"],
421
423
  ["[菅直人]1.06.08", "@A", "2010-06-08"],
422
424
  ["[野田佳彦]1.09.02", "@A", "2011-09-02"],
423
- ["[安倍晋三・再=ja:%%<安倍晋三>]1.12.26", "@A", "2012-12-26"]
425
+ ["[安倍晋三・再=ja:%%<安倍晋三>]1.12.26", "@A", "2012-12-26",
426
+ "name=[今上天皇=ja:%%<徳仁>,Emperor_Kinjō=en:Naruhito];2019-05-01", ""],
427
+ ["[菅義偉]1.09.16", "@A", "2020-09-16"]
424
428
  ]]
425
429
  end
426
430
  end
@@ -0,0 +1,93 @@
1
+ # -*- coding: utf-8 -*-
2
+ =begin
3
+ Copyright (C) 2015 Takashi SUGA
4
+
5
+ You may use and/or modify this file according to the license
6
+ described in the LICENSE.txt file included in this archive.
7
+ =end
8
+
9
+ module When::Coordinates
10
+
11
+ t1 = LocationTable[1]
12
+ t2 = LocationTable[2]
13
+ t3 = LocationTable[3]
14
+ t4 = LocationTable[4]
15
+ co = (0..2).to_a
16
+
17
+ # 位置参照情報ダウンロードサービス「全ての大字・町丁目レベル」( http://nlftp.mlit.go.jp/isj/ )を配置してください
18
+ geolocation_data = When::Parts::Resource.root_dir + '/data/geolocation/japanese/*.csv'
19
+
20
+ #
21
+ # はしご高など UTF-8 への変換に失敗するコードを含む地名は登録しない
22
+ #
23
+ # @private
24
+ def self.utf_gets(io)
25
+ error_occurred = false
26
+ line = nil
27
+ loop do
28
+ error = nil
29
+ begin
30
+ line = io.gets
31
+ rescue Encoding::UndefinedConversionError => error
32
+ error_occurred = true
33
+ end
34
+ unless error
35
+ return error_occurred ? utf_gets(io) : line
36
+ end
37
+ end
38
+ end
39
+
40
+ Dir.glob(geolocation_data).each do |path|
41
+ open(path,'r:SHIFT_JIS') do |io|
42
+ h = {}
43
+ lines = ''
44
+ while (line = utf_gets(io))
45
+ lines.concat(line)
46
+ end
47
+ CSV.parse(lines) do |r|
48
+ if h.empty?
49
+ h = Hash[*(0...r.size).to_a.map {|i| [r[i],i]}.flatten]
50
+ else
51
+ location = [r[h['経度']].to_f, r[h['緯度']].to_f, 0]
52
+ wide_name = r[h['都道府県名']]
53
+ middle_name = wide_name + r[h['市区町村名']]
54
+ fine_name = r[h['大字町丁目名']]
55
+ full_name = middle_name + fine_name
56
+ t1[full_name] = location
57
+ t2[middle_name][fine_name] = location
58
+ t3[wide_name][r[h['市区町村名']]][fine_name] = location
59
+ case r[h['市区町村名']]
60
+ when /\A((.+)市)(.+区)\z/
61
+ t1[$1 + $3 + fine_name] = location
62
+ t2[$1 + $3] [fine_name] = location
63
+ t3[$1] [$3] [fine_name] = location
64
+ t3[$2] [$3] [fine_name] = location
65
+ when /\A((.+)市)\z/
66
+ t4[$1] << middle_name
67
+ t4[$2] << middle_name
68
+ t4[$1 + fine_name] << full_name
69
+ when /\A.+郡(.+[町村])\z/
70
+ t4[wide_name + $1] << middle_name
71
+ t4[wide_name + $1 + fine_name] << full_name
72
+ end
73
+ end
74
+ end
75
+ end
76
+ end
77
+
78
+ t3.keys.each do |p|
79
+ t3[p].keys.each do |c|
80
+ locations = t3[p][c].values.transpose
81
+ t3[p][c][:SWB] = t2[p+c][:SWB] = co.map {|i| locations[i].min}
82
+ t3[p][c][:NET] = t2[p+c][:NET] = co.map {|i| locations[i].max}
83
+ end
84
+ swb = t3[p].keys.map {|c| t3[p][c][:SWB]}.transpose
85
+ net = t3[p].keys.map {|c| t3[p][c][:NET]}.transpose
86
+ t3[p][:SWB] = co.map {|i| swb[i].min}
87
+ t3[p][:NET] = co.map {|i| net[i].max}
88
+ end
89
+
90
+ t4.each_pair do |key, value|
91
+ value.uniq!
92
+ end
93
+ end
@@ -1,70 +1,70 @@
1
- # -*- coding: utf-8 -*-
2
- =begin
3
- Copyright (C) 2011-2014 Takashi SUGA
4
-
5
- You may use and/or modify this file according to the license described in the LICENSE.txt file included in this archive.
6
- =end
7
-
8
- class When::TM::CalendarEra
9
-
10
- #
11
- # 皇紀
12
- #
13
- NihonKoki = [self, [
14
- "locale:[=ja:, en=en:, alias]",
15
- "area:[日本]",
16
- ["[皇紀=ja:%%<神武天皇即位紀元>]1", "@A", "-659-01-01^JapaneseTwin::平朔儀鳳暦"],
17
- ["[皇紀=ja:%%<神武天皇即位紀元>]1114", "@CR", "0454-01-01^Japanese"],
18
- ["[皇紀=ja:%%<神武天皇即位紀元>]2533", "@CR", "1873-01-01^Gregorian"]
19
- ]]
20
-
21
- #
22
- # 日本書紀暦日
23
- #
24
- NihonShoki = [self, [
25
- "locale:[=ja:, en=en:, alias]",
26
- "period:[日本(日本書紀)=ja:%%<日本書紀>, (Nihon_Shoki)=en:Nihon_Shoki]",
27
- ["[<神武>=ja:%%<神武天皇>]1", "@A", "name=[神武=ja:%%<神武天皇>];-659-01-01^JapaneseTwin::平朔儀鳳暦"],
28
- ["[<綏靖>=ja:%%<綏靖天皇>]1", "@A", "name=[綏靖=ja:%%<綏靖天皇>];-580-01-08"],
29
- ["[<安寧>=ja:%%<安寧天皇>]0", "@A", "name=[安寧=ja:%%<安寧天皇>];-548-07-03"],
30
- ["[<懿徳>=ja:%%<懿徳天皇>]1", "@A", "name=[懿徳=ja:%%<懿徳天皇>];-509-02-04"],
31
- ["[<孝昭>=ja:%%<孝昭天皇>]1", "@A", "name=[孝昭=ja:%%<孝昭天皇>];-474-01-09"],
32
- ["[<孝安>=ja:%%<孝安天皇>]1", "@A", "name=[孝安=ja:%%<孝安天皇>];-391-01-07"],
33
- ["[<孝霊>=ja:%%<孝霊天皇>]1", "@A", "name=[孝霊=ja:%%<孝霊天皇>];-289-01-12"],
34
- ["[<孝元>=ja:%%<孝元天皇>]1", "@A", "name=[孝元=ja:%%<孝元天皇>];-213-01-14"],
35
- ["[<開化>=ja:%%<開化天皇>]0", "@A", "name=[開化=ja:%%<開化天皇>];-157-11-12"],
36
- ["[<崇神>=ja:%%<崇神天皇>]1", "@A", "name=[崇神=ja:%%<崇神天皇>];-096-01-13"],
37
- ["[<垂仁>=ja:%%<垂仁天皇>]1", "@A", "name=[垂仁=ja:%%<垂仁天皇>];-028-01-02"],
38
- ["[<景行>=ja:%%<景行天皇>]1", "@A", "name=[景行=ja:%%<景行天皇>];0071-07-11"],
39
- ["[<成務>=ja:%%<成務天皇>]1", "@A", "name=[成務=ja:%%<成務天皇>];0131-01-05"],
40
- ["[<仲哀>=ja:%%<仲哀天皇>]1", "@A", "name=[仲哀=ja:%%<仲哀天皇>];0192-01-11"],
41
- ["[<神功皇后>=ja:%%<神功皇后>]0", "@A","name=[神功皇后=ja:%%<神功皇后>];0200-02-07"],
42
- ["[<応神>=ja:%%<応神天皇>]1", "@A", "name=[応神=ja:%%<応神天皇>];0270-01-01"],
43
- ["[<仁徳>=ja:%%<仁徳天皇>]1", "@A", "name=[仁徳=ja:%%<仁徳天皇>];0313-01-03"],
44
- ["[<履中>=ja:%%<履中天皇>]1", "@A", "name=[履中=ja:%%<履中天皇>];0400-02-01"],
45
- ["[<反正>=ja:%%<反正天皇>]1", "@A", "name=[反正=ja:%%<反正天皇>];0406-01-02"],
46
- ["[<允恭>=ja:%%<允恭天皇>]1", "@A", "name=[允恭=ja:%%<允恭天皇>];0412-12"],
47
- ["[<安康>=ja:%%<安康天皇>]0", "@A", "name=[安康=ja:%%<安康天皇>];0453-12-14^ChineseTwin::元嘉暦"],
48
- ["[<雄略>=ja:%%<雄略天皇>]0", "@A", "name=[雄略=ja:%%<雄略天皇>];0456-11-13"],
49
- ["[<清寧>=ja:%%<清寧天皇>]1", "@A", "name=[清寧=ja:%%<清寧天皇>];0480-01-15"],
50
- ["[<顕宗>=ja:%%<顕宗天皇>]1", "@A", "name=[顕宗=ja:%%<顕宗天皇>];0485-01-01"],
51
- ["[<仁賢>=ja:%%<仁賢天皇>]1", "@A", "name=[仁賢=ja:%%<仁賢天皇>];0488-01-05"],
52
- ["[<武烈>=ja:%%<武烈天皇>]0", "@A", "name=[武烈=ja:%%<武烈天皇>];0498-12"],
53
- ["[<継体>=ja:%%<継体天皇>]1", "@A", "name=[継体=ja:%%<継体天皇>];0507-02-04"],
54
- ["[<安閑>=ja:%%<安閑天皇>]1", "@A", "name=[安閑=ja:%%<安閑天皇>];0534"],
55
- ["[<宣化>=ja:%%<宣化天皇>]0", "@A", "name=[宣化=ja:%%<宣化天皇>];0535-12"],
56
- ["[<欽明>=ja:%%<欽明天皇>]0", "@A", "name=[欽明=ja:%%<欽明天皇>];0539-12-05"],
57
- ["[<敏達>=ja:%%<敏達天皇>]1", "@A", "name=[敏達=ja:%%<敏達天皇>];0572-04-03"],
58
- ["[<用明>=ja:%%<用明天皇>]0", "@A", "name=[用明=ja:%%<用明天皇>];0585-09-05"],
59
- ["[<崇峻>=ja:%%<崇峻天皇>]0", "@A", "name=[崇峻=ja:%%<崇峻天皇>];0587-08-02"],
60
- ["[<推古>=ja:%%<推古天皇>]0", "@A", "name=[推古=ja:%%<推古天皇>];0592-12-08"],
61
- ["[<舒明>=ja:%%<舒明天皇>]1", "@A", "name=[舒明=ja:%%<舒明天皇>];0629-01-04"],
62
- ["[<皇極>=ja:%%<皇極天皇>]1", "@A", "name=[皇極=ja:%%<皇極天皇>];0642-01-15"],
63
- ["[大化]1", "@A", "name=[孝徳=ja:%%<孝徳天皇>];0645-06-19"],
64
- ["[白雉]1", "@FE", " 0650-02-15"],
65
- ["[<斉明>=ja:%%<皇極天皇>]1", "@A", "name=[斉明=ja:%%<皇極天皇>];0655-01-03"],
66
- ["[<天智>=ja:%%<天智天皇>]1", "@A", "name=[天智=ja:%%<天智天皇>];0662-01-01"],
67
- ["[<天武>=ja:%%<天武天皇>]1", "@A", "name=[天武=ja:%%<天武天皇>];0672-01-01"],
68
- ["[朱鳥]1", "", "0686-07-20", "0687-01-01"]
69
- ]]
70
- end
1
+ # -*- coding: utf-8 -*-
2
+ =begin
3
+ Copyright (C) 2011-2014 Takashi SUGA
4
+
5
+ You may use and/or modify this file according to the license described in the LICENSE.txt file included in this archive.
6
+ =end
7
+
8
+ class When::TM::CalendarEra
9
+
10
+ #
11
+ # 皇紀
12
+ #
13
+ NihonKoki = [self, [
14
+ "locale:[=ja:, en=en:, alias]",
15
+ "area:[日本]",
16
+ ["[皇紀=ja:%%<神武天皇即位紀元>]1", "@A", "-659-01-01^JapaneseTwin::平朔儀鳳暦"],
17
+ ["[皇紀=ja:%%<神武天皇即位紀元>]1114", "@CR", "0454-01-01^Japanese"],
18
+ ["[皇紀=ja:%%<神武天皇即位紀元>]2533", "@CR", "1873-01-01^Gregorian"]
19
+ ]]
20
+
21
+ #
22
+ # 日本書紀暦日
23
+ #
24
+ NihonShoki = [self, [
25
+ "locale:[=ja:, en=en:, alias]",
26
+ "period:[日本(日本書紀)=ja:%%<日本書紀>, (Nihon_Shoki)=en:Nihon_Shoki]",
27
+ ["[<神武>=ja:%%<神武天皇>]1", "@A", "name=[神武=ja:%%<神武天皇>];-659-01-01^JapaneseTwin::平朔儀鳳暦"],
28
+ ["[<綏靖>=ja:%%<綏靖天皇>]1", "@A", "name=[綏靖=ja:%%<綏靖天皇>];-580-01-08"],
29
+ ["[<安寧>=ja:%%<安寧天皇>]0", "@A", "name=[安寧=ja:%%<安寧天皇>];-548-07-03"],
30
+ ["[<懿徳>=ja:%%<懿徳天皇>]1", "@A", "name=[懿徳=ja:%%<懿徳天皇>];-509-02-04"],
31
+ ["[<孝昭>=ja:%%<孝昭天皇>]1", "@A", "name=[孝昭=ja:%%<孝昭天皇>];-474-01-09"],
32
+ ["[<孝安>=ja:%%<孝安天皇>]1", "@A", "name=[孝安=ja:%%<孝安天皇>];-391-01-07"],
33
+ ["[<孝霊>=ja:%%<孝霊天皇>]1", "@A", "name=[孝霊=ja:%%<孝霊天皇>];-289-01-12"],
34
+ ["[<孝元>=ja:%%<孝元天皇>]1", "@A", "name=[孝元=ja:%%<孝元天皇>];-213-01-14"],
35
+ ["[<開化>=ja:%%<開化天皇>]0", "@A", "name=[開化=ja:%%<開化天皇>];-157-11-12"],
36
+ ["[<崇神>=ja:%%<崇神天皇>]1", "@A", "name=[崇神=ja:%%<崇神天皇>];-096-01-13"],
37
+ ["[<垂仁>=ja:%%<垂仁天皇>]1", "@A", "name=[垂仁=ja:%%<垂仁天皇>];-028-01-02"],
38
+ ["[<景行>=ja:%%<景行天皇>]1", "@A", "name=[景行=ja:%%<景行天皇>];0071-07-11"],
39
+ ["[<成務>=ja:%%<成務天皇>]1", "@A", "name=[成務=ja:%%<成務天皇>];0131-01-05"],
40
+ ["[<仲哀>=ja:%%<仲哀天皇>]1", "@A", "name=[仲哀=ja:%%<仲哀天皇>];0192-01-11"],
41
+ ["[<神功皇后>=ja:%%<神功皇后>]0", "@A","name=[神功皇后=ja:%%<神功皇后>];0200-02-07"],
42
+ ["[<応神>=ja:%%<応神天皇>]1", "@A", "name=[応神=ja:%%<応神天皇>];0270-01-01"],
43
+ ["[<仁徳>=ja:%%<仁徳天皇>]1", "@A", "name=[仁徳=ja:%%<仁徳天皇>];0313-01-03"],
44
+ ["[<履中>=ja:%%<履中天皇>]1", "@A", "name=[履中=ja:%%<履中天皇>];0400-02-01"],
45
+ ["[<反正>=ja:%%<反正天皇>]1", "@A", "name=[反正=ja:%%<反正天皇>];0406-01-02"],
46
+ ["[<允恭>=ja:%%<允恭天皇>]1", "@A", "name=[允恭=ja:%%<允恭天皇>];0412-12"],
47
+ ["[<安康>=ja:%%<安康天皇>]0", "@A", "name=[安康=ja:%%<安康天皇>];0453-12-14^ChineseTwin::元嘉暦"],
48
+ ["[<雄略>=ja:%%<雄略天皇>]0", "@A", "name=[雄略=ja:%%<雄略天皇>];0456-11-13"],
49
+ ["[<清寧>=ja:%%<清寧天皇>]1", "@A", "name=[清寧=ja:%%<清寧天皇>];0480-01-15"],
50
+ ["[<顕宗>=ja:%%<顕宗天皇>]1", "@A", "name=[顕宗=ja:%%<顕宗天皇>];0485-01-01"],
51
+ ["[<仁賢>=ja:%%<仁賢天皇>]1", "@A", "name=[仁賢=ja:%%<仁賢天皇>];0488-01-05"],
52
+ ["[<武烈>=ja:%%<武烈天皇>]0", "@A", "name=[武烈=ja:%%<武烈天皇>];0498-12"],
53
+ ["[<継体>=ja:%%<継体天皇>]1", "@A", "name=[継体=ja:%%<継体天皇>];0507-02-04"],
54
+ ["[<安閑>=ja:%%<安閑天皇>]1", "@A", "name=[安閑=ja:%%<安閑天皇>];0534"],
55
+ ["[<宣化>=ja:%%<宣化天皇>]0", "@A", "name=[宣化=ja:%%<宣化天皇>];0535-12"],
56
+ ["[<欽明>=ja:%%<欽明天皇>]0", "@A", "name=[欽明=ja:%%<欽明天皇>];0539-12-05"],
57
+ ["[<敏達>=ja:%%<敏達天皇>]1", "@A", "name=[敏達=ja:%%<敏達天皇>];0572-04-03"],
58
+ ["[<用明>=ja:%%<用明天皇>]0", "@A", "name=[用明=ja:%%<用明天皇>];0585-09-05"],
59
+ ["[<崇峻>=ja:%%<崇峻天皇>]0", "@A", "name=[崇峻=ja:%%<崇峻天皇>];0587-08-02"],
60
+ ["[<推古>=ja:%%<推古天皇>]0", "@A", "name=[推古=ja:%%<推古天皇>];0592-12-08"],
61
+ ["[<舒明>=ja:%%<舒明天皇>]1", "@A", "name=[舒明=ja:%%<舒明天皇>];0629-01-04"],
62
+ ["[<皇極>=ja:%%<皇極天皇>]1", "@A", "name=[皇極=ja:%%<皇極天皇>];0642-01-15"],
63
+ ["[大化]1", "@A", "name=[孝徳=ja:%%<孝徳天皇>];0645-06-19"],
64
+ ["[白雉]1", "@FE", " 0650-02-15"],
65
+ ["[<斉明>=ja:%%<皇極天皇>]1", "@A", "name=[斉明=ja:%%<皇極天皇>];0655-01-03"],
66
+ ["[<天智>=ja:%%<天智天皇>]1", "@A", "name=[天智=ja:%%<天智天皇>];0662-01-01"],
67
+ ["[<天武>=ja:%%<天武天皇>]1", "@A", "name=[天武=ja:%%<天武天皇>];0672-01-01"],
68
+ ["[朱鳥]1", "", "0686-07-20", "0687-01-01"]
69
+ ]]
70
+ end
@@ -1,6 +1,6 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  =begin
3
- Copyright (C) 2012-2015 Takashi SUGA
3
+ Copyright (C) 2012-2021 Takashi SUGA
4
4
 
5
5
  You may use and/or modify this file according to the license described in the LICENSE.txt file included in this archive.
6
6
  =end
@@ -32,7 +32,19 @@ class When::CalendarNote
32
32
  # 日本暦注の要素
33
33
  #
34
34
  # @private
35
- class Note < When::CalendarNote::NoteElement
35
+ class Note < When::BasicTypes::Object
36
+
37
+ include When::CalendarNote::NoteElement
38
+
39
+ #
40
+ # _m17n_form のための要素生成
41
+ #
42
+ # @param [Hash] options 下記のとおり
43
+ # @option options [Symbol] :method :to_m17n なら label を返す、その他は When::Parts::Resource#to_h 参照
44
+ #
45
+ def _to_hash_value(options={})
46
+ options[:method] == :to_m17n ? label : super
47
+ end
36
48
  end
37
49
 
38
50
  #
@@ -76,7 +88,7 @@ class When::CalendarNote
76
88
  [Note, 0x0003, "label:[天道=]", 'position:暦序', 'suffix:-'], # 14: 支
77
89
  [Note, 0x0003, "label:[人道=]", 'position:暦序', 'suffix:-'], # 15: 支
78
90
  [Note, 0x3FFC, "label:[歳次=]", 'position:暦序', 'suffix:-'], # 16: 支
79
- [Note, 0xF800, "label:[金神]", 'position:仮名暦', 'suffix:在'], # 17: 干
91
+ [Note, 0xFC00, "label:[金神]", 'position:仮名暦', 'suffix:在'], # 17: 干
80
92
  [Note, 0xFFFF, "label:[大小]", 'position:暦序'] # 18: 朔閏表
81
93
  ],
82
94
 
@@ -136,10 +148,10 @@ class When::CalendarNote
136
148
  [Note, 0x3FFC, "label:[六十卦=]", 'position:時候'], # 12: 太陽黄経
137
149
  [Note, 0xF800, "label:[節分]", 'position:雑節'], # 13: 立春からの日数
138
150
  [Note, 0xF800, "label:[初午]", 'position:雑節'], # 14: 支 節月 or 暦月
139
- [Note, 0xF800, "label:[八十八夜]", 'position:雑節'], # 15: 立春からの日数
151
+ [Note, 0xFC00, "label:[八十八夜]", 'position:雑節'], # 15: 立春からの日数
140
152
  [Note, 0xF800, "label:[入梅]", 'position:雑節'], # 16: 干 太陽黄経
141
153
  [Note, 0xF800, "label:[半夏生]", 'position:雑節'], # 17: 干 太陽黄経
142
- [Note, 0xF800, "label:[二百十日]", 'position:雑節'], # 18: 立春からの日数
154
+ [Note, 0xFC00, "label:[二百十日]", 'position:雑節'], # 18: 立春からの日数
143
155
  [Note, 0xF800, "label:[二百廿日=ja:%%<二百二十日>]", 'position:雑節'], # 19: 立春からの日数
144
156
 
145
157
  [Note, 0x3FFC, "label:[大禍=ja:%%<暦注下段>#%.<大禍日>]",
@@ -256,7 +268,7 @@ class When::CalendarNote
256
268
  [Note, 0xC000, "label:[己巳]", 'position:仮名暦'], # 90: 干支
257
269
  [Note, 0xF800, "label:[庚申待]", 'position:仮名暦'], # 91: 干支
258
270
  [Note, 0xF800, "label:[犯土]", 'position:仮名暦'], # 92: 干支
259
- [Note, 0xF800, "label:[十方暮]", 'position:仮名暦'], # 93: 干支
271
+ [Note, 0xFC00, "label:[十方暮]", 'position:仮名暦'], # 93: 干支
260
272
  [Note, 0xF800, "label:[一粒万倍=ja:%%<一粒万倍日>]",
261
273
  'position:仮名暦', 'suffix:日'], # 94: 支 節月
262
274
  [Note, 0x3800, "label:[天福=]", 'position:仮名暦'], # 95: 支 節月
@@ -265,7 +277,7 @@ class When::CalendarNote
265
277
  [Note, 0xB800, "label:[三隣亡]", 'position:仮名暦'], # 98: 支 節月
266
278
  [Note, 0xF800, "label:[不成就=ja:%%<不成就日>]",
267
279
  'position:仮名暦', 'suffix:日'], # 99: 暦月 暦日/晦日
268
- [Note, 0x3800, "label:[鬼宿]", 'position:仮名暦'], #100: 廿八宿
280
+ [Note, 0x3C00, "label:[鬼宿]", 'position:仮名暦'], #100: 廿八宿
269
281
  [Note, 0x3800, "label:[金性=]", 'position:仮名暦'], #101: 支 節月 支 節年
270
282
  [Note, 0x3FFF, "label:[三寶吉=http://kotobank.jp/word/%%<三宝吉日>]",
271
283
  'position:上段 上段 上段 上段'], #102: 干支 節月
@@ -274,7 +286,7 @@ class When::CalendarNote
274
286
  [Note, 0x3FFF, "label:[雑事吉=]", 'position:雑事吉'], #104: 干支 節月
275
287
  [Note, 0x3FFF, "label:[小字注=]", 'position:下段小字 下段小字 下段小字 下段小字'],#105: 干支 節月
276
288
  [Note, 0xC000, "label:[土用の丑]", 'position:雑節'], #106: 土用の丑
277
- [Note, 0xC000, "label:[陰陽遁始]", 'position:民間'], #107: 九星の陰遁・陽遁の折り返し日
289
+ [Note, 0xC000, "label:[陰陽遁始=]", 'position:民間'], #107: 九星の陰遁・陽遁の折り返し日
278
290
  ]
279
291
  ]]
280
292
 
@@ -526,8 +538,8 @@ class When::CalendarNote
526
538
  patch = SolarTerms::Patch[result.to_i]
527
539
  return result unless patch
528
540
  num, den = parameter.kind_of?(String) ? parameter.split('/', 2) : parameter
529
- num = (num || 0).to_f
530
- den = (den || 360).to_f
541
+ num = (num || @num || 0).to_f
542
+ den = (den || @den || 360).to_f
531
543
  diff = (num - patch[0] + 1) % den - 1
532
544
  return result if diff == 0
533
545
  patched = result + When::P1D * diff
@@ -536,6 +548,9 @@ class When::CalendarNote
536
548
  result
537
549
  end
538
550
 
551
+ # 二十四節気のための event_delta の別名
552
+ alias :term_delta :event_delta
553
+
539
554
  # 月の位相 => 日時
540
555
  #
541
556
  # @param [When::TM::TemporalPosition] date 探す基準とする日時
@@ -576,6 +591,9 @@ class When::CalendarNote
576
591
  result
577
592
  end
578
593
 
594
+ # 月の位相のための event_delta の別名
595
+ alias :phase_delta :event_delta
596
+
579
597
  private
580
598
 
581
599
  # オブジェクトの正規化
@@ -722,7 +740,7 @@ class When::CalendarNote
722
740
  #
723
741
  # 任意の暦を日本年号付暦日に変換
724
742
  #
725
- # @param When::TM::CalDate] date 変換元日付
743
+ # @param [When::TM::CalDate] date 変換元日付
726
744
  #
727
745
  # @return [When::TM::CalDate] 変換結果
728
746
  #
@@ -737,7 +755,7 @@ class When::CalendarNote
737
755
  #
738
756
  # 日本年号付暦日か?
739
757
  #
740
- # @param When::TM::CalDate] date 確認する日付
758
+ # @param [When::TM::CalDate] date 確認する日付
741
759
  #
742
760
  # @return [Boolean] true YES / false NO
743
761
  #
@@ -780,6 +798,7 @@ class When::CalendarNote
780
798
  [ 1,29] => [[1873..1873, When.M17n('JapaneseHoliday::神武天皇即位日')]],
781
799
  [ 1,30] => [[1874..1912, When.M17n('JapaneseHoliday::孝明天皇祭')]],
782
800
  [ 2,11] => [[1874..1948, When.M17n('JapaneseHoliday::紀元節')], [1967..2100, When.M17n('JapaneseHoliday::建国記念の日')]],
801
+ [ 2,23] => [[2020..2100, When.M17n('JapaneseHoliday::天皇誕生日')]],
783
802
  [ 2,24] => [[1989..1989, When.M17n('JapaneseHoliday::昭和天皇の大喪の礼')]],
784
803
  [ 3, 3] => [[1868..1872, When.M17n('JapaneseHoliday::弥生節句')]],
785
804
  [ 3, 0] => [[1879..1948, When.M17n('JapaneseHoliday::春季皇霊祭')], [1949..2100, When.M17n('JapaneseHoliday::春分の日')]],
@@ -787,6 +806,7 @@ class When::CalendarNote
787
806
  [ 4,10] => [[1959..1959, When.M17n('JapaneseHoliday::皇太子明仁親王の結婚の儀')]],
788
807
  [ 4,29] => [[1927..1948, When.M17n('JapaneseHoliday::天長節')], [1949..1988, When.M17n('JapaneseHoliday::天皇誕生日')],
789
808
  [1989..2006, When.M17n('JapaneseHoliday::みどりの日')], [2007..2100, When.M17n('JapaneseHoliday::昭和の日')]],
809
+ [ 5, 1] => [[2019..2019, When.M17n('JapaneseHoliday::即位の日')]],
790
810
  [ 5, 3] => [[1949..2100, When.M17n('JapaneseHoliday::憲法記念日')]],
791
811
  [ 5, 4] => [[2007..2100, When.M17n('JapaneseHoliday::みどりの日')]],
792
812
  [ 5, 5] => [[1868..1872, When.M17n('JapaneseHoliday::端午節句')], [1949..2100, When.M17n('JapaneseHoliday::こどもの日')]],
@@ -794,28 +814,35 @@ class When::CalendarNote
794
814
  [ 7, 7] => [[1868..1872, When.M17n('JapaneseHoliday::七夕節句')]],
795
815
  [ 7,15] => [[1868..1872, When.M17n('JapaneseHoliday::お盆')]],
796
816
  [ 7,20] => [[1996..2002, When.M17n('JapaneseHoliday::海の日')]],
797
- [ 7,-3] => [[2003..2100, When.M17n('JapaneseHoliday::海の日')]],
817
+ [ 7,22] => [[2021..2021, When.M17n('JapaneseHoliday::海の日')]],
818
+ [ 7,23] => [[2020..2020, When.M17n('JapaneseHoliday::海の日')],[2021..2021, When.M17n('JapaneseHoliday::スポーツの日')]],
819
+ [ 7,-3] => [[2003..2019, When.M17n('JapaneseHoliday::海の日')],[2022..2100, When.M17n('JapaneseHoliday::海の日')]],
820
+ [ 7,24] => [[2020..2020, When.M17n('JapaneseHoliday::スポーツの日')]],
798
821
  [ 7,30] => [[1913..1926, When.M17n('JapaneseHoliday::明治天皇祭')]],
799
822
  [ 8, 1] => [[1868..1872, When.M17n('JapaneseHoliday::田実節句')]],
800
- [ 8,11] => [[2016..2100, When.M17n('JapaneseHoliday::山の日')]],
823
+ [ 8, 8] => [[2021..2021, When.M17n('JapaneseHoliday::山の日')]],
824
+ [ 8,10] => [[2020..2020, When.M17n('JapaneseHoliday::山の日')]],
825
+ [ 8,11] => [[2016..2019, When.M17n('JapaneseHoliday::山の日')],[2022..2100, When.M17n('JapaneseHoliday::山の日')]],
801
826
  [ 8,31] => [[1913..1926, When.M17n('JapaneseHoliday::天長節')]],
802
827
  [ 9, 9] => [[1868..1872, When.M17n('JapaneseHoliday::重陽節句')]],
803
828
  [ 9,15] => [[1966..2002, When.M17n('JapaneseHoliday::敬老の日')]],
804
829
  [ 9,-3] => [[2003..2100, When.M17n('JapaneseHoliday::敬老の日')]],
805
830
  [ 9,17] => [[1874..1878, When.M17n('JapaneseHoliday::神嘗祭')]],
806
831
  [ 9, 0] => [[1878..1947, When.M17n('JapaneseHoliday::秋季皇霊祭')], [1948..2100, When.M17n('JapaneseHoliday::秋分の日')]],
832
+ [10, 2] => [[1929..1929, When.M17n('JapaneseHoliday::皇大神宮遷御当日')]],
807
833
  [10,10] => [[1966..1999, When.M17n('JapaneseHoliday::体育の日')]],
808
- [10,-2] => [[2000..2100, When.M17n('JapaneseHoliday::体育の日')]],
834
+ [10,-2] => [[2000..2019, When.M17n('JapaneseHoliday::体育の日')],[2022..2100, When.M17n('JapaneseHoliday::スポーツの日')]],
809
835
  [10,17] => [[1879..1947, When.M17n('JapaneseHoliday::神嘗祭')]],
836
+ [10,22] => [[2019..2019, When.M17n('JapaneseHoliday::即位礼正殿の儀')]],
810
837
  [10,31] => [[1913..1926, When.M17n('JapaneseHoliday::天長節祝日')]],
811
838
  [11, 3] => [[1873..1911, When.M17n('JapaneseHoliday::天長節')], [1927..1947, When.M17n('JapaneseHoliday::明治節')],
812
839
  [1948..2100, When.M17n('JapaneseHoliday::文化の日')]],
813
840
  [11,10] => [[1915..1915, When.M17n('JapaneseHoliday::即位の礼')], [1928..1928, When.M17n('JapaneseHoliday::即位の礼')]],
814
- [11,12] => [[1990..1990, When.M17n('JapaneseHoliday::即位の礼正殿の儀')]],
841
+ [11,12] => [[1990..1990, When.M17n('JapaneseHoliday::即位礼正殿の儀')]],
815
842
  [11,14] => [[1915..1915, When.M17n('JapaneseHoliday::大嘗祭')], [1928..1928, When.M17n('JapaneseHoliday::大嘗祭')]],
816
843
  [11,16] => [[1915..1915, When.M17n('JapaneseHoliday::大饗第1日')], [1928..1928, When.M17n('JapaneseHoliday::大饗第1日')]],
817
844
  [11,23] => [[1873..1947, When.M17n('JapaneseHoliday::新嘗祭')], [1948..2100, When.M17n('JapaneseHoliday::勤労感謝の日')]],
818
- [12,23] => [[1989..2100, When.M17n('JapaneseHoliday::天皇誕生日')]],
845
+ [12,23] => [[1989..2018, When.M17n('JapaneseHoliday::天皇誕生日')]],
819
846
  [12,25] => [[1927..1947, When.M17n('JapaneseHoliday::大正天皇祭')]]
820
847
  }
821
848
 
@@ -1253,7 +1280,19 @@ class When::CalendarNote
1253
1280
  2396063 => [315.0, 1], # 弘化05(1848).01.01 [315.0, 0] 没
1254
1281
 
1255
1282
  2397583 => [ 15.0, 1], # 嘉永05(1852).02=15 [ 14.0, 0] 没
1256
- 2397584 => [ 16.0, 0] # 嘉永05(1852).02=16 [ 15.0, 1] 清明 (計算誤差の補正)
1283
+ 2397584 => [ 16.0, 0], # 嘉永05(1852).02=16 [ 15.0, 1] 清明 (計算誤差の補正)
1284
+
1285
+ 2451110 => [210.0, 1], # 平成10(1998).10.23 [209.0, 0] 没
1286
+ 2451111 => [211.0, 0], # 平成10(1998).10.24 [210.0, 1] 霜降 (計算誤差の補正)
1287
+
1288
+ 2459950 => [284.0, 0], # 令和05(2023).01.05 [285.0, 1] 小寒 (計算誤差の補正)
1289
+ 2459951 => [285.0, 1], # 令和05(2023).01.06 [285.0, 0] 没
1290
+
1291
+ 2460651 => [254.0, 0], # 令和06(2024).12.06 [255.0, 1] 大雪 (計算誤差の補正)
1292
+ 2460652 => [255.0, 1], # 令和06(2024).12.07 [255.0, 0] 没
1293
+
1294
+ 2461031 => [269.0, 0], # 令和07(2025).12.21 [270.0, 1] 冬至 (計算誤差の補正)
1295
+ 2461032 => [270.0, 1] # 令和07(2025).12.22 [270.0, 0] 没
1257
1296
  }
1258
1297
 
1259
1298
  class << self