when_exe 0.3.5 → 0.3.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (194) hide show
  1. data/bin/irb.rc +1 -0
  2. data/bin/locales.rb +8 -6
  3. data/bin/when.rb +1 -1
  4. data/lib/when_exe.rb +231 -146
  5. data/lib/when_exe/basictypes.rb +108 -18
  6. data/lib/when_exe/calendarnote.rb +263 -116
  7. data/lib/when_exe/calendartypes.rb +413 -22
  8. data/lib/when_exe/coordinates.rb +58 -36
  9. data/lib/when_exe/core/compatibility.rb +8 -6
  10. data/lib/when_exe/core/extension.rb +40 -15
  11. data/lib/when_exe/ephemeris.rb +20 -19
  12. data/lib/when_exe/{region → ephemeris}/moon.rb +4 -4
  13. data/lib/when_exe/{region/ephemeric_notes.rb → ephemeris/notes.rb} +25 -6
  14. data/lib/when_exe/{region → ephemeris}/planets.rb +0 -0
  15. data/lib/when_exe/{region → ephemeris}/sun.rb +7 -3
  16. data/lib/when_exe/{region → ephemeris}/v50.rb +0 -0
  17. data/lib/when_exe/googlecalendar.rb +2 -2
  18. data/lib/when_exe/icalendar.rb +3 -3
  19. data/lib/when_exe/inspect.rb +130 -70
  20. data/lib/when_exe/locales/af.rb +2 -2
  21. data/lib/when_exe/locales/akt.rb +176 -0
  22. data/lib/when_exe/locales/ar.rb +2 -2
  23. data/lib/when_exe/locales/{locales.rb → autoload.rb} +6 -2
  24. data/lib/when_exe/locales/az.rb +2 -2
  25. data/lib/when_exe/locales/bg.rb +2 -2
  26. data/lib/when_exe/locales/bn.rb +2 -2
  27. data/lib/when_exe/locales/bs.rb +2 -2
  28. data/lib/when_exe/locales/ca.rb +2 -2
  29. data/lib/when_exe/locales/cs.rb +2 -2
  30. data/lib/when_exe/locales/cy.rb +2 -2
  31. data/lib/when_exe/locales/da.rb +2 -2
  32. data/lib/when_exe/locales/de.rb +2 -2
  33. data/lib/when_exe/locales/de_AT.rb +2 -2
  34. data/lib/when_exe/locales/de_CH.rb +2 -2
  35. data/lib/when_exe/locales/el.rb +2 -2
  36. data/lib/when_exe/locales/en.rb +2 -2
  37. data/lib/when_exe/locales/en_AU.rb +2 -2
  38. data/lib/when_exe/locales/en_CA.rb +2 -2
  39. data/lib/when_exe/locales/en_GB.rb +2 -2
  40. data/lib/when_exe/locales/en_IE.rb +2 -2
  41. data/lib/when_exe/locales/en_IN.rb +3 -3
  42. data/lib/when_exe/locales/en_NZ.rb +2 -2
  43. data/lib/when_exe/locales/en_US.rb +2 -2
  44. data/lib/when_exe/locales/en_ZA.rb +88 -0
  45. data/lib/when_exe/locales/encoding_conversion.rb +126 -0
  46. data/lib/when_exe/locales/eo.rb +2 -2
  47. data/lib/when_exe/locales/es.rb +2 -2
  48. data/lib/when_exe/locales/es_419.rb +2 -2
  49. data/lib/when_exe/locales/es_AR.rb +2 -2
  50. data/lib/when_exe/locales/es_CL.rb +2 -2
  51. data/lib/when_exe/locales/es_CO.rb +2 -2
  52. data/lib/when_exe/locales/es_CR.rb +2 -2
  53. data/lib/when_exe/locales/es_EC.rb +2 -2
  54. data/lib/when_exe/locales/es_MX.rb +2 -2
  55. data/lib/when_exe/locales/es_PA.rb +2 -2
  56. data/lib/when_exe/locales/es_PE.rb +2 -2
  57. data/lib/when_exe/locales/es_US.rb +84 -0
  58. data/lib/when_exe/locales/es_VE.rb +2 -2
  59. data/lib/when_exe/locales/et.rb +2 -2
  60. data/lib/when_exe/locales/eu.rb +2 -2
  61. data/lib/when_exe/locales/fa.rb +2 -2
  62. data/lib/when_exe/locales/fi.rb +3 -3
  63. data/lib/when_exe/locales/fr.rb +2 -2
  64. data/lib/when_exe/locales/fr_CA.rb +2 -2
  65. data/lib/when_exe/locales/fr_CH.rb +2 -2
  66. data/lib/when_exe/locales/gl.rb +2 -2
  67. data/lib/when_exe/locales/he.rb +3 -3
  68. data/lib/when_exe/locales/hi.rb +2 -2
  69. data/lib/when_exe/locales/hi_IN.rb +2 -2
  70. data/lib/when_exe/locales/hr.rb +2 -2
  71. data/lib/when_exe/locales/hu.rb +6 -5
  72. data/lib/when_exe/locales/iast.rb +90 -0
  73. data/lib/when_exe/locales/id.rb +2 -2
  74. data/lib/when_exe/locales/is.rb +2 -2
  75. data/lib/when_exe/locales/it.rb +2 -2
  76. data/lib/when_exe/locales/it_CH.rb +2 -2
  77. data/lib/when_exe/locales/ja.rb +2 -2
  78. data/lib/when_exe/locales/kn.rb +2 -2
  79. data/lib/when_exe/locales/ko.rb +2 -2
  80. data/lib/when_exe/locales/links.rb +3 -3
  81. data/lib/when_exe/locales/lo.rb +2 -2
  82. data/lib/when_exe/{parts → locales}/locale.rb +77 -49
  83. data/lib/when_exe/locales/lt.rb +6 -2
  84. data/lib/when_exe/locales/lv.rb +2 -2
  85. data/lib/when_exe/locales/mk.rb +2 -2
  86. data/lib/when_exe/locales/mn.rb +2 -2
  87. data/lib/when_exe/locales/ms.rb +2 -2
  88. data/lib/when_exe/locales/nb.rb +2 -2
  89. data/lib/when_exe/locales/ne.rb +2 -2
  90. data/lib/when_exe/locales/nl.rb +2 -2
  91. data/lib/when_exe/locales/nn.rb +2 -2
  92. data/lib/when_exe/locales/or.rb +2 -2
  93. data/lib/when_exe/locales/pl.rb +2 -2
  94. data/lib/when_exe/locales/pt.rb +2 -2
  95. data/lib/when_exe/locales/pt_BR.rb +2 -2
  96. data/lib/when_exe/locales/rm.rb +2 -2
  97. data/lib/when_exe/locales/ro.rb +2 -2
  98. data/lib/when_exe/locales/ru.rb +2 -2
  99. data/lib/when_exe/locales/sk.rb +2 -2
  100. data/lib/when_exe/locales/sl.rb +2 -2
  101. data/lib/when_exe/locales/sr.rb +2 -2
  102. data/lib/when_exe/locales/sv.rb +2 -2
  103. data/lib/when_exe/locales/sw.rb +2 -2
  104. data/lib/when_exe/locales/ta.rb +95 -0
  105. data/lib/when_exe/locales/th.rb +2 -2
  106. data/lib/when_exe/locales/tl.rb +3 -3
  107. data/lib/when_exe/locales/tr.rb +2 -2
  108. data/lib/when_exe/locales/transliteration_table.rb +62 -0
  109. data/lib/when_exe/locales/uk.rb +15 -15
  110. data/lib/when_exe/locales/ur.rb +2 -2
  111. data/lib/when_exe/locales/uz.rb +2 -2
  112. data/lib/when_exe/locales/vi.rb +2 -2
  113. data/lib/when_exe/locales/wo.rb +2 -2
  114. data/lib/when_exe/locales/zh_CN.rb +2 -2
  115. data/lib/when_exe/locales/zh_HK.rb +15 -15
  116. data/lib/when_exe/locales/zh_TW.rb +2 -2
  117. data/lib/when_exe/locales/zh_YUE.rb +77 -0
  118. data/lib/when_exe/mini_application.rb +22 -12
  119. data/lib/when_exe/parts/geometric_complex.rb +16 -1
  120. data/lib/when_exe/parts/method_cash.rb +184 -238
  121. data/lib/when_exe/parts/resource.rb +65 -16
  122. data/lib/when_exe/region/armenian.rb +56 -0
  123. data/lib/when_exe/region/bahai.rb +13 -13
  124. data/lib/when_exe/region/balinese.rb +33 -35
  125. data/lib/when_exe/region/chinese.rb +82 -78
  126. data/lib/when_exe/region/{chinese_calendar.rb → chinese/calendars.rb} +59 -40
  127. data/lib/when_exe/region/{chinese_epoch.rb → chinese/epochs.rb} +3 -4
  128. data/lib/when_exe/region/{chinese_twin.rb → chinese/twins.rb} +48 -51
  129. data/lib/when_exe/region/christian.rb +236 -127
  130. data/lib/when_exe/region/coptic.rb +9 -10
  131. data/lib/when_exe/region/dee.rb +48 -0
  132. data/lib/when_exe/region/discordian.rb +225 -0
  133. data/lib/when_exe/region/far_east.rb +2 -6
  134. data/lib/when_exe/region/french.rb +7 -17
  135. data/lib/when_exe/region/geologicalage.rb +0 -1
  136. data/lib/when_exe/region/goddess.rb +58 -0
  137. data/lib/when_exe/region/indian.rb +323 -231
  138. data/lib/when_exe/region/iranian.rb +159 -22
  139. data/lib/when_exe/region/islamic.rb +7 -9
  140. data/lib/when_exe/region/japanese.rb +14 -803
  141. data/lib/when_exe/region/japanese/calendars.rb +397 -0
  142. data/lib/when_exe/region/japanese/epochs.rb +426 -0
  143. data/lib/when_exe/region/{nihon_shoki.rb → japanese/nihon_shoki.rb} +0 -2
  144. data/lib/when_exe/region/{japanese_notes.rb → japanese/notes.rb} +179 -150
  145. data/lib/when_exe/region/japanese/residues.rb +1306 -0
  146. data/lib/when_exe/region/{japanese_twin.rb → japanese/twins.rb} +12 -15
  147. data/lib/when_exe/region/javanese.rb +16 -14
  148. data/lib/when_exe/region/jewish.rb +8 -9
  149. data/lib/when_exe/region/korean.rb +146 -35
  150. data/lib/when_exe/region/m17n.rb +8 -10
  151. data/lib/when_exe/region/martian.rb +44 -16
  152. data/lib/when_exe/region/mayan.rb +12 -10
  153. data/lib/when_exe/region/pope.rb +0 -1
  154. data/lib/when_exe/region/residue.rb +4 -5
  155. data/lib/when_exe/region/roman.rb +20 -24
  156. data/lib/when_exe/region/ryukyu.rb +3 -4
  157. data/lib/when_exe/region/shire.rb +97 -94
  158. data/lib/when_exe/region/symmetry.rb +50 -0
  159. data/lib/when_exe/region/thai.rb +164 -56
  160. data/lib/when_exe/region/tibetan.rb +86 -86
  161. data/lib/when_exe/region/vietnamese.rb +9 -12
  162. data/lib/when_exe/region/weekdate.rb +80 -0
  163. data/lib/when_exe/region/world.rb +65 -70
  164. data/lib/when_exe/region/yerm.rb +98 -0
  165. data/lib/when_exe/region/zoroastrian.rb +203 -0
  166. data/lib/when_exe/timestandard.rb +4 -4
  167. data/lib/when_exe/tmobjects.rb +1 -3
  168. data/lib/when_exe/tmposition.rb +13 -12
  169. data/lib/when_exe/tmreference.rb +11 -10
  170. data/lib/when_exe/version.rb +1 -1
  171. data/link_to_online_documents +3 -3
  172. data/test/examples/Residue.m17n +1 -1
  173. data/test/examples/Terms.m17n +1 -1
  174. data/test/test.rb +2 -1
  175. data/test/test/basictypes.rb +18 -2
  176. data/test/test/calendarnote.rb +1 -1
  177. data/test/test/calendartypes.rb +1 -1
  178. data/test/test/coordinates.rb +7 -7
  179. data/test/test/{region → ephemeris}/moon.rb +0 -0
  180. data/test/test/{region → ephemeris}/planets.rb +0 -0
  181. data/test/test/{region → ephemeris}/sun.rb +0 -0
  182. data/test/test/parts.rb +8 -13
  183. data/test/test/region/christian.rb +245 -0
  184. data/test/test/region/french.rb +16 -16
  185. data/test/test/region/iran.rb +34 -34
  186. data/test/test/region/japanese.rb +6 -4
  187. data/test/test/region/m17n.rb +8 -7
  188. data/test/test/region/mayan.rb +12 -12
  189. data/test/test/region/residue.rb +20 -4
  190. data/test/test/region/thai.rb +25 -3
  191. data/test/test/region/yerm.rb +146 -0
  192. metadata +39 -20
  193. data/lib/when_exe/region/japanese_residues.rb +0 -1212
  194. data/test/test/region/civil.rb +0 -124
@@ -6,7 +6,7 @@
6
6
  =end
7
7
 
8
8
  require 'when_exe/region/chinese'
9
- require 'when_exe/region/chinese_calendar'
9
+ require 'when_exe/region/chinese/calendars'
10
10
 
11
11
  module When
12
12
  class TM::CalendarEra
@@ -15,7 +15,6 @@ module When
15
15
  # 中国の年号
16
16
  #
17
17
  Chinese = [{'V'=>{'0618'=>{'A'=>'0618', 'B'=>'0618B', 'C'=>'0618C'}}}, self, [
18
- "namespace:[ja=http://ja.wikipedia.org/wiki/, en=http://en.wikipedia.org/wiki/]",
19
18
  "locale:[=ja:, en=en:]",
20
19
  'area:[中国#{?V=A}=ja:%%<元号>#%.<中国>,China#{?V=A}=en:Chinese_era_name]',
21
20
  [self,
@@ -679,7 +678,7 @@ module When
679
678
  ],
680
679
  [self,
681
680
  "period:[唐]",
682
- ["[武徳]1" , "@F" , 'name=[高祖];618-05-20^Chinese#{A:0523}'], # 甲子 武徳2年から戊寅暦を使用
681
+ ["[武徳]1" , "@F" , 'name=[高祖];618-05-20^Chinese#{A:0523}'], # 甲子 武徳2年から戊寅元暦を使用
683
682
  ["[貞観]1" , "@A" , "name=[太宗];627-01-01"], # 乙酉
684
683
  ["[永徽]1" , "@A" , "name=[高宗];650-01-01"], # 辛丑
685
684
  ["[顕慶]1" , "" , " 656-01-07"], # 壬申
@@ -1239,7 +1238,7 @@ module When
1239
1238
  [self,
1240
1239
  "period:[中華民国=ja:%%<民国紀元>,ROC=en:Chinese_era_name#The_Republic_of_China_Era]",
1241
1240
  ["[民国=ja:%%<民国紀元>,ROC=en:Chinese_era_name#The_Republic_of_China_Era]1",
1242
- "@F", "name=;1912-01-01^Gregorian?note=ChineseNotes"]
1241
+ "@F", "name=;1912-01-01^Gregorian?note=Chinese"]
1243
1242
  ]
1244
1243
  ]]
1245
1244
  end
@@ -9,69 +9,67 @@ module When
9
9
 
10
10
  class TM::CalendarEra
11
11
 
12
- # Chinese Luni-Solar Calendar Series for ChineseNote
13
- ChineseLuniSolarSeries = [self, [
14
- 'namespace:[en=http://en.wikipedia.org/wiki/, ja=http://ja.wikipedia.org/wiki/]',
15
- 'locale:[=en:, ja=ja:, alias]',
16
- 'area:[ChineseLuniSolarSeries=, 中国の暦月=]',
12
+ # Chinese Luni-Solar Calendar Series for Chinese Note
13
+ ChineseLuniSolar = [self, [
14
+ 'locale:[ja=ja:, en=en:]',
15
+ 'area:[中国の暦月=, *ChineseLuniSolar=]',
17
16
  ['[太初暦]1.01.01', '@CR', '1-01-01^ChineseTwin::太初暦', '85-01-01'], # 西暦が正になるところから開始(実際は-103.01.01)
18
17
  ['[四分暦]85.01.01', '@CR', '85-01-01^ChineseTwin::四分暦', '265-01-01'],
19
18
  ['[乾象暦]222.01.01', '@CR', '222-01-01^ChineseTwin::乾象暦', '281-01-01'],
20
19
  ['[景初暦]237.01.01', '@CR', '237-01-01^ChineseTwin::景初暦', '452-01-01'],
21
20
  ['[元嘉暦]445.01.01', '@CR', '445-01-01^ChineseTwin::元嘉暦', '510-01-01'],
22
21
  ['[大明暦]510.01.01', '@CR', '510-01-01^ChineseTwin::大明暦', '590-01-01'],
23
- ['[三紀暦]384.01.01', '@CR', '384-01-01^ChineseTwin::三紀暦', '418-01-01'],
24
- ['[玄始暦]412.01.01', '@CR', '412-01-01^ChineseTwin::玄始暦', '440-01-01'],
25
- ['[玄始暦]452.01.01', '@CR', '452-01-01^ChineseTwin::玄始暦', '523-01-01'],
26
- ['[正光暦]523.01.01', '@CR', '523-01-01^ChineseTwin::正光暦', '566-01-01'],
27
- ['[興和暦]540.01.01', '@CR', '540-01-01^ChineseTwin::興和暦', '551-01-01'],
28
- ['[天保暦]551.01.01', '@CR', '551-01-01^ChineseTwin::天保暦', '578-01-01'],
29
- ['[天和暦]566.01.01', '@CR', '566-01-01^ChineseTwin::天和暦', '579-01-01'],
30
- ['[大象暦]579.01.01', '@CR', '579-01-01^ChineseTwin::大象暦', '584-01-01'],
31
- ['[開皇暦]584.01.01', '@CR', '584-01-01^ChineseTwin::開皇暦', '597-01-01'],
32
- ['[大業暦]597.01.01', '@CR', '597-01-01^ChineseTwin::大業暦', '619-01-01'],
33
- ['[戊寅暦]619.01.01', '@CR', '619-01-01^ChineseTwin::戊寅暦', '645-01-01'],
34
- ['[平朔戊寅暦]645.01.01','@CR', '645-01-01^ChineseTwin::平朔戊寅暦','665-01-01'],
22
+ ['[三紀暦=]384.01.01', '@CR', '384-01-01^ChineseTwin::三紀暦', '418-01-01'],
23
+ ['[玄始暦=]412.01.01', '@CR', '412-01-01^ChineseTwin::玄始暦', '440-01-01'],
24
+ ['[玄始暦=]452.01.01', '@CR', '452-01-01^ChineseTwin::玄始暦', '523-01-01'],
25
+ ['[正光暦=]523.01.01', '@CR', '523-01-01^ChineseTwin::正光暦', '566-01-01'],
26
+ ['[興和暦=]540.01.01', '@CR', '540-01-01^ChineseTwin::興和暦', '551-01-01'],
27
+ ['[天保暦=]551.01.01', '@CR', '551-01-01^ChineseTwin::天保暦', '578-01-01'],
28
+ ['[天和暦=]566.01.01', '@CR', '566-01-01^ChineseTwin::天和暦', '579-01-01'],
29
+ ['[大象暦=]579.01.01', '@CR', '579-01-01^ChineseTwin::大象暦', '584-01-01'],
30
+ ['[開皇暦=]584.01.01', '@CR', '584-01-01^ChineseTwin::開皇暦', '597-01-01'],
31
+ ['[大業暦=]597.01.01', '@CR', '597-01-01^ChineseTwin::大業暦', '619-01-01'],
32
+ ['[戊寅元暦]619.01.01', '@CR', '619-01-01^ChineseTwin::戊寅元暦', '645-01-01'],
33
+ ['[平朔戊寅暦=]645.01.01','@CR','645-01-01^ChineseTwin::平朔戊寅暦','665-01-01'],
35
34
  ['[麟徳暦]665.01.01', '@CR', '665-01-01^ChineseTwin::麟徳暦', '729-01-01'],
36
35
  ['[大衍暦]729.01.01', '@CR', '729-01-01^ChineseTwin::大衍暦', '762-01-01'],
37
36
  ['[五紀暦]762.01.01', '@CR', '762-01-01^ChineseTwin::五紀暦', '784-01-01'],
38
- ['[正元暦]784.01.01', '@CR', '784-01-01^ChineseTwin::正元暦', '807-01-01'],
37
+ ['[正元暦=]784.01.01', '@CR', '784-01-01^ChineseTwin::正元暦', '807-01-01'],
39
38
  ['[宣明暦]822.01.01', '@CR', '822-01-01^ChineseTwin::宣明暦', '893-01-01'],
40
- ['[崇玄暦]893.01.01', '@CR', '893-01-01^ChineseTwin::崇玄暦', '956-01-01'],
39
+ ['[崇玄暦=]893.01.01', '@CR', '893-01-01^ChineseTwin::崇玄暦', '956-01-01'],
41
40
  ['[授時暦]1281.01.01', '@CR','1281-01-01^ChineseTwin::授時暦', '1368-01-01'],
42
41
  ['[大統暦]1368.01.01', '@CR','1368-01-01^ChineseTwin::大統暦', '1645-01-01']
43
42
  ]]
44
43
 
45
- # Chinese Solar Calendar Series for ChineseNote
46
- ChineseSolarSeries = [self, [
47
- 'namespace:[en=http://en.wikipedia.org/wiki/, ja=http://ja.wikipedia.org/wiki/]',
48
- 'locale:[=en:, ja=ja:, alias]',
49
- 'area:[ChineseSolarSeries=, 中国の節月=]',
50
- ['[太初暦]1.01.01', '@CR', '1-01-01^ChineseTwin::太初暦(節月)', '85-01-06'], # 西暦が正になるところから開始(実際は-103.01.15)
51
- ['[四分暦]85.01.07', '@CR', '85-01-07^ChineseTwin::四分暦(節月)', '264-12-28'],
52
- ['[乾象暦]221.12.23', '@CR', '221-12-23^ChineseTwin::乾象暦(節月)', '280-12-31'],
53
- ['[景初暦]237.01.07', '@CR', '237-01-07^ChineseTwin::景初暦(節月)', '451-12-31'],
54
- ['[元嘉暦]444.12.22', '@CR', '444-12-22^ChineseTwin::元嘉暦(節月)', '509-12-24'],
55
- ['[大明暦]509.12.23', '@CR', '509-12-23^ChineseTwin::大明暦(節月)', '590-01-08'],
56
- ['[三紀暦]384.01.02', '@CR', '384-01-02^ChineseTwin::三紀暦(節月)', '418-01-16'],
57
- ['[玄始暦]411.12.26', '@CR', '411-12-26^ChineseTwin::玄始暦(節月)', '440-01-15'],
58
- ['[玄始暦]452.01.02', '@CR', '452-01-02^ChineseTwin::玄始暦(節月)', '522-12-29'],
59
- ['[正光暦]522.12.29', '@CR', '522-12-29^ChineseTwin::正光暦(節月)', '566-01-05'],
60
- ['[興和暦]539.12.22', '@CR', '539-12-22^ChineseTwin::興和暦(節月)', '550-12-20'],
61
- ['[天保暦]550.12.19', '@CR', '550-12-19^ChineseTwin::天保暦(節月)', '577-12-21'],
62
- ['[天和暦]566.01.05', '@CR', '566-01-05^ChineseTwin::天和暦(節月)', '579-01-11'],
63
- ['[大象暦]579.01.11', '@CR', '579-01-11^ChineseTwin::大象暦(節月)', '584-01-15'],
64
- ['[開皇暦]584.01.16', '@CR', '584-01-16^ChineseTwin::開皇暦(節月)', '596-12-23'],
65
- ['[大業暦]596.12.22', '@CR', '596-12-22^ChineseTwin::大業暦(節月)', '618-12-19'],
66
- ['[戊寅暦]618.12.19', '@CR', '618-12-19^ChineseTwin::戊寅暦(節月)', '664-12-21'],
67
- ['[麟徳暦]664.12.21', '@CR', '664-12-21^ChineseTwin::麟徳暦(節月)', '729-01-03'],
68
- ['[大衍暦]729.01.03', '@CR', '729-01-03^ChineseTwin::大衍暦(節月)', '761-12-29'],
69
- ['[五紀暦]761.12.29', '@CR', '761-12-29^ChineseTwin::五紀暦(節月)', '783-12-26'],
70
- ['[正元暦]783.12.26', '@CR', '783-12-26^ChineseTwin::正元暦(節月)', '807-01-11'],
71
- ['[宣明暦]821.01.01', '@CR', '821-01-01^ChineseTwin::宣明暦(節月)', '892-12-22'], # 年の始めに遡って開始(実際は12.27)
72
- ['[崇玄暦]892.12.22', '@CR', '892-12-22^ChineseTwin::崇玄暦(節月)', '956-01-15'],
73
- ['[授時暦]1280.01.01', '@CR', '1280-01-01^ChineseTwin::授時暦(節月)','1367-12-24'],
74
- ['[大統暦]1367.12.24', '@CR', '1367-12-24^ChineseTwin::大統暦(節月)','1644-12-24']
44
+ # Chinese Solar Calendar Series for Chinese Note
45
+ ChineseSolar = [self, [
46
+ 'locale:[ja=ja:, en=en:]',
47
+ 'area:[中国の節月=, *ChineseSolar=]',
48
+ ['[太初暦]1.01.01', '@CR', '1-01-01^ChineseTwin::太初暦(節月)', '85-01-06'], # 西暦が正になるところから開始(実際は-103.01.15)
49
+ ['[四分暦]85.01.07', '@CR', '85-01-07^ChineseTwin::四分暦(節月)', '264-12-28'],
50
+ ['[乾象暦]221.12.23', '@CR', '221-12-23^ChineseTwin::乾象暦(節月)', '280-12-31'],
51
+ ['[景初暦]237.01.07', '@CR', '237-01-07^ChineseTwin::景初暦(節月)', '451-12-31'],
52
+ ['[元嘉暦]444.12.22', '@CR', '444-12-22^ChineseTwin::元嘉暦(節月)', '509-12-24'],
53
+ ['[大明暦]509.12.23', '@CR', '509-12-23^ChineseTwin::大明暦(節月)', '590-01-08'],
54
+ ['[三紀暦=]384.01.02', '@CR', '384-01-02^ChineseTwin::三紀暦(節月)', '418-01-16'],
55
+ ['[玄始暦=]411.12.26', '@CR', '411-12-26^ChineseTwin::玄始暦(節月)', '440-01-15'],
56
+ ['[玄始暦=]452.01.02', '@CR', '452-01-02^ChineseTwin::玄始暦(節月)', '522-12-29'],
57
+ ['[正光暦=]522.12.29', '@CR', '522-12-29^ChineseTwin::正光暦(節月)', '566-01-05'],
58
+ ['[興和暦=]539.12.22', '@CR', '539-12-22^ChineseTwin::興和暦(節月)', '550-12-20'],
59
+ ['[天保暦=]550.12.19', '@CR', '550-12-19^ChineseTwin::天保暦(節月)', '577-12-21'],
60
+ ['[天和暦=]566.01.05', '@CR', '566-01-05^ChineseTwin::天和暦(節月)', '579-01-11'],
61
+ ['[大象暦=]579.01.11', '@CR', '579-01-11^ChineseTwin::大象暦(節月)', '584-01-15'],
62
+ ['[開皇暦=]584.01.16', '@CR', '584-01-16^ChineseTwin::開皇暦(節月)', '596-12-23'],
63
+ ['[大業暦=]596.12.22', '@CR', '596-12-22^ChineseTwin::大業暦(節月)', '618-12-19'],
64
+ ['[戊寅元暦]618.12.19', '@CR', '618-12-19^ChineseTwin::戊寅元暦(節月)', '664-12-21'],
65
+ ['[麟徳暦]664.12.21', '@CR', '664-12-21^ChineseTwin::麟徳暦(節月)', '729-01-03'],
66
+ ['[大衍暦]729.01.03', '@CR', '729-01-03^ChineseTwin::大衍暦(節月)', '761-12-29'],
67
+ ['[五紀暦]761.12.29', '@CR', '761-12-29^ChineseTwin::五紀暦(節月)', '783-12-26'],
68
+ ['[正元暦=]783.12.26', '@CR', '783-12-26^ChineseTwin::正元暦(節月)', '807-01-11'],
69
+ ['[宣明暦]821.01.01', '@CR', '821-01-01^ChineseTwin::宣明暦(節月)', '892-12-22'], # 年の始めに遡って開始(実際は12.27)
70
+ ['[崇玄暦=]892.12.22', '@CR', '892-12-22^ChineseTwin::崇玄暦(節月)', '956-01-15'],
71
+ ['[授時暦]1280.01.01', '@CR', '1280-01-01^ChineseTwin::授時暦(節月)', '1367-12-24'],
72
+ ['[大統暦]1367.12.24', '@CR', '1367-12-24^ChineseTwin::大統暦(節月)', '1644-12-24']
75
73
  ]]
76
74
  end
77
75
 
@@ -106,7 +104,6 @@ module When
106
104
  }
107
105
 
108
106
  ChineseTwin = [{}, When::BasicTypes::M17n, ChineseSolar.twin('ChineseTwin', [
109
- "namespace:[en=http://en.wikipedia.org/wiki/, ja=http://ja.wikipedia.org/wiki/]",
110
107
  "locale:[=ja:, en=en:, alias]",
111
108
  "area:[中国,China]",
112
109
 
@@ -223,7 +220,7 @@ module When
223
220
  ],
224
221
 
225
222
  [ChineseLuniSolar,
226
- 'name:[戊寅暦]',
223
+ 'name:[戊寅元暦]',
227
224
  'time_basis:+00,+#{P:00}',
228
225
  {'formula'=>['12S', '1L'].map {|f| [
229
226
  Ephemeris::ChineseTrueLunation, {
@@ -9,12 +9,13 @@ module When
9
9
 
10
10
  class BasicTypes::M17n
11
11
 
12
- ChristianTerms = [self, [
13
- "namespace:[en=http://en.wikipedia.org/wiki/, ja=http://ja.wikipedia.org/wiki/]",
12
+ Christian = [self, [
14
13
  "locale:[=en:, ja=ja:, alias]",
15
- "names:[ChristianTerms=]",
16
- "[Julian=en:Julian_calendar, ユリウス暦 ]",
17
- "[Gregorian=en:Gregorian_calendar, グレゴリオ暦]",
14
+ "names:[Christian=]",
15
+ "[Julian=en:Julian_calendar, ユリウス暦 ]",
16
+ "[Gregorian=en:Gregorian_calendar, グレゴリオ暦 ]",
17
+ "[RevisedJulian=en:Revised_Julian_calendar, 修正ユリウス暦]",
18
+ "[Swedish=en:Swedish_calendar, スウェーデン暦]",
18
19
  "[Civil in the West=en:Civil_calendar, 西暦, *alias:Civil]"
19
20
  ]]
20
21
  end
@@ -22,11 +23,10 @@ module When
22
23
  class TM::CalendarEra
23
24
  # Anno Mundi Era
24
25
  Byzantine = [self, [
25
- "namespace:[en=http://en.wikipedia.org/wiki/, ja=http://ja.wikipedia.org/wiki/]",
26
26
  "locale:[=en:, ja=ja:, alias]",
27
27
  "period:[Byzantine=en:Byzantine_calendar, ビザンティン暦=ja:%%<世界創造紀元>]",
28
28
  ["[AM=en:Anno_Mundi, 世界創造紀元, alias:Anno_Mundi]6497.9.1",
29
- "Calendar Epoch", "989-09-01^Julian?border=[-1,9,1]&note=RomanNote", "1453=5-29"]
29
+ "Calendar Epoch", "989-09-01^Julian?border=[-1,9,1]&note=Roman", "1453=5-29"]
30
30
  ]]
31
31
  end
32
32
 
@@ -37,6 +37,11 @@ module When
37
37
  #
38
38
  class Christian < When::TM::Calendar
39
39
 
40
+ # デフォルトの改暦日付(ユリウス通日)
41
+ #
42
+ # @private
43
+ DefaultReformDate = 2299161 # 1582-10-15
44
+
40
45
  # @private
41
46
  #
42
47
  # ::Date オブジェクトに対応する暦法名
@@ -52,11 +57,7 @@ module When
52
57
 
53
58
  # 年月日 -> 通日
54
59
  #
55
- # @param [Numeric] y 年
56
- # @param [Integer] m 月 (0 始まり)
57
- # @param [Integer] d 日 (0 始まり)
58
- #
59
- # @return [Integer] 通日
60
+ # @see When::CalendarTypes::TableBased#_coordinates_to_number
60
61
  #
61
62
  def _coordinates_to_number(y,m,d)
62
63
  m = (+m + 10) % 12
@@ -68,12 +69,7 @@ module When
68
69
 
69
70
  # 通日 - > 年月日
70
71
  #
71
- # @param [Integer] jdn 通日
72
- #
73
- # @return [Array<Integer>] ( y, m, d )
74
- # [ y 年 ]
75
- # [ m 月 (0 始まり) ]
76
- # [ d 日 (0 始まり) ]
72
+ # @see When::CalendarTypes::TableBased#_number_to_coordinates
77
73
  #
78
74
  def _number_to_coordinates(jdn)
79
75
  j = jdn.to_i + 1401
@@ -88,14 +84,7 @@ module When
88
84
 
89
85
  # 暦要素数
90
86
  #
91
- # @overload _length(date)
92
- # @param [Array<Integer>] date ( 年 )
93
- # @return [Integer] 12 (=その年の月数)
94
- #
95
- # @overload _length(date)
96
- # @param [Array<Integer>] date ( 年, 月 )
97
- # @note 月は 0 始まりの通番
98
- # @return [Integer] その年月の日数
87
+ # @see When::CalendarTypes::TableBased#_length
99
88
  #
100
89
  def _length(date)
101
90
  yy, mm = date
@@ -104,17 +93,18 @@ module When
104
93
  return (((((mm + 10) % 12) % 5) % 2) == 0) ? 31 : 30
105
94
  end
106
95
 
96
+ # 復活祭の遅延日数
97
+ #
98
+ # @private
99
+ def _easter_delay(year)
100
+ 0
101
+ end
102
+
107
103
  private
108
104
 
109
105
  def _normalize(args=[], options={})
110
106
  raise TypeError, "#{self.class} is abstract class" unless @label
111
- @note = When.CalendarNote(@note || 'Christian')
112
- @indices ||= [
113
- Index.new({:unit =>12,
114
- :trunk=>m17n('[::_m:CalendarTerms::Month::*]')}),
115
-
116
- DefaultDayIndex
117
- ]
107
+ @note = When.CalendarNote(@note || 'Christian')
118
108
  super
119
109
  end
120
110
  end
@@ -143,69 +133,127 @@ module When
143
133
  private
144
134
 
145
135
  def _normalize(args=[], options={})
146
- @label ||= When.Resource('_m:ChristianTerms::Julian')
136
+ @label ||= 'Christian::Julian'
147
137
  super
148
138
  end
149
139
  end
150
140
 
151
141
  #
152
- # Gregorian Calendar
142
+ # Swedish Calendar
153
143
  #
154
- class Gregorian < Christian
144
+ class Swedish < Julian
155
145
 
156
- # 通日 - > ユリウス暦とグレゴリオ暦の差
146
+ # デフォルトの改暦日付(ユリウス通日)
147
+ #
148
+ # @private
149
+ DefaultReformDate = 2361390 # 1753-03-01
150
+
151
+ # @private
152
+ # Julian - 17000229 17120229
153
+ SwedishCalendarRange = 2342042...2346425
154
+
155
+ # @private
156
+ ExtraDate = [1712,1,29]
157
+
158
+ # @private
159
+ Length = {
160
+ [1700, nil] => 365,
161
+ [1700, 1] => 28,
162
+ [1712, nil] => 367,
163
+ [1712, 1] => 30
164
+ }
165
+
166
+ # Ref: http://www.ortelius.de/kalender/east_en.php
167
+ # @private
168
+ EasterDelay = {
169
+ 1741 => -7,
170
+ 1742 => -35,
171
+ 1744 => -7,
172
+ 1745 => -7,
173
+ 1747 => -28,
174
+ 1748 => -7,
175
+ 1750 => -28,
176
+ 1751 => -7,
177
+ 1752 => -7,
178
+ 1802 => +7,
179
+ 1805 => +7,
180
+ 1818 => +7
181
+ }
182
+
183
+ # 年月日 -> 通日
157
184
  #
158
- # @param [Integer] jdn 通日
185
+ # @see When::CalendarTypes::TableBased#_coordinates_to_number
159
186
  #
160
- # @return [Integer] ユリウス暦とグレゴリオ暦の差
187
+ def _coordinates_to_number(y,m,d)
188
+ jdn = super
189
+ return SwedishCalendarRange.last if [+y, m, d] == ExtraDate
190
+ SwedishCalendarRange.include?(jdn-1) ? jdn-1 : jdn
191
+ end
192
+
193
+ # 通日 - > 年月日
161
194
  #
162
- def self.diff(jdn)
163
- div, mod = (jdn - 77528).divmod(36524.25)
164
- c = div - 45
165
- (3*(c-3)).div(4)+1
195
+ # @see When::CalendarTypes::TableBased#_number_to_coordinates
196
+ #
197
+ def _number_to_coordinates(jdn)
198
+ return ExtraDate.dup if jdn == SwedishCalendarRange.last
199
+ super(SwedishCalendarRange.include?(jdn) ? jdn+1 : jdn)
166
200
  end
167
201
 
168
- # 年月日 -> 通日
202
+ # 暦要素数
203
+ #
204
+ # @see When::CalendarTypes::TableBased#_length
169
205
  #
170
- # @param [Numeric] y 年
171
- # @param [Integer] m (0 始まり)
172
- # @param [Integer] d 日 (0 始まり)
206
+ def _length(date)
207
+ y, m = date
208
+ Length[[+y,m]] || super
209
+ end
210
+
211
+ # 復活祭の遅延日数
212
+ #
213
+ # @private
214
+ def _easter_delay(year)
215
+ EasterDelay[year] || 0
216
+ end
217
+
218
+ private
219
+
220
+ def _normalize(args=[], options={})
221
+ @label ||= 'Christian::Swedish'
222
+ super
223
+ end
224
+ end
225
+
226
+ #
227
+ # Variation of Christian Calendar
228
+ #
229
+ class ReformVariation < Christian
230
+
231
+ # 年月日 -> 通日
173
232
  #
174
- # @return [Integer] 通日
233
+ # @see When::CalendarTypes::TableBased#_coordinates_to_number
175
234
  #
176
235
  def _coordinates_to_number(y,m,d)
177
- c = ((m < 2) ? +y-1 : +y).to_i.div(100)
178
- super - ((3*(c-3)).div(4)+1)
236
+ super - _diff_from_century(((m < 2) ? +y-1 : +y).to_i.div(100))
179
237
  end
180
238
 
181
239
  # 通日 - > 年月日
182
240
  #
183
- # @param [Integer] jdn 通日
184
- #
185
- # @return [Array<Integer>] [ y, m, d ]
186
- # y 年
187
- # m 月 (0 始まり)
188
- # d 日 (0 始まり)
241
+ # @see When::CalendarTypes::TableBased#_number_to_coordinates
189
242
  #
190
243
  def _number_to_coordinates(jdn)
191
- super(jdn + Gregorian.diff(jdn))
244
+ super(jdn + _diff_from_century(_century_from_jdn(jdn)))
192
245
  end
193
246
 
194
247
  # 暦要素数
195
248
  #
196
- # @overload _length(date)
197
- # @param [Array<Integer>] date ( 年 )
198
- # @return [Integer] 12 (=その年の月数)
199
- #
200
- # @overload _length(date)
201
- # @param [Array<Integer>] date ( 年, 月 )
202
- # @note 月は 0 始まりの通番
203
- # @return [Integer] その年月の日数
249
+ # @see When::CalendarTypes::TableBased#_length
204
250
  #
205
251
  def _length(date)
206
252
  yy, mm = date
207
- return 28 if (((yy % 400) != 0) && ((yy % 100) == 0) && (mm == 1))
208
- return super
253
+ return super unless mm == 1 # 2月でなければユリウス暦と同じ
254
+ cc, yy = yy.divmod(100)
255
+ return super unless yy == 0 # 100で割り切れない年はユリウス暦と同じ
256
+ 29 - (_diff_from_century(cc) - _diff_from_century(cc-1))
209
257
  end
210
258
 
211
259
  # 太陰方程式
@@ -216,13 +264,78 @@ module When
216
264
  #
217
265
  def _lunar_equation(year)
218
266
  h = +year.div(100)
219
- -h + h.div(4) + (8*(h+11)).div(25) - 3
267
+ (8*(h+11)).div(25) - (_diff_from_century(h) + 5)
268
+ end
269
+ end
270
+
271
+ #
272
+ # Gregorian Calendar
273
+ #
274
+ class Gregorian < ReformVariation
275
+
276
+ # 百年代 - > ユリウス暦とグレゴリオ暦の差
277
+ #
278
+ # @param [Integer] century 百年代
279
+ #
280
+ # @return [Integer] ユリウス暦とグレゴリオ暦の差
281
+ #
282
+ def _diff_from_century(century)
283
+ (3*(century-3)).div(4)+1
284
+ end
285
+
286
+ # 通日 - > 百年代
287
+ #
288
+ # @param [Integer] jdn 通日
289
+ #
290
+ # @return [Integer] 百年代
291
+ #
292
+ def _century_from_jdn(jdn)
293
+ (4 * jdn - 6884477).div(146097)
220
294
  end
221
295
 
222
296
  private
223
297
 
224
298
  def _normalize(args=[], options={})
225
- @label ||= When.Resource('_m:ChristianTerms::Gregorian')
299
+ @label ||= 'Christian::Gregorian'
300
+ super
301
+ end
302
+ end
303
+
304
+ #
305
+ # Revised Julian Calendar
306
+ #
307
+ class RevisedJulian < ReformVariation
308
+
309
+ # デフォルトの改暦日付(ユリウス通日)
310
+ #
311
+ # @private
312
+ DefaultReformDate = 2423707 # 1923-10-14
313
+
314
+ # 百年代 - > ユリウス暦と修正ユリウス暦の差
315
+ #
316
+ # @param [Integer] century 百年代
317
+ #
318
+ # @return [Integer] ユリウス暦と修正ユリウス暦の差
319
+ #
320
+ def _diff_from_century(century)
321
+ (7*(century-1)).div(9)-1
322
+ end
323
+
324
+ # 通日 - > 百年代
325
+ #
326
+ # @param [Integer] jdn 通日
327
+ #
328
+ # @return [Integer] 百年代
329
+ #
330
+ def _century_from_jdn(jdn)
331
+ (9 * jdn - 15490078).div(328718)
332
+ end
333
+
334
+ private
335
+
336
+ def _normalize(args=[], options={})
337
+ @label ||= 'Christian::RevisedJulian'
338
+ # @diff ||= [-2, -1, -1, 0, 1, 2, 2, 3, 4, 5] # 1~10世紀の各世紀のユリウス暦と差の日数
226
339
  super
227
340
  end
228
341
  end
@@ -233,7 +346,7 @@ module When
233
346
  class Civil < Gregorian
234
347
 
235
348
  #
236
- # グレゴリオ暦への改暦日付
349
+ # 改暦日付
237
350
  #
238
351
  # @return [Integer]
239
352
  #
@@ -258,34 +371,25 @@ module When
258
371
 
259
372
  # 年月日 -> 通日
260
373
  #
261
- # @param [Numeric] y 年
262
- # @param [Integer] m 月 (0 始まり)
263
- # @param [Integer] d 日 (0 始まり)
264
- #
265
- # @return [Integer] 通日
374
+ # @see When::CalendarTypes::TableBased#_coordinates_to_number
266
375
  #
267
376
  def _coordinates_to_number(y,m,d)
268
377
  skip, limit = @the_length[[y,m]]
269
378
  d += skip if skip && d >= limit
270
- jdn = super(y,m,d)
271
- jdn >= @reform_jdn ? jdn : @past._coordinates_to_number(y + @origin_of_MSC - @past.origin_of_MSC, m, d)
379
+ jdn = @new._coordinates_to_number(y,m,d)
380
+ jdn >= @reform_jdn ? jdn : @old._coordinates_to_number(y + @origin_of_MSC - @old.origin_of_MSC, m, d)
272
381
  end
273
382
 
274
383
  # 通日 - > 年月日
275
384
  #
276
- # @param [Integer] jdn 通日
277
- #
278
- # @return [Array<Integer>] ( y, m, d )
279
- # [ y 年 ]
280
- # [ m 月 (0 始まり) ]
281
- # [ d 日 (0 始まり) ]
385
+ # @see When::CalendarTypes::TableBased#_number_to_coordinates
282
386
  #
283
387
  def _number_to_coordinates(jdn)
284
388
  if jdn >= @reform_jdn
285
- date = super
389
+ date = @new._number_to_coordinates(jdn)
286
390
  else
287
- date = @past._number_to_coordinates(jdn)
288
- date[0] -= @origin_of_MSC - @past.origin_of_MSC
391
+ date = @old._number_to_coordinates(jdn)
392
+ date[0] -= @origin_of_MSC - @old.origin_of_MSC
289
393
  end
290
394
  skip, limit = @the_length[date[0..-2]]
291
395
  date[2] -= skip if skip && date[2] >= limit
@@ -294,22 +398,15 @@ module When
294
398
 
295
399
  # 暦要素数
296
400
  #
297
- # @overload _length(date)
298
- # @param [Array<Integer>] date ( 年 )
299
- # @return [Integer] 12 (=その年の月数)
300
- #
301
- # @overload _length(date)
302
- # @param [Array<Integer>] date ( 年, 月 )
303
- # @note 月は 0 始まりの通番
304
- # @return [Integer] その年月の日数
401
+ # @see When::CalendarTypes::TableBased#_length
305
402
  #
306
403
  def _length(date)
307
404
  return @the_length[date][2] if @the_length[date]
308
405
  yy, mm = date
309
406
  (yy > @reform_date[0]) ||
310
407
  (yy == @reform_date[0] && (!mm || mm >= @reform_date[1])) ?
311
- super :
312
- @past._length([yy + @origin_of_MSC - @past.origin_of_MSC, mm])
408
+ @new._length(date) :
409
+ @old._length([yy + @origin_of_MSC - @old.origin_of_MSC, mm])
313
410
  end
314
411
 
315
412
  # 太陰方程式
@@ -319,27 +416,35 @@ module When
319
416
  # @note 太陽暦日の補正も、本メソッドで行う
320
417
  #
321
418
  def _lunar_equation(year)
322
- year >= @the_easter ? super : 0
419
+ year >= @the_easter ? @new._lunar_equation(year) : @old._lunar_equation(year)
420
+ end
421
+
422
+ # 復活祭の遅延日数
423
+ #
424
+ # @private
425
+ def _easter_delay(year)
426
+ @old._easter_delay(year)
323
427
  end
324
428
 
325
429
  private
326
430
 
327
431
  # オブジェクトの正規化
328
432
  #
329
- # @past = グレゴリオ暦への改暦前の暦法
433
+ # @old = 改暦前の暦法(デフォルトはユリウス暦)
434
+ # @new = 改暦後の暦法(デフォルトはグレゴリオ暦)
330
435
  # @reform_date = 改暦日付(月日は 1 オリジンで指定し、0 オリジンに直して保持)
331
436
  # @reform_jdn = 改暦日付のユリウス通日
332
437
  # @reform = reform_date か reform_jdn を内容で判別し、どちらかに反映する
333
- # @the_easter = グレゴリオ暦の復活祭計算の適用を始める年
438
+ # @the_easter = 新暦法の復活祭計算の適用を始める年
334
439
  # @the_length = 通常と異なる日付となる年月の情報({[年,月]=>[スキップした日数, スキップし始める日, 月の日数]})
335
440
  #
336
441
  def _normalize(args=[], options={})
337
- @label ||= When.Resource('_m:ChristianTerms::Civil')
442
+ @label ||= 'Christian::Civil'
338
443
 
339
444
  # 前後の暦法
340
- @past = When.Calendar(@past || 'Julian')
341
- gregorian = When.Calendar('Gregorian')
342
- @indices ||= @past.indices
445
+ @old = When.Calendar(@old || 'Julian')
446
+ @new = When.Calendar(@new || 'Gregorian')
447
+ @indices ||= @old.indices
343
448
 
344
449
  # 改暦日付 (0 オリジン)
345
450
  @reform = When::Coordinates::Pair._en_pair_date_time(@reform) if @reform.kind_of?(String)
@@ -353,27 +458,27 @@ module When
353
458
  @reform_date = When::Coordinates::Pair._en_pair_date_time(@reform_date) if @reform_date.kind_of?(String)
354
459
  @reform_date = @reform_date.map {|c| c.to_i}
355
460
  (1..2).each {|i| @reform_date[i] = @reform_date[i] ? @reform_date[i] - 1 : 0 }
356
- @reform_jdn = gregorian._coordinates_to_number(*@reform_date)
461
+ @reform_jdn = @new._coordinates_to_number(*@reform_date)
357
462
  else
358
- @reform_jdn ||= 2299161 # 1582-10-15
463
+ @reform_jdn ||= [@old.class::DefaultReformDate, @new.class::DefaultReformDate].max
359
464
  @reform_jdn = @reform_jdn.to_i
360
- @reform_date = gregorian._number_to_coordinates(@reform_jdn)
465
+ @reform_date = @new._number_to_coordinates(@reform_jdn)
361
466
  end
362
- last_date = @past._number_to_coordinates(@reform_jdn-1)
467
+ last_date = @old._number_to_coordinates(@reform_jdn-1)
363
468
 
364
469
  # 復活祭との前後関係
365
- @the_easter = @reform_jdn > When.CalendarNote('Christian').easter(@reform_date[0], gregorian) ? @reform_date[0]+1 : @reform_date[0]
470
+ @the_easter = @reform_jdn > When.CalendarNote('Christian').easter(@reform_date[0], @new) ? @reform_date[0]+1 : @reform_date[0]
366
471
 
367
472
  # 月の日数
368
- this_month = @reform_date[0..1]
369
- greg_length = gregorian._length(this_month)
370
- @the_length = {}
473
+ this_month = @reform_date[0..1]
474
+ new_length = @new._length(this_month)
475
+ @the_length = {}
371
476
  if @reform_date[1] == last_date[1] # 同一月内に閉じた改暦
372
477
  skipped_length = @reform_date[2] - last_date[2] - 1
373
- @the_length[this_month] = [skipped_length, last_date[2]+1, greg_length-skipped_length]
478
+ @the_length[this_month] = [skipped_length, last_date[2]+1, new_length-skipped_length]
374
479
  else
375
480
  last_month = [(@reform_date[1] > last_date[1] ? @reform_date[0] : @reform_date[0]-1), last_date[1]]
376
- @the_length[this_month] = [@reform_date[2], 0, greg_length - @reform_date[2]]
481
+ @the_length[this_month] = [@reform_date[2], 0, new_length - @reform_date[2]]
377
482
  @the_length[last_month] = [false, false, last_date[2]+1]
378
483
  end
379
484
 
@@ -411,7 +516,7 @@ module When
411
516
  #
412
517
  # @return [Array<Numeric>] その年の境界
413
518
  #
414
- def border(date=[], frame=When.Calendar('Gregorian'))
519
+ def border(date=[], frame=When::Gregorian)
415
520
  frame._encode(frame._number_to_coordinates(frame.note.easter(date[0], frame)), false)
416
521
  end
417
522
 
@@ -429,8 +534,7 @@ module When
429
534
  #
430
535
  class CalendarNote::Christian < CalendarNote
431
536
 
432
- NoteObjects = [When::BasicTypes::M17n, [
433
- "namespace:[en=http://en.wikipedia.org/wiki/, ja=http://ja.wikipedia.org/wiki/]",
537
+ Notes = [When::BasicTypes::M17n, [
434
538
  "locale:[=en:, ja=ja:, alias]",
435
539
  "names:[Christian]",
436
540
 
@@ -515,6 +619,11 @@ module When
515
619
  60 => "Corpus Christi",
516
620
  }.update(moveable_feasts)
517
621
 
622
+ #
623
+ # 暦法によってイベントの動作を変えるか否か
624
+ #
625
+ CalendarDepend = true
626
+
518
627
  # 週日補正フラグ
519
628
  # @return [Integer]
520
629
  attr_reader :w
@@ -554,11 +663,11 @@ module When
554
663
  # 七曜
555
664
  #
556
665
  # @param [When::TM::TemporalPosition] date
557
- # @param [When::TM::ReferenceSystem] frame 使用する暦法(ダミー)
666
+ # @param [When::TM::CalDate] base (not used)
558
667
  #
559
668
  # @return [When::Coordinates::Residue] 七曜
560
669
  #
561
- def week(date, frame=nil)
670
+ def week(date, base=nil)
562
671
  When.Residue('Week')[date.to_i % 7]
563
672
  end
564
673
 
@@ -566,7 +675,7 @@ module When
566
675
  #
567
676
  # @param [Numeric] date 西暦の年数
568
677
  # @param [When::TM::TemporalPosition] date
569
- # @param [When::TM::ReferenceSystem] frame 使用する暦法(デフォルトは When.Resource('_c:Gregorian'))
678
+ # @param [When::TM::ReferenceSystem] frame 使用する暦法(デフォルトは When::Gregorian)
570
679
  #
571
680
  # @return [Integer] クリスマスのユリウス通日(dateが西暦の年数の場合)
572
681
  # @return [When::TM::CalDate] クリスマスのWhen::TM::CalDate(yearがWhen::TM::TemporalPositionの場合)
@@ -581,7 +690,7 @@ module When
581
690
  #
582
691
  # @param [Numeric] date 西暦の年数
583
692
  # @param [When::TM::TemporalPosition] date
584
- # @param [When::TM::ReferenceSystem] frame 使用する暦法(デフォルトは When.Resource('_c:Gregorian'))
693
+ # @param [When::TM::ReferenceSystem] frame 使用する暦法(デフォルトは When::Gregorian)
585
694
  #
586
695
  # @return [Integer] 復活祭のユリウス通日(dateが西暦の年数の場合)
587
696
  # @return [When::TM::CalDate] 復活祭のWhen::TM::CalDate(yearがWhen::TM::TemporalPositionの場合)
@@ -598,14 +707,14 @@ module When
598
707
  end
599
708
  result = frame._coordinates_to_number(year, 2, 0) + @d - 1 - m
600
709
  result += @g - (result-@w) % 7 if @w<7
601
- result
710
+ result + frame._easter_delay(year)
602
711
  end
603
712
  end
604
713
 
605
714
  # イベントの標準的な間隔を返す
606
715
  # @private
607
716
  def _delta(parameter=nil)
608
- return When::DurationP1Y
717
+ return When::P1Y
609
718
  end
610
719
 
611
720
  # @private
@@ -617,7 +726,7 @@ module When
617
726
  # 固定祝日
618
727
  #
619
728
  # @param [When::TM::TemporalPosition] date
620
- # @param [When::TM::ReferenceSystem] frame 使用する暦法(デフォルトは When.Resource('_c:Gregorian'))
729
+ # @param [When::TM::ReferenceSystem] frame 使用する暦法(デフォルトは When::Gregorian)
621
730
  #
622
731
  # @return [String] 祝日の名称
623
732
  # @return [nil] 祝日に該当しない
@@ -630,7 +739,7 @@ module When
630
739
  # 移動祝日
631
740
  #
632
741
  # @param [When::TM::TemporalPosition] date
633
- # @param [When::TM::ReferenceSystem] frame 使用する暦法(デフォルトは When.Resource('_c:Gregorian'))
742
+ # @param [When::TM::ReferenceSystem] frame 使用する暦法(デフォルトは When::Gregorian)
634
743
  #
635
744
  # @return [String] 祝日の名称
636
745
  # @return [nil] 祝日に該当しない
@@ -675,7 +784,7 @@ module When
675
784
  #
676
785
  def _to_date_for_note(date)
677
786
  return When.Calendar(When::CalendarTypes::Christian._default_start(date)) ^ date if ::Object.const_defined?(:Date) && date.kind_of?(::Date)
678
- return When.Calendar('Gregorian') ^ date if date.kind_of?(::Time)
787
+ return When::Gregorian ^ date if date.kind_of?(::Time)
679
788
  return date if date.frame.kind_of?(When::CalendarTypes::Christian)
680
789
  When.Calendar(date.frame.iri =~ /Coptic/ || date.to_i < 2299161 ? 'Julian' : 'Gregorian') ^ date
681
790
  end
@@ -683,7 +792,7 @@ module When
683
792
  # 当該年のイベントの日付
684
793
  # date : 西暦の年数 or When::TM::(Temporal)Position
685
794
  # event : イベント名 (String)
686
- # frame : 暦法(デフォルトは When.Resource('_c:Gregorian'))
795
+ # frame : 暦法(デフォルトは When:Gregorian)
687
796
  #
688
797
  # @return [Integer] イベントのユリウス通日(dateが西暦の年数の場合)
689
798
  # @return [When::TM::CalDate] イベントのWhen::TM::CalDate(yearがWhen::TM::(Temporal)Positionの場合)
@@ -706,7 +815,7 @@ module When
706
815
  else
707
816
  raise TypeError, "Irregal date type: #{date.class}"
708
817
  end
709
- frame ||= When.Resource('_c:Gregorian')
818
+ frame ||= When::Gregorian
710
819
  result = yield(year, frame)
711
820
  return result if date.kind_of?(Numeric)
712
821
  return frame.jul_trans(result, options)