when_exe 0.4.2 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
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