when_exe 0.3.4 → 0.3.5

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