when_exe 0.3.4 → 0.3.5

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 (168) hide show
  1. data/bin/locales.rb +2 -2
  2. data/bin/when.rb +2 -2
  3. data/lib/when_exe.rb +161 -55
  4. data/lib/when_exe/basictypes.rb +34 -26
  5. data/lib/when_exe/calendarnote.rb +654 -0
  6. data/lib/when_exe/calendartypes.rb +49 -474
  7. data/lib/when_exe/coordinates.rb +141 -34
  8. data/lib/when_exe/core/compatibility.rb +22 -2
  9. data/lib/when_exe/core/extension.rb +47 -3
  10. data/lib/when_exe/ephemeris.rb +82 -109
  11. data/lib/when_exe/googlecalendar.rb +1 -1
  12. data/lib/when_exe/icalendar.rb +26 -14
  13. data/lib/when_exe/inspect.rb +82 -68
  14. data/lib/when_exe/locales/af.rb +1 -1
  15. data/lib/when_exe/locales/ar.rb +1 -1
  16. data/lib/when_exe/locales/az.rb +1 -1
  17. data/lib/when_exe/locales/bg.rb +1 -1
  18. data/lib/when_exe/locales/bn.rb +1 -1
  19. data/lib/when_exe/locales/bs.rb +1 -1
  20. data/lib/when_exe/locales/ca.rb +1 -1
  21. data/lib/when_exe/locales/cs.rb +1 -1
  22. data/lib/when_exe/locales/cy.rb +1 -1
  23. data/lib/when_exe/locales/da.rb +1 -1
  24. data/lib/when_exe/locales/de.rb +1 -1
  25. data/lib/when_exe/locales/de_AT.rb +1 -1
  26. data/lib/when_exe/locales/de_CH.rb +1 -1
  27. data/lib/when_exe/locales/el.rb +1 -1
  28. data/lib/when_exe/locales/en.rb +1 -1
  29. data/lib/when_exe/locales/en_AU.rb +1 -1
  30. data/lib/when_exe/locales/en_CA.rb +1 -1
  31. data/lib/when_exe/locales/en_GB.rb +1 -1
  32. data/lib/when_exe/locales/en_IE.rb +1 -1
  33. data/lib/when_exe/locales/en_IN.rb +1 -1
  34. data/lib/when_exe/locales/en_NZ.rb +1 -1
  35. data/lib/when_exe/locales/en_US.rb +1 -1
  36. data/lib/when_exe/locales/eo.rb +1 -1
  37. data/lib/when_exe/locales/es.rb +1 -1
  38. data/lib/when_exe/locales/es_419.rb +1 -1
  39. data/lib/when_exe/locales/es_AR.rb +1 -1
  40. data/lib/when_exe/locales/es_CL.rb +1 -1
  41. data/lib/when_exe/locales/es_CO.rb +1 -1
  42. data/lib/when_exe/locales/es_CR.rb +1 -1
  43. data/lib/when_exe/locales/es_EC.rb +1 -1
  44. data/lib/when_exe/locales/es_MX.rb +1 -1
  45. data/lib/when_exe/locales/es_PA.rb +1 -1
  46. data/lib/when_exe/locales/es_PE.rb +1 -1
  47. data/lib/when_exe/locales/es_VE.rb +1 -1
  48. data/lib/when_exe/locales/et.rb +1 -1
  49. data/lib/when_exe/locales/eu.rb +1 -1
  50. data/lib/when_exe/locales/fa.rb +1 -1
  51. data/lib/when_exe/locales/fi.rb +1 -1
  52. data/lib/when_exe/locales/fr.rb +1 -1
  53. data/lib/when_exe/locales/fr_CA.rb +1 -1
  54. data/lib/when_exe/locales/fr_CH.rb +1 -1
  55. data/lib/when_exe/locales/gl.rb +1 -1
  56. data/lib/when_exe/locales/he.rb +1 -1
  57. data/lib/when_exe/locales/hi.rb +1 -1
  58. data/lib/when_exe/locales/hi_IN.rb +1 -1
  59. data/lib/when_exe/locales/hr.rb +1 -1
  60. data/lib/when_exe/locales/hu.rb +1 -1
  61. data/lib/when_exe/locales/id.rb +1 -1
  62. data/lib/when_exe/locales/is.rb +1 -1
  63. data/lib/when_exe/locales/it.rb +1 -1
  64. data/lib/when_exe/locales/it_CH.rb +1 -1
  65. data/lib/when_exe/locales/ja.rb +1 -1
  66. data/lib/when_exe/locales/kn.rb +1 -1
  67. data/lib/when_exe/locales/ko.rb +1 -1
  68. data/lib/when_exe/locales/lo.rb +1 -1
  69. data/lib/when_exe/locales/locales.rb +1 -1
  70. data/lib/when_exe/locales/lt.rb +1 -1
  71. data/lib/when_exe/locales/lv.rb +1 -1
  72. data/lib/when_exe/locales/mk.rb +1 -1
  73. data/lib/when_exe/locales/mn.rb +1 -1
  74. data/lib/when_exe/locales/ms.rb +1 -1
  75. data/lib/when_exe/locales/nb.rb +1 -1
  76. data/lib/when_exe/locales/ne.rb +1 -1
  77. data/lib/when_exe/locales/nl.rb +1 -1
  78. data/lib/when_exe/locales/nn.rb +1 -1
  79. data/lib/when_exe/locales/or.rb +1 -1
  80. data/lib/when_exe/locales/pl.rb +1 -1
  81. data/lib/when_exe/locales/pt.rb +1 -1
  82. data/lib/when_exe/locales/pt_BR.rb +1 -1
  83. data/lib/when_exe/locales/rm.rb +1 -1
  84. data/lib/when_exe/locales/ro.rb +1 -1
  85. data/lib/when_exe/locales/ru.rb +1 -1
  86. data/lib/when_exe/locales/sk.rb +1 -1
  87. data/lib/when_exe/locales/sl.rb +1 -1
  88. data/lib/when_exe/locales/sr.rb +1 -1
  89. data/lib/when_exe/locales/sv.rb +1 -1
  90. data/lib/when_exe/locales/sw.rb +1 -1
  91. data/lib/when_exe/locales/th.rb +1 -1
  92. data/lib/when_exe/locales/tl.rb +1 -1
  93. data/lib/when_exe/locales/tr.rb +1 -1
  94. data/lib/when_exe/locales/uk.rb +1 -1
  95. data/lib/when_exe/locales/ur.rb +1 -1
  96. data/lib/when_exe/locales/uz.rb +1 -1
  97. data/lib/when_exe/locales/vi.rb +1 -1
  98. data/lib/when_exe/locales/wo.rb +1 -1
  99. data/lib/when_exe/locales/zh_CN.rb +1 -1
  100. data/lib/when_exe/locales/zh_HK.rb +1 -1
  101. data/lib/when_exe/locales/zh_TW.rb +1 -1
  102. data/lib/when_exe/mini_application.rb +6 -2
  103. data/lib/when_exe/parts/enumerator.rb +13 -8
  104. data/lib/when_exe/parts/geometric_complex.rb +3 -5
  105. data/lib/when_exe/parts/locale.rb +185 -28
  106. data/lib/when_exe/parts/method_cash.rb +20 -10
  107. data/lib/when_exe/parts/resource.rb +154 -76
  108. data/lib/when_exe/parts/timezone.rb +11 -6
  109. data/lib/when_exe/region/bahai.rb +2 -2
  110. data/lib/when_exe/region/balinese.rb +296 -296
  111. data/lib/when_exe/region/chinese.rb +564 -564
  112. data/lib/when_exe/region/chinese_calendar.rb +5 -1
  113. data/lib/when_exe/region/chinese_epoch.rb +47 -102
  114. data/lib/when_exe/region/chinese_twin.rb +798 -0
  115. data/lib/when_exe/region/christian.rb +314 -338
  116. data/lib/when_exe/region/coptic.rb +88 -0
  117. data/lib/when_exe/region/ephemeric_notes.rb +322 -307
  118. data/lib/when_exe/region/french.rb +2 -2
  119. data/lib/when_exe/region/indian.rb +361 -272
  120. data/lib/when_exe/region/iranian.rb +2 -2
  121. data/lib/when_exe/region/islamic.rb +3 -3
  122. data/lib/when_exe/region/japanese.rb +1 -1
  123. data/lib/when_exe/region/japanese_notes.rb +165 -103
  124. data/lib/when_exe/region/japanese_residues.rb +56 -55
  125. data/lib/when_exe/region/japanese_twin.rb +228 -0
  126. data/lib/when_exe/region/javanese.rb +2 -2
  127. data/lib/when_exe/region/jewish.rb +2 -2
  128. data/lib/when_exe/region/korean.rb +4 -4
  129. data/lib/when_exe/region/m17n.rb +19 -19
  130. data/lib/when_exe/region/martian.rb +21 -9
  131. data/lib/when_exe/region/mayan.rb +19 -11
  132. data/lib/when_exe/region/moon.rb +7 -7
  133. data/lib/when_exe/region/nihon_shoki.rb +7 -7
  134. data/lib/when_exe/region/roman.rb +100 -100
  135. data/lib/when_exe/region/shire.rb +130 -147
  136. data/lib/when_exe/region/thai.rb +2 -2
  137. data/lib/when_exe/region/tibetan.rb +2 -2
  138. data/lib/when_exe/region/vietnamese.rb +383 -114
  139. data/lib/when_exe/region/world.rb +112 -129
  140. data/lib/when_exe/timestandard.rb +12 -1
  141. data/lib/when_exe/tmposition.rb +28 -14
  142. data/lib/when_exe/tmreference.rb +96 -93
  143. data/lib/when_exe/version.rb +1 -1
  144. data/test/examples/Terms.m17n +2 -2
  145. data/test/examples/sample.json +16 -0
  146. data/test/examples/sample.xml +1 -1
  147. data/test/test.rb +4 -0
  148. data/test/test/basictypes.rb +2 -2
  149. data/test/test/calendarnote.rb +69 -0
  150. data/test/test/calendartypes.rb +41 -1
  151. data/test/test/coordinates.rb +12 -1
  152. data/test/test/ephemeris.rb +13 -66
  153. data/test/test/icalendar.rb +3 -3
  154. data/test/test/inspect.rb +1 -1
  155. data/test/test/parts.rb +7 -4
  156. data/test/test/region/chinese.rb +45 -0
  157. data/test/test/region/coptic.rb +27 -0
  158. data/test/test/region/indian.rb +1 -1
  159. data/test/test/region/japanese.rb +4 -4
  160. data/test/test/region/jewish.rb +1 -1
  161. data/test/test/region/m17n.rb +7 -5
  162. data/test/test/region/residue.rb +2 -2
  163. data/test/test/region/vietnamese.rb +102 -0
  164. data/test/test/timestandard.rb +81 -0
  165. data/test/test/tmposition.rb +1 -1
  166. data/test/test/tmreference.rb +1 -1
  167. data/when_exe.gemspec +2 -2
  168. metadata +16 -7
@@ -1,6 +1,6 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  =begin
3
- Copyright (C) 2011-2013 Takashi SUGA
3
+ Copyright (C) 2011-2014 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
@@ -11,7 +11,7 @@ module When
11
11
  JavaneseTerms = [self, [
12
12
  "namespace:[en=http://en.wikipedia.org/wiki/, ja=http://ja.wikipedia.org/wiki/]",
13
13
  "locale:[=en:, ja=ja:, alias]",
14
- "names:[JavaneseTerms]",
14
+ "names:[JavaneseTerms=]",
15
15
  "[JavaneseLunar=, ジャワ・イスラーム暦=]",
16
16
  "[Pranatamangsa=, プラノトモンソ=]",
17
17
 
@@ -1,6 +1,6 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  =begin
3
- Copyright (C) 2011-2013 Takashi SUGA
3
+ Copyright (C) 2011-2014 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
@@ -11,7 +11,7 @@ module When
11
11
  JewishTerms = [self, [
12
12
  "namespace:[en=http://en.wikipedia.org/wiki/, ja=http://ja.wikipedia.org/wiki/]",
13
13
  "locale:[=en:, ja=ja:, alias]",
14
- "names:[JewishTerms]",
14
+ "names:[JewishTerms=]",
15
15
  "[Jewish=en:Hebrew_calendar, ユダヤ暦]",
16
16
 
17
17
  [self,
@@ -149,7 +149,7 @@ module When
149
149
  ["[景文王]1", "@A", "name=[景文王];861"],
150
150
  ["[憲康王]1", "@A", "name=[憲康王];875"],
151
151
  ["[定康王]1", "@A", "name=[定康王];886"],
152
- ["[真聖女王]1", "@A", "name=[真聖女王];887^Chinese::宣明暦"], # 東洋史辞典のみ1年遅
152
+ ["[真聖女王]1", "@A", "name=[真聖女王];887^ChineseTwin::宣明暦"], # 東洋史辞典のみ1年遅
153
153
  ["[孝恭王]1", "@A", "name=[孝恭王];897"], # 〃
154
154
  ["[神徳王]1", "@A", "name=[神徳王];912"], # 〃
155
155
  ["[景明王]1", "@A", "name=[景明王];917"],
@@ -172,11 +172,11 @@ module When
172
172
  ],
173
173
  [self,
174
174
  "period:[後百済]", # 三国遺事による
175
- ["[甄萱]1", "@F", "name=[甄萱];900^Chinese::宣明暦", "936.09.08="]
175
+ ["[甄萱]1", "@F", "name=[甄萱];900^ChineseTwin::宣明暦", "936.09.08="]
176
176
  ],
177
177
  [self,
178
178
  "period:[後高句麗]",
179
- ["[弓裔]1", "@F", "name=[弓裔];901^Chinese::宣明暦"],
179
+ ["[弓裔]1", "@F", "name=[弓裔];901^ChineseTwin::宣明暦"],
180
180
  ["[摩震]1", "@A", "name=[武泰];904"],
181
181
  ["[聖冊]1", "", "905"],
182
182
  ["[泰封]1", "@A","name=[水徳万歳];911"],
@@ -184,7 +184,7 @@ module When
184
184
  ],
185
185
  [self,
186
186
  "period:[高麗]",
187
- ["[天授]1", "@F", "name=[太祖];918.06^Chinese::宣明暦"], # 三国遺事による
187
+ ["[天授]1", "@F", "name=[太祖];918.06^ChineseTwin::宣明暦"], # 三国遺事による
188
188
  ["[太祖]16", "", "933"],
189
189
  ["[恵宗]1", "@A", "name=[恵宗];944"],
190
190
  ["[定宗]1", "@A", "name=[定宗];946"],
@@ -1,6 +1,6 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  =begin
3
- Copyright (C) 2011-2013 Takashi SUGA
3
+ Copyright (C) 2011-2014 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
@@ -46,7 +46,7 @@ module When
46
46
  CalendarTerms = [M17n, [
47
47
  "namespace:[en=http://en.wikipedia.org/wiki/, ja=http://ja.wikipedia.org/wiki/]",
48
48
  "locale:[=en:, ja=ja:, alias]",
49
- "names:[CalendarTerms]",
49
+ "names:[CalendarTerms=]",
50
50
 
51
51
  "[Intercalary %s=, *閏]",
52
52
 
@@ -87,28 +87,28 @@ module When
87
87
  EpochEvents = [M17n, [
88
88
  "namespace:[en=http://en.wikipedia.org/wiki/, ja=http://ja.wikipedia.org/wiki/]",
89
89
  "locale:[=en:, ja=ja:, alias]",
90
- "names:[EpochEvents]",
91
- "[Accession, 代始]",
92
- "[FelicitousEvent, 祥瑞]",
93
- "[NaturalDisaster, 災異]",
94
- "[InauspiciousYear, 革年]",
95
- "[Foundation, 創業]",
96
- "[CalendarReform, 改暦]"
90
+ "names:[EpochEvents=]",
91
+ "[Accession=, 代始]",
92
+ "[FelicitousEvent=, 祥瑞]",
93
+ "[NaturalDisaster=, 災異]",
94
+ "[InauspiciousYear=, 革年]",
95
+ "[Foundation=, 創業]",
96
+ "[CalendarReform=, 改暦]"
97
97
  ]]
98
98
 
99
99
  # Formats
100
100
  CalendarFormats = [M17n, [
101
101
  "locale:[=]",
102
- "names:[CalendarFormats]",
103
- "[Date, /date/formats/default]",
104
- "[DateLong, /date/formats/long ]",
105
- "[DateShort, /date/formats/short ]",
106
- "[DateTime, /time/formats/default]",
107
- "[DateTimeLong, /time/formats/long ]",
108
- "[DateTimeShort, /time/formats/short ]",
109
- "[Time, /time/formats/time ]",
110
- "[AM, /time/am ]",
111
- "[PM, /time/pm ]"
102
+ "names:[CalendarFormats=]",
103
+ "[Date=, /date/formats/default]",
104
+ "[DateLong=, /date/formats/long ]",
105
+ "[DateShort=, /date/formats/short ]",
106
+ "[DateTime=, /time/formats/default]",
107
+ "[DateTimeLong=, /time/formats/long ]",
108
+ "[DateTimeShort=, /time/formats/short ]",
109
+ "[Time=, /time/formats/time ]",
110
+ "[AM=, /time/am ]",
111
+ "[PM=, /time/pm ]"
112
112
  ]]
113
113
  end
114
114
  end
@@ -1,6 +1,6 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  =begin
3
- Copyright (C) 2013 Takashi SUGA
3
+ Copyright (C) 2013-2014 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
@@ -12,7 +12,7 @@ module When
12
12
  MartianTerms = [self, [
13
13
  "namespace:[en=http://en.wikipedia.org/wiki/, ja=http://ja.wikipedia.org/wiki/]",
14
14
  "locale:[=en:, ja=ja:, alias]",
15
- "names:[MartianTerms]",
15
+ "names:[MartianTerms=]",
16
16
  "[Darian=en:Darian_calendar, ダリアン暦]",
17
17
 
18
18
  [self,
@@ -63,7 +63,7 @@ module When
63
63
  # @return [Numeric] dynamical date
64
64
  #
65
65
  def to_dynamical_date(date)
66
- (date - MTC0) * Ratio + J2000Jan6
66
+ (date - @mtc0) * Ratio + J2000Jan6
67
67
  end
68
68
 
69
69
  # dynamical date を当該時刻系の日付に変換する
@@ -73,7 +73,7 @@ module When
73
73
  # @return [Numeric] 当該時刻系の日付
74
74
  #
75
75
  def from_dynamical_date(date)
76
- (date - J2000Jan6) / Ratio + MTC0
76
+ (date - J2000Jan6) / Ratio + @mtc0
77
77
  end
78
78
 
79
79
  # universal time を dynamical time に変換する
@@ -99,15 +99,24 @@ module When
99
99
  from_dynamical_date(
100
100
  When::TM::JulianDate._t_to_d(time)))
101
101
  end
102
+
103
+ private
104
+
105
+ # オブジェクトの正規化
106
+ def _normalize(args=[], options={})
107
+ @location = When.Resource(@location || '_l:long=0&lat=0&datum=Mars')
108
+ @mtc0 = MTC0 + @location.long / (360.0 * When::Coordinates::Spatial::DEGREE)
109
+ super
110
+ end
102
111
  end
103
112
  end
104
113
 
105
- module CalendarTypes
114
+ class CalendarNote
106
115
 
107
116
  #
108
117
  # Darian Week
109
118
  #
110
- class CalendarNote::DarianWeek < CalendarNote::WorldWeek
119
+ class DarianWeek < WorldWeek
111
120
 
112
121
  NoteObjects = [When::BasicTypes::M17n, [
113
122
  "namespace:[en=http://en.wikipedia.org/wiki/, ja=http://ja.wikipedia.org/wiki/]",
@@ -169,22 +178,25 @@ module When
169
178
 
170
179
  # オブジェクトの正規化
171
180
  def _normalize(args=[], options={})
172
- @event ||= 'solis'
181
+ @event ||= 'solis'
173
182
  super
174
183
  end
175
184
  end
185
+ end
186
+
187
+ module CalendarTypes
176
188
 
177
189
  #
178
190
  # Martian Time, Coordinated
179
191
  #
180
- class MTC < UTC
192
+ class MTC < LocalTime
181
193
 
182
194
  private
183
195
 
184
196
  # オブジェクトの正規化
185
197
  def _normalize(args=[], options={})
186
198
  @label = m17n('MTC')
187
- @time_standard = When.Resource("_t:MartianTimeCoordinated")
199
+ @time_standard = When.Resource("_t:MartianTimeCoordinated?location=(_l:long=#{@long||0}&datum=Mars)")
188
200
  super
189
201
  end
190
202
  end
@@ -1,6 +1,6 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  =begin
3
- Copyright (C) 2011-2012 Takashi SUGA
3
+ Copyright (C) 2011-2014 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
@@ -10,14 +10,21 @@ module When
10
10
  module Coordinates
11
11
 
12
12
  # Mayan Residue
13
- Mayan = [{'Epoch' => {'0D'=>{'Haab'=>'-65', 'Trecena'=> '8', 'Tzolkin'=>'4', 'LoN'=>'3'},
14
- '2D'=>{'Haab'=>'-63', 'Trecena'=>'10', 'Tzolkin'=>'6', 'LoN'=>'5'}}}, BasicTypes::M17n, [
13
+ Mayan = [{'Epoch' => Hash.new {|hash, key|
14
+ epoch = key.to_i
15
+ hash[key] = key ? {
16
+ 'Haab' => ((300 + epoch) % 365).to_s,
17
+ 'Trecena' => (( 8 + epoch) % 13).to_s,
18
+ 'Tzolkin' => (( 4 + epoch) % 20).to_s,
19
+ 'LoN' => (( 3 + epoch) % 9).to_s
20
+ } : nil
21
+ }}, BasicTypes::M17n, [
15
22
  "namespace:[en=http://en.wikipedia.org/wiki/, ja=http://ja.wikipedia.org/wiki/]",
16
23
  "locale:[=en:, ja=ja:, alias]",
17
24
  "names:[Mayan]",
18
25
 
19
26
  [Residue,
20
- "label:[Haab', ハアブ, Haab]", "divisor:365", 'day:#{Haab:-65}', "format:[%2$d%1$s/365]",
27
+ "label:[Haab', ハアブ, Haab]", "divisor:365", 'day:#{Haab:300}', "format:[%2$d%1$s/365]",
21
28
  "namespace:[glyph=http://en.wikipedia.org/wiki/File:Maya-]",
22
29
  [Residue, "label:[Pop =glyph:Pop.jpg, ポプ, Pop ]", "remainder: 0"],
23
30
  [Residue, "label:[Wo' =glyph:Dresden-wo.jpg, ウオ, Wo ]", "remainder: 20"],
@@ -90,12 +97,11 @@ module When
90
97
  #
91
98
  # Mayan Long Count
92
99
  #
93
- LongCount = [{'Epoch'=>{'0D' => {'Base' => '?Epoch=0D'},
94
- '2D' => {'Base' => '?Epoch=2D'}}}, self, [
100
+ LongCount = [{}, self, [
95
101
  "namespace:[en=http://en.wikipedia.org/wiki/, ja=http://ja.wikipedia.org/wiki/]",
96
102
  "locale:[=en:, ja=ja:, alias]",
97
- 'area:[LongCount#{Base}=en:Mesoamerican_Long_Count_calendar, マヤ長期暦=ja:%%<長期暦>]',
98
- ["[PHLC=, 先史時代=, PreHistoricLongCount=]0.0.0.0.0", "[Pre Historic=]", '-13.0.0.0.0^LongCount#{Base}'],
103
+ 'area:[LongCount#{?Epoch=Epoch}=en:Mesoamerican_Long_Count_calendar, マヤ長期暦=ja:%%<長期暦>]',
104
+ ["[PHLC=, 先史時代=, PreHistoricLongCount=]0.0.0.0.0", "[Pre Historic=]", '-13.0.0.0.0^LongCount#{?Epoch=Epoch}'],
99
105
  ["[HLC=, 歴史時代=, HistoricLongCount=]0.0.0.0.1", "[Historic Age=]", "0.0.0.0.1"],
100
106
  ["[NLC=, 新時代=, NewLongCount=]0.0.0.0.1", "[New Age=]", "13.0.0.0.1", "26.0.0.0.1"]
101
107
  ]]
@@ -109,8 +115,10 @@ module When
109
115
  #
110
116
  # Mayan Long Count
111
117
  #
112
- LongCount = [{'Epoch'=>{'0D' => {'origin_of_LSC' => 584283, 'Base'=>'?Epoch=0D'},
113
- '2D' => {'origin_of_LSC' => 584285, 'Base'=>'?Epoch=2D'}}}, CyclicTableBased, {
118
+ LongCount = [{'Epoch' => Hash.new {|hash, key|
119
+ hash[key] = {
120
+ 'origin_of_LSC' => 584283 + key.to_i
121
+ }}}, CyclicTableBased, {
114
122
  'origin_of_LSC' => 584283,
115
123
  'rule_table' => {
116
124
  'T' => {'Rule' =>[360]},
@@ -118,7 +126,7 @@ module When
118
126
  },
119
127
  'index_of_MSC' => 2,
120
128
  'indices'=> [_c20, _c20, _c18, _c20],
121
- 'note' => 'MayanNotes#{Base}'
129
+ 'note' => 'MayanNotes#{?Epoch=Epoch}'
122
130
  }]
123
131
  end
124
132
  end
@@ -1,6 +1,6 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  =begin
3
- Copyright (C) 2011-2013 Takashi SUGA
3
+ Copyright (C) 2011-2014 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
@@ -23,11 +23,11 @@ module When
23
23
  # @private
24
24
  P0L =
25
25
  [[LIN , 124.8757417 , 4812.6788201 , -1.330000E-7],
26
- [SINL , 338.9158263 , 4771.9886313 , 6.2887 ,+8.99400E-7],
27
- [SIN , 107.236832 , -4133.3536154, 1.2740 ,+1.22612E-6],
28
- [SIN , 51.678963 , 8905.3422467, 0.6583 ,-0.32672E-6],
29
- [SIN , 317.831653 , 9543.9772627, 0.2136 ,+1.7988E-6 ],
30
- [SIN , 176.528826 , 359.990504 , 0.1856 ,-1.561E-8 ],
26
+ [SINL , 338.9158263 , 4771.9886313 , 6.2887 ,+8.99400E-7], # 中心差
27
+ [SIN , 107.236832 , -4133.3536154, 1.2740 ,+1.22612E-6], # 出差
28
+ [SIN , 51.678963 , 8905.3422467, 0.6583 ,-0.32672E-6], # 二均差
29
+ [SIN , 317.831653 , 9543.9772627, 0.2136 ,+1.7988E-6 ], # 中心差 x 2
30
+ [SIN , 176.528826 , 359.990504 , 0.1856 ,-1.561E-8 ], # 年差
31
31
 
32
32
  [SIN , 292.463 , 9664.0403505, 0.1143 ,-0.6812E-6 ],
33
33
  [SIN , 86.16 , 638.63475182, 0.0588 ,+2.1256E-6 ],
@@ -36,7 +36,7 @@ module When
36
36
  [SIN , 124.86 , -8545.352 , 0.0459 ],
37
37
 
38
38
  [SIN , 342.38 , 4411.998 , 0.0410 ],
39
- [SIN , 25.83 , 4452.671 , 0.0348 ],
39
+ [SIN , 25.83 , 4452.671 , 0.0348 ], # 月角差( 二均差 / 2)
40
40
  [SIN , 155.45 , 5131.979 , 0.0305 ],
41
41
  [SIN , 240.79 , 758.698 , 0.0153 ],
42
42
  [SIN , 271.38 , 14436.029 , 0.0125 ],
@@ -14,10 +14,10 @@ class When::TM::CalendarEra
14
14
  "namespace:[ja=http://ja.wikipedia.org/wiki/, en=http://en.wikipedia.org/wiki/]",
15
15
  "locale:[=ja:, en=en:, alias]",
16
16
  "area:[日本]",
17
- ["[皇紀]1", "@A", "-659-01-01^Chinese::平朔儀鳳暦"],
18
- ["[皇紀]1113", "[::_m:EpochEvents::CalendarReform]", "0453-12-14^Chinese::元嘉暦"],
19
- ["[皇紀]1253", "", "0593-01-01^Japanese"],
20
- ["[皇紀]2533", "[::_m:EpochEvents::CalendarReform]", "1873-01-01^Gregorian"]
17
+ ["[皇紀]1", "@A", "-659-01-01^JapaneseTwin::平朔儀鳳暦"],
18
+ ["[皇紀]1113", "@CR", "0453-12-14^ChineseTwin::元嘉暦"],
19
+ ["[皇紀]1253", "", "0593-01-01^Japanese"],
20
+ ["[皇紀]2533", "@CR", "1873-01-01^Gregorian"]
21
21
  ]]
22
22
 
23
23
  #
@@ -27,7 +27,7 @@ class When::TM::CalendarEra
27
27
  "namespace:[ja=http://ja.wikipedia.org/wiki/, en=http://en.wikipedia.org/wiki/]",
28
28
  "locale:[=ja:, en=en:, alias]",
29
29
  "period:[(日本書紀)=ja:%%<日本書紀>, (Nihon_Shoki)=en:Nihon_Shoki]",
30
- ["[神武]1", "@A", "name=[神武];-659-01-01^Chinese::平朔儀鳳暦"],
30
+ ["[神武]1", "@A", "name=[神武];-659-01-01^JapaneseTwin::平朔儀鳳暦"],
31
31
  ["[綏靖]1", "@A", "name=[綏靖];-580-01-08"],
32
32
  ["[安寧]0", "@A", "name=[安寧];-548-07-03"],
33
33
  ["[懿徳]1", "@A", "name=[懿徳];-509-02-04"],
@@ -47,7 +47,7 @@ class When::TM::CalendarEra
47
47
  ["[履中]1", "@A", "name=[履中];0400-02-01"],
48
48
  ["[反正]1", "@A", "name=[反正];0406-01-02"],
49
49
  ["[允恭]1", "@A", "name=[允恭];0412-12"],
50
- ["[安康]0", "@A", "name=[安康];0453-12-14^Chinese::元嘉暦"],
50
+ ["[安康]0", "@A", "name=[安康];0453-12-14^ChineseTwin::元嘉暦"],
51
51
  ["[雄略]0", "@A", "name=[雄略];0456-11-13"],
52
52
  ["[清寧]1", "@A", "name=[清寧];0480-01-15"],
53
53
  ["[顕宗]1", "@A", "name=[顕宗];0485-01-01"],
@@ -64,7 +64,7 @@ class When::TM::CalendarEra
64
64
  ["[舒明]1", "@A", "name=[舒明];0629-01-04"],
65
65
  ["[皇極]1", "@A", "name=[皇極];0642-01-15"],
66
66
  ["[大化]1", "@A", "name=[孝徳];0645-06-19"],
67
- ["[白雉]1", "[::_m:EpochEvents::FelicitousEvent]", " 0650-02-15"],
67
+ ["[白雉]1", "@FE", " 0650-02-15"],
68
68
  ["[斉明]1", "@A", "name=[斉明];0655-01-03"],
69
69
  ["[天智]1", "@A", "name=[天智];0662-01-01"],
70
70
  ["[天武]1", "@A", "name=[天武];0672-01-01"],
@@ -1,6 +1,6 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  =begin
3
- Copyright (C) 2011-2013 Takashi SUGA
3
+ Copyright (C) 2011-2014 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
@@ -12,7 +12,7 @@ module When
12
12
  RomanTerms = [self, [
13
13
  "namespace:[en=http://en.wikipedia.org/wiki/, ja=http://ja.wikipedia.org/wiki/]",
14
14
  "locale:[=en:, ja=ja:, alias]",
15
- "names:[RomanTerms]",
15
+ "names:[RomanTerms=]",
16
16
 
17
17
  [self, # ..CE-44 / ..BCE45
18
18
  "names:[MonthA, 月=ja:%%<月_(暦)>]",
@@ -207,120 +207,120 @@ module When
207
207
  RomanB = [CyclicTableBased, Options.merge({'indices' => _IndicesB})]
208
208
  Roman = [CyclicTableBased, Options]
209
209
  RomanC = [CyclicTableBased, Options.merge({'indices' => _IndicesC})]
210
+ end
210
211
 
211
- #
212
- # 古代ローマの暦注
213
- #
214
- class CalendarNote::RomanNote < CalendarNote
212
+ #
213
+ # 古代ローマの暦注
214
+ #
215
+ class CalendarNote::RomanNote < CalendarNote
215
216
 
216
- NoteObjects = [When::BasicTypes::M17n, [
217
- "namespace:[en=http://en.wikipedia.org/wiki/, ja=http://ja.wikipedia.org/wiki/]",
218
- "locale:[=en:, ja=ja:, alias]",
219
- "names:[Roman]",
217
+ NoteObjects = [When::BasicTypes::M17n, [
218
+ "namespace:[en=http://en.wikipedia.org/wiki/, ja=http://ja.wikipedia.org/wiki/]",
219
+ "locale:[=en:, ja=ja:, alias]",
220
+ "names:[Roman]",
220
221
 
221
- # 年の暦注 ----------------------------
222
- [When::BasicTypes::M17n,
223
- "names:[year]",
224
-
225
- [When::Coordinates::Residue,
226
- "label:[Solar=en:Solar_cycle_(calendar), 太陽章=]", "divisor:28", "year:-8",
227
- ],
228
-
229
- [When::Coordinates::Residue,
230
- "label:[Metonic=en:Metonic_cycle, 太陰章=]", "divisor:19", "year:0",
231
- ],
232
-
233
- [When::Coordinates::Residue,
234
- "label:[Indiction, インディクション]", "divisor:15", "year:-2",
235
- [When::Coordinates::Residue, "label:[I= ]", "remainder: 0"],
236
- [When::Coordinates::Residue, "label:[II= ]", "remainder: 1"],
237
- [When::Coordinates::Residue, "label:[III= ]", "remainder: 2"],
238
- [When::Coordinates::Residue, "label:[IV= ]", "remainder: 3"],
239
- [When::Coordinates::Residue, "label:[V= ]", "remainder: 4"],
240
- [When::Coordinates::Residue, "label:[VI= ]", "remainder: 5"],
241
- [When::Coordinates::Residue, "label:[VII= ]", "remainder: 6"],
242
- [When::Coordinates::Residue, "label:[VIII=]", "remainder: 7"],
243
- [When::Coordinates::Residue, "label:[IX= ]", "remainder: 8"],
244
- [When::Coordinates::Residue, "label:[X= ]", "remainder: 9"],
245
- [When::Coordinates::Residue, "label:[XI= ]", "remainder: 10"],
246
- [When::Coordinates::Residue, "label:[XII= ]", "remainder: 11"],
247
- [When::Coordinates::Residue, "label:[XIII=]", "remainder: 12"],
248
- [When::Coordinates::Residue, "label:[XIV= ]", "remainder: 13"],
249
- [When::Coordinates::Residue, "label:[XV= ]", "remainder: 14"],
250
- ]
222
+ # 年の暦注 ----------------------------
223
+ [When::BasicTypes::M17n,
224
+ "names:[year]",
225
+
226
+ [When::Coordinates::Residue,
227
+ "label:[Solar=en:Solar_cycle_(calendar), 太陽章=]", "divisor:28", "year:-8",
251
228
  ],
252
229
 
253
- # 月の暦注 ----------------------------
254
- [When::BasicTypes::M17n,
255
- "names:[month]",
256
- [When::BasicTypes::M17n,
257
- "names:[Month]"
258
- ]
230
+ [When::Coordinates::Residue,
231
+ "label:[Metonic=en:Metonic_cycle, 太陰章=]", "divisor:19", "year:0",
259
232
  ],
260
233
 
261
- # 日の暦注 ----------------------------
262
- [When::BasicTypes::M17n,
263
- "names:[day]",
234
+ [When::Coordinates::Residue,
235
+ "label:[Indiction, インディクション]", "divisor:15", "year:-2",
236
+ [When::Coordinates::Residue, "label:[I= ]", "remainder: 0"],
237
+ [When::Coordinates::Residue, "label:[II= ]", "remainder: 1"],
238
+ [When::Coordinates::Residue, "label:[III= ]", "remainder: 2"],
239
+ [When::Coordinates::Residue, "label:[IV= ]", "remainder: 3"],
240
+ [When::Coordinates::Residue, "label:[V= ]", "remainder: 4"],
241
+ [When::Coordinates::Residue, "label:[VI= ]", "remainder: 5"],
242
+ [When::Coordinates::Residue, "label:[VII= ]", "remainder: 6"],
243
+ [When::Coordinates::Residue, "label:[VIII=]", "remainder: 7"],
244
+ [When::Coordinates::Residue, "label:[IX= ]", "remainder: 8"],
245
+ [When::Coordinates::Residue, "label:[X= ]", "remainder: 9"],
246
+ [When::Coordinates::Residue, "label:[XI= ]", "remainder: 10"],
247
+ [When::Coordinates::Residue, "label:[XII= ]", "remainder: 11"],
248
+ [When::Coordinates::Residue, "label:[XIII=]", "remainder: 12"],
249
+ [When::Coordinates::Residue, "label:[XIV= ]", "remainder: 13"],
250
+ [When::Coordinates::Residue, "label:[XV= ]", "remainder: 14"],
251
+ ]
252
+ ],
264
253
 
265
- [When::BasicTypes::M17n,
266
- "names:[Nomen]"
267
- ]
254
+ # 月の暦注 ----------------------------
255
+ [When::BasicTypes::M17n,
256
+ "names:[month]",
257
+ [When::BasicTypes::M17n,
258
+ "names:[Month]"
268
259
  ]
269
- ]]
260
+ ],
261
+
262
+ # 日の暦注 ----------------------------
263
+ [When::BasicTypes::M17n,
264
+ "names:[day]",
270
265
 
271
- Order = [
272
- 'a.d. bis VI',
273
- 'prid.', 'a.d. III', 'a.d. IV', 'a.d. V', 'a.d. VI', 'a.d. VII', 'a.d. VIII',
274
- 'a.d. IX', 'a.d. X', 'a.d. XI', 'a.d. XII', 'a.d. XIII', 'a.d. XIV', 'a.d. XV',
275
- 'a.d. XVI', 'a.d. XVII', 'a.d. XVIII', 'a.d. XIX', 'a.d. XX', 'a.d. XXI', 'a.d. XXII'
266
+ [When::BasicTypes::M17n,
267
+ "names:[Nomen]"
268
+ ]
276
269
  ]
270
+ ]]
277
271
 
278
- LongMonths = [3, 5, 7, 10, When.Pair(11,0.5), When.Pair(11,1.5)]
279
- LongType = [1, 2..6, 7, 8..14, 15]
280
- ShortType = [1, 2..4, 5, 6..12, 13]
281
-
282
- # 暦注 - 日の名前
283
- #
284
- # @param [When::TM::CalDate] date
285
- #
286
- # @return [String]
287
- #
288
- def nomen(date)
289
- y, m, d = date.cal_date
290
- month_name = _abbr_of_month(date)
291
- kal, to_nonae, nonae, to_idus, idus = LongMonths.include?(m) ? LongType : ShortType
292
- case d
293
- when kal ; return 'Kal. ' + month_name
294
- when to_nonae ; return Order[nonae - d] + ' Non. ' + month_name
295
- when nonae ; return 'Non. ' + month_name
296
- when to_idus ; return Order[idus - d] + ' Id. ' + month_name
297
- when idus ; return 'Id. ' + month_name
298
- end
299
- this_month = date.floor(When::MONTH)
300
- next_month = this_month.succ
301
- month_name = _abbr_of_month(next_month)
302
- rest = next_month.to_i - date.to_i
303
- if m == 2 && next_month.to_i - this_month.to_i == 29
304
- return Order[0] + ' Kal. ' + month_name if rest == 5
305
- rest -= 1 if rest > 5
306
- end
307
- return Order[rest] + ' Kal. ' + month_name
308
- end
272
+ Order = [
273
+ 'a.d. bis VI',
274
+ 'prid.', 'a.d. III', 'a.d. IV', 'a.d. V', 'a.d. VI', 'a.d. VII', 'a.d. VIII',
275
+ 'a.d. IX', 'a.d. X', 'a.d. XI', 'a.d. XII', 'a.d. XIII', 'a.d. XIV', 'a.d. XV',
276
+ 'a.d. XVI', 'a.d. XVII', 'a.d. XVIII', 'a.d. XIX', 'a.d. XX', 'a.d. XXI', 'a.d. XXII'
277
+ ]
309
278
 
310
- private
279
+ LongMonths = [3, 5, 7, 10, When.Pair(11,0.5), When.Pair(11,1.5)]
280
+ LongType = [1, 2..6, 7, 8..14, 15]
281
+ ShortType = [1, 2..4, 5, 6..12, 13]
311
282
 
312
- # オブジェクトの正規化
313
- def _normalize(args=[], options={})
314
- @event = 'nomen'
315
- super
283
+ # 暦注 - 日の名前
284
+ #
285
+ # @param [When::TM::CalDate] date
286
+ #
287
+ # @return [String]
288
+ #
289
+ def nomen(date)
290
+ y, m, d = date.cal_date
291
+ month_name = _abbr_of_month(date)
292
+ kal, to_nonae, nonae, to_idus, idus = LongMonths.include?(m) ? LongType : ShortType
293
+ case d
294
+ when kal ; return 'Kal. ' + month_name
295
+ when to_nonae ; return Order[nonae - d] + ' Non. ' + month_name
296
+ when nonae ; return 'Non. ' + month_name
297
+ when to_idus ; return Order[idus - d] + ' Id. ' + month_name
298
+ when idus ; return 'Id. ' + month_name
316
299
  end
317
-
318
- # 日の省略名
319
- def _abbr_of_month(month)
320
- name = month.name('month').to_s
321
- return name.sub(/ (..).*/, ' \1.') if name.sub!(/Intercalaris(.*)?/, 'Int.\1')
322
- name.size <= 3 ? name : name[/^...[^caeiou]*/] + '.'
300
+ this_month = date.floor(When::MONTH)
301
+ next_month = this_month.succ
302
+ month_name = _abbr_of_month(next_month)
303
+ rest = next_month.to_i - date.to_i
304
+ if m == 2 && next_month.to_i - this_month.to_i == 29
305
+ return Order[0] + ' Kal. ' + month_name if rest == 5
306
+ rest -= 1 if rest > 5
323
307
  end
308
+ return Order[rest] + ' Kal. ' + month_name
309
+ end
310
+
311
+ private
312
+
313
+ # オブジェクトの正規化
314
+ def _normalize(args=[], options={})
315
+ @event = 'nomen'
316
+ super
317
+ end
318
+
319
+ # 日の省略名
320
+ def _abbr_of_month(month)
321
+ name = month.name('month').to_s
322
+ return name.sub(/ (..).*/, ' \1.') if name.sub!(/Intercalaris(.*)?/, 'Int.\1')
323
+ name.size <= 3 ? name : name[/^...[^caeiou]*/] + '.'
324
324
  end
325
325
  end
326
326
  end