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
data/bin/irb.rc CHANGED
@@ -3,3 +3,4 @@ require 'when_exe'
3
3
  require 'when_exe/core/extension'
4
4
  require 'when_exe/mini_application'
5
5
  include When
6
+ IRB.conf[:EVAL_HISTORY] = 100
@@ -19,8 +19,8 @@ HEADER = <<HEADER
19
19
  You may use and/or modify this file according to the license described in the LICENSE.txt file included in this archive.
20
20
  =end
21
21
 
22
- module When::BasicTypes
23
- class M17n
22
+ module When
23
+ module Locale
24
24
  HEADER
25
25
 
26
26
  if "1".respond_to?(:force_encoding)
@@ -42,7 +42,7 @@ site.get('/svenfuchs/rails-i18n/tree/master/rails/locale').body.scan(/>([^> ]+?)
42
42
  locale = source.read
43
43
  end
44
44
  rescue Errno::ENOENT
45
- http = Net::HTTP.new('raw.github.com', '443')
45
+ http = Net::HTTP.new('raw.githubusercontent.com', '443')
46
46
  http.use_ssl = true
47
47
  http.verify_mode = OpenSSL::SSL::VERIFY_NONE
48
48
  sleep(1)
@@ -59,12 +59,13 @@ site.get('/svenfuchs/rails-i18n/tree/master/rails/locale').body.scan(/>([^> ]+?)
59
59
  yamls[code.sub(/-/,'_')] = {'date'=>yaml[code]['date'], 'time'=>yaml[code]['time'], 'datetime'=>yaml[code]['datetime']}
60
60
  end
61
61
 
62
- open("locales/locales/locales.rb", 'w') do |script|
62
+ open("locales/locales/autoload.rb", 'w') do |script|
63
63
  script.puts HEADER
64
64
  yamls.each_key do |key|
65
65
  script.puts " autoload :Locale_%-8s 'when_exe/locales/%s'" % [key + ',', key]
66
66
  end
67
- script.puts " end\nend"
67
+ script.puts " end"
68
+ script.puts "end"
68
69
  end
69
70
 
70
71
  yamls.each_pair do |key, value|
@@ -73,6 +74,7 @@ yamls.each_pair do |key, value|
73
74
  script.puts "\n # from https://raw.github.com/svenfuchs/rails-i18n/master/rails/locale/#{key.sub(/_/,'-')}.yml"
74
75
  script.puts "\n Locale_#{key} ="
75
76
  script.write(value.pretty_inspect)
76
- script.puts " end\nend"
77
+ script.puts " end"
78
+ script.puts "end"
77
79
  end
78
80
  end
@@ -13,4 +13,4 @@ args = ARGV.map {|arg| arg.encode('UTF-8')}
13
13
  config = When.config
14
14
  server, port = config['?']
15
15
  result = !port || !Object.const_defined?(:JSON) ? When.free_conv(*args) : args == [] ? When.server(port) : When.client(server, port, args.join(' '))
16
- pp When::Parts::Locale.translate(result, config['!']) if result
16
+ pp When::Locale.translate(result, config['!']) if result
@@ -55,6 +55,7 @@ module When
55
55
  # @option options [When::Coordinates::Spatial] :location デフォルトの空間位置
56
56
  # @option options [When::TM::IntervalLength] :until V::Event::Enumerator の until
57
57
  # @option options [Hash{String=>String}] :alias Locale の読替パターン ({ 読替前のlocale=>読替後のlocale })
58
+ # @option options [String] :namespaces 名前空間定義の省略時に名前空間生成に用いる書式
58
59
  # @option options [Hash{String=>String}] :unification 漢字の包摂パターン ({ 包摂前の文字列=>包摂後の文字列 })
59
60
  # @option options [Array<String>] :order CalendarEra の検索順序 ([ IRI of When::TM::CalendarEra ])
60
61
  # @option options [Hash{String=>Array, String}] :format strftime で用いる記号の定義 ({ 記号=>[ 書式,項目名 ] or 記号列 })
@@ -77,7 +78,7 @@ module When
77
78
  @multi_thread = options[:multi_thread]
78
79
  Parts::MethodCash._setup_(options)
79
80
  Parts::Resource._setup_(options)
80
- Parts::Locale._setup_(options)
81
+ Locale._setup_(options)
81
82
  Coordinates::Spatial._setup_(options[:location])
82
83
  TM::CalendarEra._setup_(options[:order])
83
84
  TM::Calendar._setup_
@@ -97,7 +98,7 @@ module When
97
98
  {:multi_thread => @multi_thread}.
98
99
  update(Parts::MethodCash._setup_info).
99
100
  update(Parts::Resource._setup_info).
100
- update(Parts::Locale._setup_info).
101
+ update(Locale._setup_info).
101
102
  update(Coordinates::Spatial._setup_info).
102
103
  update(TM::CalendarEra._setup_info).
103
104
  update(TM::Clock._setup_info).
@@ -105,6 +106,36 @@ module When
105
106
  update(V::Event._setup_info).
106
107
  update(TimeStandard._setup_info)
107
108
  end
109
+
110
+ #
111
+ # When 直下に定数として定義する時法・暦法(明示的的追加)
112
+ #
113
+ # @private
114
+ def _define_common_calendar_types(list=%w(UTC Gregorian Julian Civil))
115
+ list.each do |calendar|
116
+ resource = Parts::Resource._instance(calendar, '_c:')
117
+ Parts::Resource.synchronize do
118
+ Parts::Resource::ConstList << calendar
119
+ const_set(calendar, resource)
120
+ end
121
+ end
122
+ end
123
+
124
+ alias :_const_missing :const_missing
125
+
126
+ #
127
+ # When 直下に定数として定義する時法・暦法など(暗黙的追加)
128
+ #
129
+ def const_missing(constant)
130
+ iri = Parts::Resource._abbreviation_to_iri(constant)
131
+ return _const_missing(constant) unless iri
132
+ resource = Parts::Resource._instance(iri)
133
+ return const_get(constant) if const_defined?(constant)
134
+ Parts::Resource.synchronize do
135
+ Parts::Resource::ConstList << constant
136
+ const_set(constant, resource)
137
+ end
138
+ end
108
139
  end
109
140
 
110
141
  #
@@ -118,16 +149,15 @@ module When
118
149
  RootDir = File.dirname(__FILE__).sub(/\/[^\/]*$/,'')
119
150
 
120
151
  require 'when_exe/version'
152
+ require 'when_exe/locales/locale'
153
+ require 'when_exe/locales/autoload'
121
154
  require 'when_exe/parts/enumerator'
122
- require 'when_exe/parts/locale'
123
155
  require 'when_exe/parts/resource'
124
156
  require 'when_exe/parts/geometric_complex'
125
157
  require 'when_exe/parts/timezone'
126
- require 'when_exe/parts/method_cash'
127
158
  require 'when_exe/core/compatibility'
128
159
  require 'when_exe/basictypes'
129
160
  require 'when_exe/ephemeris'
130
- require 'when_exe/tmduration'
131
161
  require 'when_exe/coordinates'
132
162
  require 'when_exe/icalendar'
133
163
  require 'when_exe/tmobjects'
@@ -136,21 +166,22 @@ module When
136
166
  require 'when_exe/tmreference'
137
167
  require 'when_exe/calendartypes'
138
168
  require 'when_exe/calendarnote'
139
- require 'when_exe/locales/locales'
140
169
  require 'when_exe/region/m17n'
141
170
  require 'when_exe/region/residue'
142
- require 'when_exe/region/christian'
143
171
  require 'when_exe/inspect'
144
172
 
145
173
  #
146
174
  # Module Constants
147
175
  #
148
176
 
149
- DurationP1D = TM::PeriodDuration.new([0,0,1])
150
- DurationP1W = TM::PeriodDuration.new([0,0,7])
151
- DurationP1M = TM::PeriodDuration.new([0,1,0])
152
- DurationP1Y = TM::PeriodDuration.new([1,0,0])
153
- TimeValue = TM::IndeterminateValue
177
+ PT1S = TM::PeriodDuration.new(nil,[0,0,0,1])
178
+ PT1M = TM::PeriodDuration.new(nil,[0,0,1,0])
179
+ PT1H = TM::PeriodDuration.new(nil,[0,1,0,0])
180
+ P1D = TM::PeriodDuration.new([0,0,1])
181
+ P1W = TM::PeriodDuration.new([0,0,7])
182
+ P1M = TM::PeriodDuration.new([0,1,0])
183
+ P1Y = TM::PeriodDuration.new([1,0,0])
184
+ TimeValue = TM::IndeterminateValue
154
185
 
155
186
  PlusInfinity = TM::TemporalPosition.new({:indeterminated_position=>TimeValue::Max})
156
187
  MinusInfinity = TM::TemporalPosition.new({:indeterminated_position=>TimeValue::Min})
@@ -160,57 +191,90 @@ module When
160
191
  EUCJP = '.eucJP'
161
192
 
162
193
  class BasicTypes::M17n
163
- autoload :JapaneseTerms, 'when_exe/region/japanese'
164
- autoload :ChineseTerms, 'when_exe/region/chinese'
165
- autoload :YiTerms, 'when_exe/region/chinese'
166
- autoload :TibetanTerms, 'when_exe/region/tibetan'
167
- autoload :ThaiTerms, 'when_exe/region/thai'
168
- autoload :BalineseTerms, 'when_exe/region/balinese'
169
- autoload :JavaneseTerms, 'when_exe/region/javanese'
170
- autoload :IndianTerms, 'when_exe/region/indian'
171
- autoload :IranianTerms, 'when_exe/region/iranian'
172
- autoload :IslamicTerms, 'when_exe/region/islamic'
173
- autoload :JewishTerms, 'when_exe/region/jewish'
174
- autoload :RomanTerms, 'when_exe/region/roman'
175
- autoload :CopticTerms, 'when_exe/region/coptic'
176
- autoload :FrenchTerms, 'when_exe/region/french'
177
- autoload :WorldTerms, 'when_exe/region/world'
178
- autoload :ShireTerms, 'when_exe/region/shire'
179
- autoload :MartianTerms, 'when_exe/region/martian'
180
- autoload :WikipediaLinks, 'when_exe/locales/links'
194
+ autoload :Japanese, 'when_exe/region/japanese'
195
+ autoload :Chinese, 'when_exe/region/chinese'
196
+ autoload :Yi, 'when_exe/region/chinese'
197
+ autoload :Tibetan, 'when_exe/region/tibetan'
198
+ autoload :Thai, 'when_exe/region/thai'
199
+ autoload :Balinese, 'when_exe/region/balinese'
200
+ autoload :Javanese, 'when_exe/region/javanese'
201
+ autoload :Indian, 'when_exe/region/indian'
202
+ autoload :Iranian, 'when_exe/region/iranian'
203
+ autoload :Islamic, 'when_exe/region/islamic'
204
+ autoload :Jewish, 'when_exe/region/jewish'
205
+ autoload :Armenian, 'when_exe/region/Armenian'
206
+ autoload :Roman, 'when_exe/region/roman'
207
+ autoload :Coptic, 'when_exe/region/coptic'
208
+ autoload :French, 'when_exe/region/french'
209
+ autoload :World, 'when_exe/region/world'
210
+ autoload :Shire, 'when_exe/region/shire'
211
+ autoload :Yerm, 'when_exe/region/yerm'
212
+ autoload :Martian, 'when_exe/region/martian'
213
+ autoload :WeekDate, 'when_exe/region/weekdate'
214
+ end
215
+
216
+ module Locale
217
+ autoload :WikipediaLinks, 'when_exe/locales/links'
218
+ autoload :IAST, 'when_exe/locales/iast'
219
+ autoload :IASTR, 'when_exe/locales/iast'
220
+ autoload :AKT, 'when_exe/locales/akt'
181
221
  end
182
222
 
183
223
  module CalendarTypes
184
- autoload :Japanese, 'when_exe/region/japanese'
185
- autoload :JapaneseTwin, 'when_exe/region/japanese_twin'
186
- autoload :ChineseTwin, 'when_exe/region/chinese_twin'
187
- autoload :ChineseSolar, 'when_exe/region/chinese'
188
- autoload :ChineseLuniSolar, 'when_exe/region/chinese'
189
- autoload :Yi, 'when_exe/region/chinese'
190
- autoload :Tibetan, 'when_exe/region/tibetan'
191
- autoload :ThaiB, 'when_exe/region/thai'
192
- autoload :ThaiC, 'when_exe/region/thai'
193
- autoload :Tenganan, 'when_exe/region/balinese'
194
- autoload :Pranatamangsa, 'when_exe/region/javanese'
195
- autoload :IndianNationalSolar, 'when_exe/region/indian'
196
- autoload :HinduSolar, 'when_exe/region/indian'
197
- autoload :HinduLuniSolar, 'when_exe/region/indian'
198
- autoload :SolarHejri, 'when_exe/region/iranian'
199
- autoload :Bahai, 'when_exe/region/bahai'
200
- autoload :TabularIslamic, 'when_exe/region/islamic'
201
- autoload :EphemerisBasedIslamic, 'when_exe/region/islamic'
202
- autoload :Jewish, 'when_exe/region/jewish'
203
- autoload :Coptic, 'when_exe/region/coptic'
204
- autoload :JulianA, 'when_exe/region/roman'
205
- autoload :JulianB, 'when_exe/region/roman'
206
- autoload :JulianC, 'when_exe/region/roman'
207
- autoload :Roman, 'when_exe/region/roman'
208
- autoload :FrenchRepublican, 'when_exe/region/french'
209
- autoload :World, 'when_exe/region/world'
210
- autoload :LongCount, 'when_exe/region/mayan'
211
- autoload :Shire, 'when_exe/region/shire'
212
- autoload :ShireG, 'when_exe/region/shire'
213
- autoload :Darian, 'when_exe/region/martian'
224
+ autoload :Japanese, 'when_exe/region/japanese/calendars'
225
+ autoload :JapaneseTwin, 'when_exe/region/japanese/twins'
226
+ autoload :ChineseTwin, 'when_exe/region/chinese/twins'
227
+ autoload :ChineseSolar, 'when_exe/region/chinese'
228
+ autoload :ChineseLuniSolar, 'when_exe/region/chinese'
229
+ autoload :Yi, 'when_exe/region/chinese'
230
+ autoload :Korean, 'when_exe/region/korean'
231
+ autoload :Tibetan, 'when_exe/region/tibetan'
232
+ autoload :Thai, 'when_exe/region/thai'
233
+ autoload :ThaiP, 'when_exe/region/thai'
234
+ autoload :ThaiC, 'when_exe/region/thai'
235
+ autoload :ThaiT, 'when_exe/region/thai'
236
+ autoload :Tenganan, 'when_exe/region/balinese'
237
+ autoload :Pranatamangsa, 'when_exe/region/javanese'
238
+ autoload :IndianNationalSolar, 'when_exe/region/indian'
239
+ autoload :Nanakshahi, 'when_exe/region/indian'
240
+ autoload :RevisedBengali, 'when_exe/region/indian'
241
+ autoload :HinduLuniSolar, 'when_exe/region/indian'
242
+ autoload :HinduSolar, 'when_exe/region/indian'
243
+ autoload :Jalali, 'when_exe/region/iranian'
244
+ autoload :TableBasedJalali, 'when_exe/region/iranian'
245
+ autoload :Borji, 'when_exe/region/iranian'
246
+ autoload :TableBasedBorji, 'when_exe/region/iranian'
247
+ autoload :SolarHijri, 'when_exe/region/iranian'
248
+ autoload :SolarHijriAlgorithmic, 'when_exe/region/iranian'
249
+ autoload :Zoroastrian, 'when_exe/region/zoroastrian'
250
+ autoload :Qadimi, 'when_exe/region/zoroastrian'
251
+ autoload :Shahanshahi, 'when_exe/region/zoroastrian'
252
+ autoload :Fasli, 'when_exe/region/zoroastrian'
253
+ autoload :Bahai, 'when_exe/region/bahai'
254
+ autoload :TabularIslamic, 'when_exe/region/islamic'
255
+ autoload :EphemerisBasedIslamic, 'when_exe/region/islamic'
256
+ autoload :Jewish, 'when_exe/region/jewish'
257
+ autoload :Armenian, 'when_exe/region/armenian'
258
+ autoload :Coptic, 'when_exe/region/coptic'
259
+ autoload :JulianA, 'when_exe/region/roman'
260
+ autoload :JulianB, 'when_exe/region/roman'
261
+ autoload :JulianC, 'when_exe/region/roman'
262
+ autoload :Roman, 'when_exe/region/roman'
263
+ autoload :Gregorian, 'when_exe/region/christian'
264
+ autoload :FrenchRepublican, 'when_exe/region/french'
265
+ autoload :World, 'when_exe/region/world'
266
+ autoload :LongCount, 'when_exe/region/mayan'
267
+ autoload :Discordian, 'when_exe/region/discordian'
268
+ autoload :Shire, 'when_exe/region/shire'
269
+ autoload :ShireG, 'when_exe/region/shire'
270
+ autoload :Sym454, 'when_exe/region/symmetry'
271
+ autoload :Sym010, 'when_exe/region/symmetry'
272
+ autoload :Yerm, 'when_exe/region/yerm'
273
+ autoload :Dee, 'when_exe/region/dee'
274
+ autoload :DeeCecil, 'when_exe/region/dee'
275
+ autoload :Goddess, 'when_exe/region/goddess'
276
+ autoload :Darian, 'when_exe/region/martian'
277
+ autoload :WeekDate, 'when_exe/region/weekdate'
214
278
 
215
279
  _time_systems = {
216
280
  'LMT' => nil, # Local Mean Time
@@ -225,99 +289,97 @@ module When
225
289
  end
226
290
 
227
291
  class CalendarNote
228
- autoload :SolarTerms, 'when_exe/region/ephemeric_notes'
229
- autoload :LunarPhases, 'when_exe/region/ephemeric_notes'
230
- autoload :EphemericNote, 'when_exe/region/ephemeric_notes'
231
- autoload :JapaneseNote, 'when_exe/region/japanese_notes'
232
- autoload :BalineseNote, 'when_exe/region/balinese'
233
- autoload :RomanNote, 'when_exe/region/roman'
234
- autoload :WorldWeek, 'when_exe/region/world'
235
- autoload :ShireWeek, 'when_exe/region/shire'
236
-
237
- DefaultNotes = [['_m:CalendarTerms::Month'], ['CommonResidue::Week']]
238
- JulianDayNotes = [['CommonResidue::Week', 'CommonResidue::干支']]
239
- BahaiNotes = [['Bahai::YearName'], ['_m:BahaiTerms::Month'], ['CommonResidue::Week']]
240
- JavaneseNotes = [['Javanese::Windu'], ['_m:CalendarTerms::Month'],
241
- ['Javanese::Pasaran', 'Javanese::Paringkelan', 'Javanese::Week', 'Javanese::Wuku']]
242
- ChineseNotes = [['CommonResidue::干支'], ['_m:CalendarTerms::Month'], ['CommonResidue::Week', 'CommonResidue::干支']]
243
- TibetanNotes = [['Tibetan::干支'], ['_m:CalendarTerms::Month'], ['CommonResidue::Week']]
244
- YiNotes = [['Yi::YearName'], ['_m:CalendarTerms::Month'], ['CommonResidue::Week']]
245
- MayanNotes = [{},['Mayan#{?Epoch=Epoch}::Trecena', 'Mayan#{?Epoch=Epoch}::Tzolk\'in',
246
- 'Mayan#{?Epoch=Epoch}::Lords_of_the_Night', 'Mayan#{?Epoch=Epoch}::Haab\'']]
292
+ autoload :SolarTerms, 'when_exe/ephemeris/notes'
293
+ autoload :LunarPhases, 'when_exe/ephemeris/notes'
294
+ autoload :Ephemeris, 'when_exe/ephemeris/notes'
295
+ autoload :Japanese, 'when_exe/region/japanese/notes'
296
+ autoload :Yis, 'when_exe/region/chinese'
297
+ autoload :Balinese, 'when_exe/region/balinese'
298
+ autoload :Javanese, 'when_exe/region/javanese'
299
+ autoload :Tibetan, 'when_exe/region/tibetan'
300
+ autoload :Bahai, 'when_exe/region/bahai'
301
+ autoload :Roman, 'when_exe/region/roman'
302
+ autoload :Mayan, 'when_exe/region/mayan'
303
+ autoload :Discordian, 'when_exe/region/discordian'
304
+ # autoload :Yerm, 'when_exe/region/yerm'
305
+ autoload :WorldWeek, 'when_exe/region/world'
306
+ autoload :ShireWeek, 'when_exe/region/shire'
307
+
308
+ Default = [['_m:Calendar::Month'], ['Common::Week']]
309
+ JulianDay = [['Common::Week', 'Common::干支']]
310
+ Chinese = [['Common::干支'], ['_m:Calendar::Month'], ['Common::Week', 'Common::干支']]
247
311
  end
248
312
 
249
313
  module Coordinates
250
- autoload :Tibetan, 'when_exe/region/tibetan'
251
- autoload :Yi, 'when_exe/region/chinese'
252
- autoload :Javanese, 'when_exe/region/javanese'
253
- autoload :IndianCities, 'when_exe/region/indian'
254
- autoload :Bahai, 'when_exe/region/bahai'
255
- autoload :Roman, 'when_exe/region/roman'
256
- autoload :Mayan, 'when_exe/region/mayan'
314
+ autoload :Tibetan, 'when_exe/region/tibetan'
315
+ autoload :Yi, 'when_exe/region/chinese'
316
+ autoload :Javanese, 'when_exe/region/javanese'
317
+ autoload :Indian, 'when_exe/region/indian'
318
+ autoload :Iranian, 'when_exe/region/iranian'
319
+ autoload :Bahai, 'when_exe/region/bahai'
320
+ autoload :Roman, 'when_exe/region/roman'
321
+ autoload :Mayan, 'when_exe/region/mayan'
257
322
 
258
323
  # default index for day coordinate
259
- DefaultDayIndex = Coordinates::Index.new
324
+ DefaultDayIndex = Index.new
260
325
 
261
326
  # default indices for date coordinates
262
327
  DefaultDateIndices = [
263
- Coordinates::Index.new({:unit=>12}),
328
+ Index.new(When::Parts::Resource._instance('_m:Calendar::Month'), {:unit =>12}),
264
329
  DefaultDayIndex
265
330
  ]
266
331
 
267
332
  # default indices for time coordinates
268
333
  DefaultTimeIndices = [
269
- Coordinates::Index.new({:base=>0, :unit=>24}),
270
- Coordinates::Index.new({:base=>0, :unit=>60}),
271
- Coordinates::Index.new({:base=>0, :unit=>60})
334
+ Index.new({:base=>0, :unit=>24}),
335
+ Index.new({:base=>0, :unit=>60}),
336
+ Index.new({:base=>0, :unit=>60})
272
337
  ]
273
338
  end
274
339
 
275
340
  module TM
276
341
  class OrdinalReferenceSystem
277
- autoload :GeologicalAge, 'when_exe/region/geologicalage'
342
+ autoload :GeologicalAge, 'when_exe/region/geologicalage'
278
343
  end
279
344
 
280
345
  class CalendarEra
281
- autoload :Japanese, 'when_exe/region/japanese'
282
- autoload :JapanesePrimeMinister, 'when_exe/region/japanese'
283
- autoload :NihonKoki, 'when_exe/region/nihon_shoki'
284
- autoload :NihonShoki, 'when_exe/region/nihon_shoki'
285
- autoload :JapaneseSolarSeries, 'when_exe/region/japanese_twin'
286
- autoload :JapaneseLuniSolarSeries, 'when_exe/region/japanese_twin'
287
- autoload :Chinese, 'when_exe/region/chinese_epoch'
288
- autoload :ChineseSolarSeries, 'when_exe/region/chinese_twin'
289
- autoload :ChineseLuniSolarSeries, 'when_exe/region/chinese_twin'
290
- autoload :Ryukyu, 'when_exe/region/ryukyu'
291
- autoload :Korean, 'when_exe/region/korean'
292
- autoload :Vietnamese, 'when_exe/region/vietnamese'
293
- autoload :Manchurian, 'when_exe/region/far_east'
294
- autoload :Rouran, 'when_exe/region/far_east'
295
- autoload :Gaochang, 'when_exe/region/far_east'
296
- autoload :Yunnan, 'when_exe/region/far_east'
297
- # autoload :Tibetan, 'when_exe/region/tibetan'
298
- autoload :BalineseLuniSolar, 'when_exe/region/balinese'
299
- autoload :JavaneseLunar, 'when_exe/region/javanese'
300
- autoload :IndianNationalSolar, 'when_exe/region/indian'
301
- autoload :Iranian, 'when_exe/region/iranian'
302
- autoload :Hijra, 'when_exe/region/islamic'
303
- autoload :Jewish, 'when_exe/region/jewish'
304
- autoload :Roman, 'when_exe/region/roman'
305
- autoload :Julian, 'when_exe/region/roman'
306
- autoload :Pope, 'when_exe/region/pope'
307
- autoload :Byzantine, 'when_exe/region/christian'
308
- autoload :French, 'when_exe/region/french'
309
- autoload :World, 'when_exe/region/world'
310
- autoload :LongCount, 'when_exe/region/mayan'
346
+ autoload :Japanese, 'when_exe/region/japanese/epochs'
347
+ autoload :JapanesePrimeMinister, 'when_exe/region/japanese/epochs'
348
+ autoload :NihonKoki, 'when_exe/region/japanese/nihon_shoki'
349
+ autoload :NihonShoki, 'when_exe/region/japanese/nihon_shoki'
350
+ autoload :JapaneseSolar, 'when_exe/region/japanese/twins'
351
+ autoload :JapaneseLuniSolar, 'when_exe/region/japanese/twins'
352
+ autoload :Chinese, 'when_exe/region/chinese/epochs'
353
+ autoload :ChineseSolar, 'when_exe/region/chinese/twins'
354
+ autoload :ChineseLuniSolar, 'when_exe/region/chinese/twins'
355
+ autoload :Ryukyu, 'when_exe/region/ryukyu'
356
+ autoload :Korean, 'when_exe/region/korean'
357
+ autoload :Vietnamese, 'when_exe/region/vietnamese'
358
+ autoload :Manchurian, 'when_exe/region/far_east'
359
+ autoload :Rouran, 'when_exe/region/far_east'
360
+ autoload :Gaochang, 'when_exe/region/far_east'
361
+ autoload :Yunnan, 'when_exe/region/far_east'
362
+ # autoload :Tibetan, 'when_exe/region/tibetan'
363
+ autoload :BalineseLuniSolar, 'when_exe/region/balinese'
364
+ autoload :JavaneseLunar, 'when_exe/region/javanese'
365
+ autoload :Iranian, 'when_exe/region/iranian'
366
+ autoload :Hijra, 'when_exe/region/islamic'
367
+ autoload :Jewish, 'when_exe/region/jewish'
368
+ autoload :Roman, 'when_exe/region/roman'
369
+ autoload :Julian, 'when_exe/region/roman'
370
+ autoload :Pope, 'when_exe/region/pope'
371
+ autoload :Byzantine, 'when_exe/region/christian'
372
+ autoload :LongCount, 'when_exe/region/mayan'
311
373
 
312
374
  # Defualt search path for Epochs and Eras
313
375
  DefaultEpochs = ['Common', 'ModernJapanese',
314
- 'IndianNationalSolar', 'Iranian', 'Hijra', 'Jewish',
315
- 'Roman', 'Byzantine', 'French', 'World', 'LongCount',
376
+ 'Hijra', 'Jewish', 'Iranian',
377
+ 'Roman', 'Byzantine', 'LongCount',
316
378
  'BalineseLuniSolar', 'JavaneseLunar',
317
379
  'Japanese', 'JapanesePrimeMinister', 'NihonKoki', 'NihonShoki',
318
380
  'Chinese', 'Ryukyu', 'Vietnamese', 'Korean',
319
- 'JapaneseSolarSeries', 'JapaneseLuniSolarSeries',
320
- 'ChineseSolarSeries', 'ChineseLuniSolarSeries',
381
+ 'JapaneseSolar', 'JapaneseLuniSolar',
382
+ 'ChineseSolar', 'ChineseLuniSolar',
321
383
  'Manchurian', 'Rouran', 'Gaochang', 'Yunnan', # 'Tibetan',
322
384
  'Pope' ]
323
385
 
@@ -333,7 +395,6 @@ module When
333
395
 
334
396
  # Common Era
335
397
  Common = [{}, self, [
336
- 'namespace:[en=http://en.wikipedia.org/wiki/]',
337
398
  'area:Common#{?Reform=Reform}',
338
399
  ['[BeforeCommonEra=en:BCE_(disambiguation),*alias:BCE]0.1.1'],
339
400
  ['[CommonEra=en:Common_Era,*alias:CE]1.1.1', 'Calendar Epoch', '01-01-01^Julian'],
@@ -342,9 +403,8 @@ module When
342
403
 
343
404
  # Modern Japanese Eras after the calendar reform to the Gregorian Calendar
344
405
  ModernJapanese = [self, [
345
- 'namespace:[en=http://en.wikipedia.org/wiki/, ja=http://ja.wikipedia.org/wiki/]',
346
406
  'area:[ModernJapanese]',
347
- ['[M=,alias:明=ja:明治]6.01.01', '@CR', '1873-01-01^Gregorian?note=DefaultNotes'],
407
+ ['[M=,alias:明=ja:明治]6.01.01', '@CR', '1873-01-01^Gregorian?note=Default'],
348
408
  ['[T=,alias:大=ja:大正]1.07.30', '@A', '1912-07-30'],
349
409
  ['[S=,alias:昭=ja:昭和]1.12.25', '@A', '1926-12-25'],
350
410
  ['[H=,alias:平=ja:平成]1.01.08', '@A', '1989-01-08']
@@ -379,7 +439,7 @@ module When
379
439
  when /^today$/i ; today(options)
380
440
  when /^now$/i ; now(options)
381
441
  when /[\n\r]+/ ; when?(specification.split(/[\n\r]+/), options)
382
- when String ; TM::TemporalPosition._instance(specification, options)
442
+ when String ; TM::TemporalPosition._instance(EncodingConversion.to_internal_encoding(specification), options)
383
443
  when Numeric ; TM::JulianDate.new(+specification, TM::TemporalPosition._options(options))
384
444
  else ; Calendar(options[:frame] || 'Gregorian').jul_trans(specification, options)
385
445
  end
@@ -410,7 +470,13 @@ module When
410
470
  options = TM::TemporalPosition._options(options)
411
471
  options[:frame] ||= 'Gregorian'
412
472
  options[:frame] = Resource(options[:frame], '_c:') if options[:frame].kind_of?(String)
413
- options[:era_name] = args.shift if args[0].kind_of?(String) || args[0].kind_of?(Array)
473
+ case args[0]
474
+ when String
475
+ options[:era_name] = EncodingConversion.to_internal_encoding(args.shift)
476
+ when Array
477
+ options[:era_name] = args.shift
478
+ options[:era_name][0] = EncodingConversion.to_internal_encoding(options[:era_name][0])
479
+ end
414
480
 
415
481
  # 時間位置の生成
416
482
  date = Array.new(options[:frame].indices.length+1) {args.shift}
@@ -441,6 +507,9 @@ module When
441
507
  return position
442
508
  end
443
509
 
510
+ alias :tm_pos :TemporalPosition
511
+ module_function :tm_pos
512
+
444
513
  # 指定日時に対応する When::TM::TemporalPosition の生成
445
514
  # (When::TM::DateAndTime of specified Time)
446
515
  #
@@ -549,12 +618,12 @@ module When
549
618
 
550
619
  # When::CalendarNote の生成/参照
551
620
  #
552
- # @param [String] notes 暦注リストを表す文字列
621
+ # @param [String] note 暦注リストを表す文字列
553
622
  #
554
- # @return [When::CalendarNote] notes に対応する When::CalendarNote オブジェクト
623
+ # @return [When::CalendarNote] note に対応する When::CalendarNote オブジェクト
555
624
  #
556
- def CalendarNote(notes)
557
- Parts::Resource._instance(notes, '_n:')
625
+ def CalendarNote(note)
626
+ Parts::Resource._instance(note, '_n:')
558
627
  end
559
628
 
560
629
  # When::TM::CalendarEra の生成/参照
@@ -598,7 +667,7 @@ module When
598
667
  def Clock(clock)
599
668
  case clock
600
669
  when Parts::Timezone::Base ; return clock
601
- when 'Z', 0 ; return utc
670
+ when 'Z', 0 ; return UTC
602
671
  when Numeric ; return Parts::Resource._instance("_tm:Clock?label=" + TM::Clock.to_hms(clock))
603
672
  when /^#{CalendarTypes::TimeSystems}/ ; return Parts::Resource._instance('_c:' + clock)
604
673
  when String ;
@@ -614,14 +683,6 @@ module When
614
683
  Parts::Resource._instance(iri)
615
684
  end
616
685
 
617
- # When::CalendarTypes::UTC の生成/参照
618
- #
619
- # @return [When::CalendarTypes::UTC]
620
- #
621
- def utc
622
- Parts::Resource._instance("_c:UTC")
623
- end
624
-
625
686
  # When::Coordinates::Spatial の生成/参照
626
687
  #
627
688
  # @overload Location(location)
@@ -722,6 +783,7 @@ module When
722
783
  when Array ; BasicTypes::M17n.new(source, namespace, locale, options)
723
784
  when BasicTypes::M17n ; source
724
785
  when String
786
+ source = EncodingConversion.to_internal_encoding(source)
725
787
  return self[$1] if source =~ /^\s*\[((\.{1,2}|::)+[^\]]+)\]/ && self.kind_of?(When::Parts::Resource)
726
788
  return Parts::Resource[$1] if source =~ /^\s*\[::([^\]]+)\]/
727
789
  BasicTypes::M17n.new(source, namespace, locale, options)
@@ -734,7 +796,7 @@ module When
734
796
  # @param [String] title Wikipedia の項目名
735
797
  # @param [Hash] options 以下の通り
736
798
  # @option options [String] :locale Wikipedia の言語(デフォルト 'en' - 英語)
737
- # @option options [Numeric, nil] :interval Wikipedia サイトへのアクセス制御(デフォルト When::Parts::Locale.wikipedia_interval)
799
+ # @option options [Numeric, nil] :interval Wikipedia サイトへのアクセス制御(デフォルト When::Locale.wikipedia_interval)
738
800
  # @option options [Object] :その他 キャッシュファイルへの追加書き出し要素
739
801
  #
740
802
  # @return [When::BasicTypes::M17n] 項目に対応する多言語対応文字列
@@ -744,9 +806,10 @@ module When
744
806
  #
745
807
  def Wikipedia(title, options={})
746
808
  locale = options.delete(:locale) || 'en'
809
+ title = EncodingConversion.to_internal_encoding(title)
747
810
  entry, query = title.split('?', 2)
748
811
  url = "http://#{locale}.wikipedia.org/wiki/#{URI.encode(entry).gsub(' ', '_')}"
749
- Parts::Locale.send(:wikipedia_object, url, options) unless options.empty?
812
+ Locale.send(:wikipedia_object, url, options) unless options.empty?
750
813
  url += '?' + query if query
751
814
  object = Parts::Resource._instance(url)
752
815
  object.kind_of?(BasicTypes::M17n) ? object : object.label
@@ -764,6 +827,24 @@ module When
764
827
  end
765
828
  alias :IRI :Resource
766
829
 
830
+ # When::Coordinates::Index の生成
831
+ #
832
+ # @overload Index(terms=nil, name='Month', options)
833
+ # @param [String] terms trunk の用語空間名
834
+ # @param [String] name trunk の要素配列名
835
+ # @param [Hash] options
836
+ # @option options [Array] :trunk 幹の要素(省略時は使用しない)
837
+ # @option options [Hash] :branch 枝の要素(省略時は使用しない)
838
+ # @option options [Integer] :unit 要素の数(省略時は不定)
839
+ # @option options [Integer] :base 要素の最初の添え字(0 or 1(デフォルト))
840
+ # @option options [Integer] :shift 幹の要素のローテート数(省略時はローテートしない)
841
+ #
842
+ # @return [When::Coordinates::Index]
843
+ #
844
+ def Index(*args)
845
+ Coordinates::Index.new(*args)
846
+ end
847
+
767
848
  # When::Coordinates::Pair の生成
768
849
  #
769
850
  # @param [Numeric, String] trunk 幹の要素
@@ -775,4 +856,8 @@ module When
775
856
  def Pair(trunk, branch=nil)
776
857
  Coordinates::Pair._force_pair(trunk, branch)
777
858
  end
859
+
860
+ # When 直下に定数として時法・暦法を定義する
861
+ _define_common_calendar_types
862
+
778
863
  end