when_exe 0.4.4 → 0.4.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/when_exe.rb +89 -3
- data/lib/when_exe/basictypes.rb +37 -7
- data/lib/when_exe/calendarnote.rb +18 -13
- data/lib/when_exe/calendartypes.rb +3 -9
- data/lib/when_exe/coordinates.rb +23 -373
- data/lib/when_exe/ephemeris.rb +7 -7
- data/lib/when_exe/ephemeris/notes.rb +0 -14
- data/lib/when_exe/events.rb +1851 -0
- data/lib/when_exe/icalendar.rb +121 -4
- data/lib/when_exe/linkeddata.rb +29 -18
- data/lib/when_exe/locales/akt.rb +63 -0
- data/lib/when_exe/locales/locale.rb +60 -11
- data/lib/when_exe/mini_application.rb +14 -8
- data/lib/when_exe/namespace.rb +42 -0
- data/lib/when_exe/parts/enumerator.rb +13 -2
- data/lib/when_exe/parts/geometric_complex.rb +51 -1
- data/lib/when_exe/parts/method_cash.rb +15 -10
- data/lib/when_exe/parts/resource.rb +47 -29
- data/lib/when_exe/region/chinese.rb +4 -3
- data/lib/when_exe/region/chinese/calendars.rb +4 -4
- data/lib/when_exe/region/chinese/epochs.rb +6 -6
- data/lib/when_exe/region/chinese/notes.rb +3 -3
- data/lib/when_exe/region/chinese/twins.rb +6 -6
- data/lib/when_exe/region/islamic.rb +1 -1
- data/lib/when_exe/region/japanese.rb +4 -4
- data/lib/when_exe/region/japanese/eclipses.rb +2 -2
- data/lib/when_exe/region/japanese/location.rb +93 -0
- data/lib/when_exe/region/japanese/notes.rb +29 -11
- data/lib/when_exe/region/japanese/residues.rb +1 -1
- data/lib/when_exe/region/japanese/twins.rb +18 -6
- data/lib/when_exe/region/location.rb +40 -0
- data/lib/when_exe/region/martian.rb +1 -1
- data/lib/when_exe/region/ryukyu.rb +1 -1
- data/lib/when_exe/spatial.rb +611 -0
- data/lib/when_exe/timestandard.rb +3 -3
- data/lib/when_exe/tmobjects.rb +32 -0
- data/lib/when_exe/tmposition.rb +211 -1318
- data/lib/when_exe/tmptypes.rb +1265 -0
- data/lib/when_exe/tmreference.rb +35 -0
- data/lib/when_exe/version.rb +3 -3
- data/test/events/example-datasets +7 -0
- data/test/events/history-dataset.csv +22 -0
- data/test/events/japanese-holiday-index.csv +28 -0
- data/test/events/japanese-holiday.csv +77 -0
- data/test/events/japanese-holiday.ttl +778 -0
- data/test/events/make_events_ttl.rb +18 -0
- data/test/events/mori_wikichoshi.csv +14 -0
- data/test/events/ndl_koyomi.csv +220 -0
- data/test/events/ndl_koyomi_index.csv +44 -0
- data/test/events/primeminister-dataset.csv +19 -0
- data/test/events/shogun-dataset.csv +22 -0
- data/test/events/test-history-dataset-edge-sparql.csv +26 -0
- data/test/events/test-history-dataset-edge.csv +27 -0
- data/test/events/test-history-dataset-sparql.csv +22 -0
- data/test/events/test-history-dataset.csv +23 -0
- data/test/events/test-history-events-edge.ttl +89 -0
- data/test/events/test-history-events.csv +6 -0
- data/test/examples/Terms.m17n +1 -1
- data/test/test.rb +6 -0
- data/test/test/coordinates.rb +2 -2
- data/test/test/events.rb +32 -0
- data/test/test/region/japanese.rb +20 -0
- data/test/test/region/m17n.rb +2 -2
- data/test/test/region/mayan.rb +6 -6
- data/test/test/tmposition.rb +63 -1
- metadata +26 -2
@@ -232,9 +232,6 @@ module When
|
|
232
232
|
calendars[0] ||= When::Gregorian
|
233
233
|
result = dates.map {|date|
|
234
234
|
date = When.when?(date)
|
235
|
-
opts = {}
|
236
|
-
opts[:location] = date.location if date.location
|
237
|
-
opts[:clock ] = date.clock if date.respond_to?(:clock) && date.clock
|
238
235
|
list = calendars.dup
|
239
236
|
(0...calendars.size).to_a.reverse.each do |i|
|
240
237
|
case list[i]
|
@@ -257,15 +254,13 @@ module When
|
|
257
254
|
|
258
255
|
if methods.size == 0
|
259
256
|
list.map {|calendar|
|
260
|
-
|
261
|
-
yield(calendar.new(date, opts.dup)) :
|
262
|
-
yield(calendar.^(calendar.rate_of_clock == date.time_standard.rate_of_clock ? date.to_i : date, opts))
|
257
|
+
yield(date_for_calendar(calendar, date, options))
|
263
258
|
}
|
264
259
|
else
|
265
260
|
list.map {|calendar|
|
266
|
-
|
261
|
+
date_for_cal = date_for_calendar(calendar, date, options)
|
267
262
|
methods.map {|method|
|
268
|
-
|
263
|
+
date_for_cal.send(method[0].to_sym, method[1], &block)
|
269
264
|
}
|
270
265
|
}
|
271
266
|
end
|
@@ -274,6 +269,17 @@ module When
|
|
274
269
|
return result
|
275
270
|
end
|
276
271
|
|
272
|
+
# 当該 Calendar or CalendarEra の TemporalPosition を生成
|
273
|
+
def date_for_calendar(calendar, date, options)
|
274
|
+
opts = {}
|
275
|
+
opts[:location] = date.location if date.location
|
276
|
+
opts[:clock ] = calendar.rate_of_clock == 1.0 ? options[:clock] :
|
277
|
+
calendar.time_basis if date.respond_to?(:clock)
|
278
|
+
calendar.kind_of?(Class) ?
|
279
|
+
calendar.new(date, opts) :
|
280
|
+
calendar.^([calendar.rate_of_clock,date.time_standard.rate_of_clock].uniq == [1.0] ? date.to_i : date, opts)
|
281
|
+
end
|
282
|
+
|
277
283
|
# JSONで通信するために Symbol を String に変換する
|
278
284
|
def _to_string(source)
|
279
285
|
case source
|
@@ -0,0 +1,42 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
=begin
|
3
|
+
Copyright (C) 2015 Takashi SUGA
|
4
|
+
|
5
|
+
You may use and/or modify this file according to the license described in the LICENSE.txt file included in this archive.
|
6
|
+
=end
|
7
|
+
|
8
|
+
module When
|
9
|
+
module Namespace
|
10
|
+
|
11
|
+
# XML Schema Definition
|
12
|
+
XSD = 'http://www.w3.org/2001/XMLSchema'
|
13
|
+
|
14
|
+
# Resource Description Framework
|
15
|
+
RDF = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#'
|
16
|
+
|
17
|
+
# Resource Description Framework Schema
|
18
|
+
RDFS = 'http://www.w3.org/2000/01/rdf-schema#'
|
19
|
+
|
20
|
+
# RDF 1.1 Concepts and Abstract Syntax
|
21
|
+
RDFC = 'http://www.w3.org/TR/rdf11-concepts/#'
|
22
|
+
|
23
|
+
# Web Ontology Language
|
24
|
+
OWL = 'http://www.w3.org/2002/07/owl#'
|
25
|
+
|
26
|
+
# Dublin Core
|
27
|
+
DC = 'http://purl.org/dc/elements/1.1/'
|
28
|
+
|
29
|
+
# Dublin Core Terms
|
30
|
+
DCQ = 'http://purl.org/dc/terms/'
|
31
|
+
|
32
|
+
# Dublin Core Types
|
33
|
+
DCT = 'http://purl.org/dc/dcmitype/'
|
34
|
+
|
35
|
+
# Friend of a Friend
|
36
|
+
FOAF = 'http://xmlns.com/foaf/0.1/'
|
37
|
+
|
38
|
+
# RDF Site Summary
|
39
|
+
RSS = 'http://purl.org/rss/1.0/'
|
40
|
+
|
41
|
+
end
|
42
|
+
end
|
@@ -188,7 +188,7 @@ module When::Parts
|
|
188
188
|
# [ false - ない ]
|
189
189
|
#
|
190
190
|
def has_next?
|
191
|
-
return (@count_limit != 0) &&
|
191
|
+
return (@count_limit != 0) && !@current.nil?
|
192
192
|
end
|
193
193
|
|
194
194
|
#
|
@@ -238,7 +238,17 @@ module When::Parts
|
|
238
238
|
@count += 1
|
239
239
|
_exclude(@current) if @current
|
240
240
|
end
|
241
|
-
|
241
|
+
@delayed && value.respond_to?(:apply_delayed_options) ?
|
242
|
+
value.apply_delayed_options(@delayed) :
|
243
|
+
value
|
244
|
+
end
|
245
|
+
|
246
|
+
# 終端要素は含む
|
247
|
+
#
|
248
|
+
# @return [Boolean]
|
249
|
+
#
|
250
|
+
def exclude_end
|
251
|
+
false
|
242
252
|
end
|
243
253
|
|
244
254
|
# オブジェクトの生成
|
@@ -262,6 +272,7 @@ module When::Parts
|
|
262
272
|
@options = self.class._options(args)
|
263
273
|
@exdate = @options.delete(:exdate)
|
264
274
|
@exevent = @options.delete(:exevent)
|
275
|
+
@delayed = @options.delete(:delayed)
|
265
276
|
@parent, *rest = args
|
266
277
|
_range(rest)
|
267
278
|
_rewind
|
@@ -224,6 +224,56 @@ module When::Parts
|
|
224
224
|
end
|
225
225
|
end
|
226
226
|
|
227
|
+
# オブジェクト変換オプションの遅延適用
|
228
|
+
#
|
229
|
+
# @param [Hash] options 以下の通り
|
230
|
+
# @option options [Hash<Integrt=>When::Coordinates::Residue>] :residue
|
231
|
+
# @option options [When::TM::Clock] :clock
|
232
|
+
# @option options [Array <When::TM::Calendar>] :frame
|
233
|
+
#
|
234
|
+
# @return [When::Parts::GeometricComplex]
|
235
|
+
#
|
236
|
+
def apply_delayed_options(options)
|
237
|
+
last_node = nil
|
238
|
+
self.class.new(@node.map {|node|
|
239
|
+
point, flag, range = node
|
240
|
+
if range && last_node
|
241
|
+
[last_node + range, flag, range]
|
242
|
+
else
|
243
|
+
last_node = point.apply_delayed_options(options)
|
244
|
+
[last_node, flag]
|
245
|
+
end
|
246
|
+
}, @reverse)
|
247
|
+
end
|
248
|
+
|
249
|
+
# 平行移動(加算)
|
250
|
+
#
|
251
|
+
# @param [When::TM::Duration] duration
|
252
|
+
#
|
253
|
+
# @return [When::Parts::GeometricComplex]
|
254
|
+
#
|
255
|
+
def +(duration)
|
256
|
+
self.class.new(@node.map {|node|
|
257
|
+
new_node = node.dup
|
258
|
+
new_node[0] += duration
|
259
|
+
new_node
|
260
|
+
}, @reverse)
|
261
|
+
end
|
262
|
+
|
263
|
+
# 平行移動(減算)
|
264
|
+
#
|
265
|
+
# @param [When::TM::Duration] duration
|
266
|
+
#
|
267
|
+
# @return [When::Parts::GeometricComplex]
|
268
|
+
#
|
269
|
+
def +(duration)
|
270
|
+
self.class.new(@node.map {|node|
|
271
|
+
new_node = node.dup
|
272
|
+
new_node[0] -= duration
|
273
|
+
new_node
|
274
|
+
}, @reverse)
|
275
|
+
end
|
276
|
+
|
227
277
|
# オブジェクトの生成
|
228
278
|
#
|
229
279
|
# @overload initialize(range, reverse=false)
|
@@ -288,7 +338,7 @@ module When::Parts
|
|
288
338
|
first = [first, true]
|
289
339
|
case last
|
290
340
|
when Comparable ; last = [last, false]
|
291
|
-
when When::TM::Duration ; last = [first[0] + last, false]
|
341
|
+
when When::TM::Duration ; last = [first[0] + last, false, last]
|
292
342
|
when nil ; last = first
|
293
343
|
else ; raise TypeError, "Irregal GeometricComplex Type for last element: #{last.class}"
|
294
344
|
end
|
@@ -141,7 +141,7 @@ module When
|
|
141
141
|
if ((name.to_s =~ /\A(_*)(.+?)_to_(.+)\z/) && respond_to?("#{$1}#{$3}_to_#{$2}_", true))
|
142
142
|
prefix, from, to = $~[1..3]
|
143
143
|
begin
|
144
|
-
if
|
144
|
+
if @_m_cash_lock_
|
145
145
|
return send("#{prefix}#{from}_to_#{to}_", *args, &block) unless @_m_cash_lock_.try_lock
|
146
146
|
unlock = "ensure ; @_m_cash_lock_.locked? && @_m_cash_lock_.unlock"
|
147
147
|
end
|
@@ -161,19 +161,21 @@ module When
|
|
161
161
|
return inv
|
162
162
|
#{unlock}
|
163
163
|
end
|
164
|
+
rescue ThreadError
|
164
165
|
end
|
165
166
|
}
|
166
167
|
end
|
167
168
|
key = _key_simplefy(args)
|
168
169
|
inv = send("#{prefix}#{from}_to_#{to}_", *args)
|
169
|
-
@_m_cash_ ||= {}
|
170
|
-
@_m_cash_["#{prefix}#{to}_to_#{from}"] ||= {}
|
171
|
-
@_m_cash_["#{prefix}#{from}_to_#{to}"] ||= {}
|
170
|
+
@_m_cash_ ||= Hash.new {|hash,key| hash[key]={}}
|
172
171
|
@_m_cash_["#{prefix}#{to}_to_#{from}"][_key_simplefy(inv)] = args
|
173
172
|
@_m_cash_["#{prefix}#{from}_to_#{to}"][key] = inv
|
174
173
|
return inv
|
175
174
|
ensure
|
176
|
-
|
175
|
+
begin
|
176
|
+
@_m_cash_lock_ && @_m_cash_lock_.locked? && @_m_cash_lock_.unlock
|
177
|
+
rescue ThreadError
|
178
|
+
end
|
177
179
|
end
|
178
180
|
|
179
181
|
else
|
@@ -181,7 +183,7 @@ module When
|
|
181
183
|
respond = respond_to?("#{name}_setup", true)
|
182
184
|
setup = respond ? "#{name}_setup(key, *args)" :
|
183
185
|
"(@_m_cash_[\"#{name}\"][key] = #{name}_(*args))"
|
184
|
-
if
|
186
|
+
if @_m_cash_lock_
|
185
187
|
return send("#{name}_", *args, &block) unless @_m_cash_lock_.try_lock
|
186
188
|
lock = " return #{name}_(*args) unless @_m_cash_lock_.try_lock"
|
187
189
|
unlock = "ensure ; @_m_cash_lock_.locked? && @_m_cash_lock_.unlock"
|
@@ -196,18 +198,21 @@ module When
|
|
196
198
|
return #{setup}
|
197
199
|
#{unlock}
|
198
200
|
end
|
201
|
+
rescue ThreadError
|
199
202
|
end
|
200
203
|
}
|
201
204
|
key = _key_simplefy(args)
|
202
|
-
@_m_cash_ ||= {}
|
203
|
-
|
204
|
-
if (respond)
|
205
|
+
@_m_cash_ ||= Hash.new {|hash,key| hash[key]={}}
|
206
|
+
if respond
|
205
207
|
return send("#{name}_setup", key, *args)
|
206
208
|
else
|
207
209
|
return(@_m_cash_["#{name}"][key] ||= send("#{name}_", *args))
|
208
210
|
end
|
209
211
|
ensure
|
210
|
-
|
212
|
+
begin
|
213
|
+
@_m_cash_lock_ && @_m_cash_lock_.locked? && @_m_cash_lock_.unlock
|
214
|
+
rescue ThreadError
|
215
|
+
end
|
211
216
|
end
|
212
217
|
end
|
213
218
|
end
|
@@ -15,6 +15,8 @@ module When::Parts
|
|
15
15
|
#
|
16
16
|
module Resource
|
17
17
|
|
18
|
+
include When::Namespace
|
19
|
+
|
18
20
|
# @private
|
19
21
|
LabelProperty = nil
|
20
22
|
|
@@ -47,7 +49,7 @@ module When::Parts
|
|
47
49
|
IRIEncode = /[#{IRIEncodeTable.keys.join('')}]/
|
48
50
|
|
49
51
|
# @private
|
50
|
-
IRIDecode = /#{IRIDecodeTable.keys.join('|')}/
|
52
|
+
IRIDecode = /#{IRIDecodeTable.keys.join('|')}/i
|
51
53
|
|
52
54
|
# @private
|
53
55
|
class ContentLine
|
@@ -198,6 +200,31 @@ module When::Parts
|
|
198
200
|
end
|
199
201
|
end
|
200
202
|
|
203
|
+
module Navigation
|
204
|
+
# 前のオブジェクト
|
205
|
+
#
|
206
|
+
# @return [When::Parts::Resource]
|
207
|
+
#
|
208
|
+
def prev
|
209
|
+
c = self
|
210
|
+
c = c.child[0] while c.child && c.child.size > 0
|
211
|
+
c = c._pool['.<-']
|
212
|
+
c = c.child[-1] while c && c.child && c.child.size > 0
|
213
|
+
c
|
214
|
+
end
|
215
|
+
|
216
|
+
# 次のオブジェクト
|
217
|
+
#
|
218
|
+
# @return [When::Parts::Resource]
|
219
|
+
#
|
220
|
+
def next
|
221
|
+
c = self
|
222
|
+
c = c.child[0] while c.child && c.child.size > 0
|
223
|
+
c._pool['.->']
|
224
|
+
end
|
225
|
+
alias :succ :next
|
226
|
+
end
|
227
|
+
|
201
228
|
class << self
|
202
229
|
|
203
230
|
include Pool
|
@@ -307,7 +334,7 @@ module When::Parts
|
|
307
334
|
#
|
308
335
|
# @param [String] iri International Resource Identifier
|
309
336
|
# @param [String] namespace (デフォルトの名前空間, 指定がないときは名前空間を省略しない)
|
310
|
-
# @param [Block] block
|
337
|
+
# @param [Block] block オブジェクトやパスが見つからない場合の代替処理
|
311
338
|
#
|
312
339
|
# @return [When::Parts::Resource]
|
313
340
|
#
|
@@ -457,7 +484,7 @@ module When::Parts
|
|
457
484
|
|
458
485
|
# @private
|
459
486
|
def _decode(iri)
|
460
|
-
iri = iri.gsub(When::Parts::Resource::IRIDecode) {|c| When::Parts::Resource::IRIDecodeTable[c]}
|
487
|
+
iri = iri.gsub(When::Parts::Resource::IRIDecode) {|c| When::Parts::Resource::IRIDecodeTable[c.upcase]}
|
461
488
|
return iri unless iri =~ /%28/
|
462
489
|
|
463
490
|
begin
|
@@ -515,7 +542,10 @@ module When::Parts
|
|
515
542
|
return object if object
|
516
543
|
OpenURI
|
517
544
|
args = [path, "1".respond_to?(:force_encoding) ? 'r:utf-8' : 'r']
|
518
|
-
|
545
|
+
real_path = block_given? ? yield(path) : path
|
546
|
+
raise IOError, path + ': not ready' unless real_path
|
547
|
+
args = [real_path, "1".respond_to?(:force_encoding) ? 'r:utf-8' : 'r']
|
548
|
+
args << {:ssl_verify_mode=>OpenSSL::SSL::VERIFY_NONE} if real_path =~ /\Ahttps:/
|
519
549
|
open(*args) do |file|
|
520
550
|
resource = file.read
|
521
551
|
case resource[0..5].upcase
|
@@ -525,6 +555,9 @@ module When::Parts
|
|
525
555
|
when '<?XML '
|
526
556
|
options['.'] = _xml(REXML::Document.new(_replace_tags(resource, replace)).root)
|
527
557
|
options['.'][0].new(options)
|
558
|
+
when '# WHEN'
|
559
|
+
klass, rows = _csv(resource)
|
560
|
+
klass.new(path, rows, &block)
|
528
561
|
else
|
529
562
|
raise NoMethodError, 'JSON not supported' unless Object.const_defined?(:JSON)
|
530
563
|
_internal(_json([JSON.parse(resource)]), replace, options)
|
@@ -683,6 +716,13 @@ module When::Parts
|
|
683
716
|
json
|
684
717
|
end
|
685
718
|
end
|
719
|
+
|
720
|
+
# .csv フォーマットの読み込み
|
721
|
+
def _csv(csv)
|
722
|
+
rows = CSV.parse(csv)
|
723
|
+
klass = rows.shift.first[2..-1].strip.split('::').inject(Object) {|ns, sym| ns.const_get(sym)}
|
724
|
+
[klass, rows]
|
725
|
+
end
|
686
726
|
end
|
687
727
|
|
688
728
|
include Synchronize
|
@@ -731,12 +771,13 @@ module When::Parts
|
|
731
771
|
# @return [Sring]
|
732
772
|
#
|
733
773
|
def iri(prefix=false)
|
774
|
+
return nil unless @_pool
|
734
775
|
unless @iri
|
735
776
|
root = @_pool['..']
|
736
777
|
path = root.instance_of?(String) ? root : label.to_s
|
737
778
|
if root.respond_to?(:iri)
|
738
779
|
root_iri = root.iri
|
739
|
-
path = root_iri + '::' + path if root_iri
|
780
|
+
path = root_iri + '::' + path.gsub(/[<>]/) {|char|'%' + char.ord.to_s(16)} if root_iri
|
740
781
|
end
|
741
782
|
@iri = path
|
742
783
|
end
|
@@ -825,29 +866,6 @@ module When::Parts
|
|
825
866
|
other.include?(self)
|
826
867
|
end
|
827
868
|
|
828
|
-
# 前のオブジェクト
|
829
|
-
#
|
830
|
-
# @return [When::Parts::Resource]
|
831
|
-
#
|
832
|
-
def prev
|
833
|
-
c = self
|
834
|
-
c = c.child[0] while c.child && c.child.size > 0
|
835
|
-
c = c._pool['.<-']
|
836
|
-
c = c.child[-1] while c && c.child && c.child.size > 0
|
837
|
-
c
|
838
|
-
end
|
839
|
-
|
840
|
-
# 次のオブジェクト
|
841
|
-
#
|
842
|
-
# @return [When::Parts::Resource]
|
843
|
-
#
|
844
|
-
def next
|
845
|
-
c = self
|
846
|
-
c = c.child[0] while c.child && c.child.size > 0
|
847
|
-
c._pool['.->']
|
848
|
-
end
|
849
|
-
alias :succ :next
|
850
|
-
|
851
869
|
# オブジェクト包含階層の末端か?
|
852
870
|
#
|
853
871
|
# @return [Boolean]
|
@@ -871,7 +889,7 @@ module When::Parts
|
|
871
889
|
return false unless leaf.equal?(root._pool[leaf.label])
|
872
890
|
leaf = root
|
873
891
|
end
|
874
|
-
Resource._pool.
|
892
|
+
Resource._pool.values.map {|resource| resource.object_id}.include?(leaf.object_id)
|
875
893
|
end
|
876
894
|
|
877
895
|
# When::BasicTypes::M17n の生成/参照
|
@@ -156,9 +156,9 @@ module When
|
|
156
156
|
@repeat_count = @repeat_count.to_i
|
157
157
|
|
158
158
|
# 太陽の盈縮表の生成
|
159
|
-
# [先後數, 朓朒数, (
|
159
|
+
# [先後數, 朓朒数, (初率b, 別差c)]
|
160
160
|
# ↓
|
161
|
-
# [区間の始めの冬至からの経過日数, 朓朒数,
|
161
|
+
# [区間の始めの冬至からの経過日数, 朓朒数, 初率b, 別差c]
|
162
162
|
@s = @s.map {|item| item.dup}
|
163
163
|
if @rissei # 立成の計算・比較
|
164
164
|
puts "\n ["+ @denominator.to_s + "]" if @rissei == @rissei.upcase
|
@@ -218,6 +218,7 @@ module When
|
|
218
218
|
t02 / 2.0
|
219
219
|
end
|
220
220
|
r = v < 0 ? 12.0/(17*11) : 12.0/(16*11)
|
221
|
+
# 初率b, 別差c
|
221
222
|
[v * r, (t12-t01) * r * r]
|
222
223
|
end
|
223
224
|
|
@@ -660,7 +661,7 @@ module When
|
|
660
661
|
@anomalistic_month_shift = @anomalistic_month_shift.to_f # 転應(暦元前近/遠地点通過から暦元天正冬至までの日数)
|
661
662
|
@anomaly_method = @anomaly_method || 'a' # (経朔-定朔)の計算方法
|
662
663
|
@anomaly_precision = (@anomaly_precision || 1.0E-5).to_f # c 方式 での収束判定誤差 / 日
|
663
|
-
@solar_weight =
|
664
|
+
@solar_weight = (@solar_weight || 0 ).to_i # (経朔-定朔)の計算で用いる実行差での太陽盈縮の重み(0:非考慮,1:考慮)
|
664
665
|
@lunar_unit = @lunar_unit.to_f # 太陰遅速計算用招差法定数の時間の単位(限)
|
665
666
|
@m = _rissei_j(@m) # 太陰遅速計算用招差法定数
|
666
667
|
@s = _rissei_j(@s) # 太陽盈縮計算用招差法定数
|
@@ -386,8 +386,8 @@ module When
|
|
386
386
|
# 北周・隋:: 大象暦 579 - 583
|
387
387
|
# 隋:: 開皇暦 584 - 596
|
388
388
|
# 隋・唐:: 大業暦 597 - 618
|
389
|
-
# 唐:: 戊寅元暦 619 -
|
390
|
-
# 唐・周:: 麟徳暦
|
389
|
+
# 唐:: 戊寅元暦 619 - 665
|
390
|
+
# 唐・周:: 麟徳暦 666 - 728 総法 1340(小余の分母)
|
391
391
|
# 唐:: 大衍暦 729 - 761 通法 3040( 〃 )
|
392
392
|
# 唐:: 五紀暦 762 - 783 通法 1340( 〃 )
|
393
393
|
# 唐:: 正元暦 784 - 806
|
@@ -530,8 +530,8 @@ module When
|
|
530
530
|
# 『唐・日本における進朔に関する研究』(2013-10版)を使用する場合の朔閏表(一部修正あり)
|
531
531
|
#
|
532
532
|
# 隋・唐:: 大業暦 618
|
533
|
-
# 唐:: 戊寅元暦 619 -
|
534
|
-
# 唐・周:: 麟徳暦
|
533
|
+
# 唐:: 戊寅元暦 619 - 665
|
534
|
+
# 唐・周:: 麟徳暦 666 - 728 総法 1340(小余の分母)
|
535
535
|
# 唐:: 大衍暦 729 - 761 通法 3040( 〃 )
|
536
536
|
# 唐:: 五紀暦 762 - 783 通法 1340( 〃 )
|
537
537
|
# 唐:: 正元暦 784 - 806
|