when_exe 0.4.4 → 0.4.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.
- 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
@@ -610,7 +610,7 @@ module When
|
|
610
610
|
["[皇泰]1" , "@A","name=[恭帝=ja:%%<恭帝トウ>];618-05-24^ChineseTwin?note=Chinese::大業暦", "619-04-08"], # 戊辰 5791-26
|
611
611
|
[self,
|
612
612
|
"period:[鄭<王世充>=ja:%%<王世充>]",
|
613
|
-
["[開明=ja:%%<開明_(王世充)>]1" ,"@F" ,"name=[王世充];619-04-08^ChineseTwin?note=Chinese::大業暦", "621-05-{丁卯}"] # 丙午 5853-45, 621-05-09=は丁卯
|
613
|
+
["[開明=ja:%%<開明_(王世充)>]1" ,"@F" ,"name=[王世充];619-04-08^ChineseTwin?note=Chinese::大業暦", "621-05-{1丁卯}"] # 丙午 5853-45, 621-05-09=は丁卯
|
614
614
|
],
|
615
615
|
[self,
|
616
616
|
"period:[梁<蕭銑>=ja:%%<蕭銑>]",
|
@@ -643,11 +643,11 @@ module When
|
|
643
643
|
[self,
|
644
644
|
"period:[夏<竇建徳>=ja:%%<竇建徳>]",
|
645
645
|
["[丁丑=ja:%%<丁丑_(夏)>]1", "@F", "name=[竇建徳];617-01-05^ChineseTwin?note=Chinese::大業暦"], # 丙辰 5718-2
|
646
|
-
["[五鳳=ja:%%<五鳳_(夏)>]1", "", " 618-07", "621-05-{丁卯}"] # 5805-54, 621-05-09=は丁卯
|
646
|
+
["[五鳳=ja:%%<五鳳_(夏)>]1", "", " 618-07", "621-05-{1丁卯}"] # 5805-54, 621-05-09=は丁卯
|
647
647
|
],
|
648
648
|
[self,
|
649
649
|
"period:[漢東<劉黒闥>=ja:%%<劉黒闥>]",
|
650
|
-
["[天造]1" , "@F" ,"name=[劉黒闥];622-01^ChineseTwin?note=Chinese::大業暦", "623-01-{庚辰}"] # 5942-1, 623-01-03=は庚辰
|
650
|
+
["[天造]1" , "@F" ,"name=[劉黒闥];622-01^ChineseTwin?note=Chinese::大業暦", "623-01-{1庚辰}"] # 5942-1, 623-01-03=は庚辰
|
651
651
|
],
|
652
652
|
[self,
|
653
653
|
"period:[魏<李密>=ja:%%<李密_(隋)>]",
|
@@ -659,11 +659,11 @@ module When
|
|
659
659
|
],
|
660
660
|
[self,
|
661
661
|
"period:[涼<李軌>=ja:%%<李軌>]",
|
662
|
-
["[安楽=ja:%%<安楽_(年号)>]1" , "@F" ,"name=[李軌];618-11-04^ChineseTwin?note=Chinese::大業暦", "619-05-{辛巳}"] # 乙巳 5820-28, 619-05-13=は辛巳
|
662
|
+
["[安楽=ja:%%<安楽_(年号)>]1" , "@F" ,"name=[李軌];618-11-04^ChineseTwin?note=Chinese::大業暦", "619-05-{1辛巳}"] # 乙巳 5820-28, 619-05-13=は辛巳
|
663
663
|
],
|
664
664
|
[self,
|
665
665
|
"period:[燕<高開道>=ja:%%<高開道>]",
|
666
|
-
["[始興=ja:%%<始興_(高開道)>]1" ,"@F" ,"name=[高開道];618-12^ChineseTwin?note=Chinese::大業暦", "620-10-{己酉}"] # 5833-47, 620-10-19=は己酉
|
666
|
+
["[始興=ja:%%<始興_(高開道)>]1" ,"@F" ,"name=[高開道];618-12^ChineseTwin?note=Chinese::大業暦", "620-10-{1己酉}"] # 5833-47, 620-10-19=は己酉
|
667
667
|
],
|
668
668
|
[self,
|
669
669
|
"period:[乗<高曇晟>=ja:%%<高曇晟>]",
|
@@ -754,7 +754,7 @@ module When
|
|
754
754
|
["[貞元=ja:%%<貞元_(唐)>]1" , "" , " 785-01-01"], # 丁酉
|
755
755
|
["[永貞=ja:%%<永貞_(唐)>]1" , "@A" , "name=[順宗=ja:%%<順宗_(唐)>];805-08-05"], # 辛丑
|
756
756
|
["[元和=ja:%%<元和_(唐)>]1" , "@A" , "name=[憲宗=ja:%%<憲宗_(唐)>];806-01-02"], # 丁卯 元和2年から観象暦を使用
|
757
|
-
["[長慶]1" , "@A" , "name=[穆宗=ja:%%<穆宗_(唐)>];821-01-{辛丑}"], # 辛丑 長慶2年から宣明暦を使用
|
757
|
+
["[長慶]1" , "@A" , "name=[穆宗=ja:%%<穆宗_(唐)>];821-01-{1辛丑}"], # 辛丑 長慶2年から宣明暦を使用
|
758
758
|
["[宝暦=ja:%%<宝暦_(唐)>]1" , "@A" , "name=[敬宗];825-01-07"], # 辛亥
|
759
759
|
["[大和=ja:%%<大和_(唐)>,alias:太和=ja:%%<大和_(唐)>]1" ,"@A","name=[文宗=ja:%%<文宗_(唐)>];827-02-13"], # 乙巳
|
760
760
|
["[開成=ja:%%<開成_(唐)>]1" , "" , " 836-01-01"], # 辛丑
|
@@ -94,7 +94,7 @@ module When
|
|
94
94
|
# @return [When::Coordinates::Residue] 六十干支
|
95
95
|
#
|
96
96
|
def year(date, options={})
|
97
|
-
When.
|
97
|
+
When.Resource('_co:Common::干支')[(date.most_significant_coordinate-4) % 60]
|
98
98
|
end
|
99
99
|
|
100
100
|
#
|
@@ -106,7 +106,7 @@ module When
|
|
106
106
|
# @return [When::Coordinates::Residue] 七曜
|
107
107
|
#
|
108
108
|
def week(date, options={})
|
109
|
-
When.
|
109
|
+
When.Resource('_co:Common::Week')[date.to_i % 7]
|
110
110
|
end
|
111
111
|
|
112
112
|
#
|
@@ -118,7 +118,7 @@ module When
|
|
118
118
|
# @return [When::Coordinates::Residue] 六十干支
|
119
119
|
#
|
120
120
|
def stembranch(date, options={})
|
121
|
-
When.
|
121
|
+
When.Resource('_co:Common::干支')[(date.to_i-11) % 60]
|
122
122
|
end
|
123
123
|
|
124
124
|
#
|
@@ -31,7 +31,7 @@ module When
|
|
31
31
|
['[大業暦=]597.01.01', '@CR', '597-01-01^ChineseTwin::大業暦', '619-01-01='],
|
32
32
|
['[戊寅元暦]619.01.01', '@CR', '619-01-01^ChineseTwin::戊寅元暦'],
|
33
33
|
['[平朔戊寅暦=]645.01.01','@CR','645-01-01^ChineseTwin::平朔戊寅暦'],
|
34
|
-
['[麟徳暦]
|
34
|
+
['[麟徳暦]666.01.01', '@CR', '666-01-01^ChineseTwin::麟徳暦'],
|
35
35
|
['[大衍暦]729.01.01', '@CR', '729-01-01^ChineseTwin::大衍暦'],
|
36
36
|
['[五紀暦]762.01.01', '@CR', '762-01-01^ChineseTwin::五紀暦'],
|
37
37
|
['[正元暦=]784.01.01', '@CR', '784-01-01^ChineseTwin::正元暦', '807-01-01'],
|
@@ -62,7 +62,7 @@ module When
|
|
62
62
|
['[開皇暦=]584.01.16', '@CR', '584-01-16^ChineseTwin::開皇暦(節月)', '596.12.22='],
|
63
63
|
['[大業暦=]596.12.22', '@CR', '596-12-22^ChineseTwin::大業暦(節月)'],
|
64
64
|
['[戊寅元暦]618.12.19', '@CR', '618-12-19^ChineseTwin::戊寅元暦(節月)'],
|
65
|
-
['[麟徳暦]
|
65
|
+
['[麟徳暦]666.01.09', '@CR', '666-01-09^ChineseTwin::麟徳暦(節月)'],
|
66
66
|
['[大衍暦]729.01.03', '@CR', '729-01-03^ChineseTwin::大衍暦(節月)'],
|
67
67
|
['[五紀暦]761.12.29', '@CR', '761-12-29^ChineseTwin::五紀暦(節月)'],
|
68
68
|
['[正元暦=]783.12.26', '@CR', '783-12-26^ChineseTwin::正元暦(節月)', '807-01-11'],
|
@@ -320,7 +320,7 @@ module When
|
|
320
320
|
# 'rissei' => 'B',
|
321
321
|
'method' => '#{Method:A}',
|
322
322
|
's' => [
|
323
|
-
# 消息總 盈朒積
|
323
|
+
# 消息總 盈朒積 初率b 別差c
|
324
324
|
[ 0.0, 0, +3.9546, -0.0372], # 冬至
|
325
325
|
[ -722.0, +54, +3.4091, -0.0372], # 小寒
|
326
326
|
[-1340.0, +100, +2.8636, -0.0372], # 大寒
|
@@ -398,7 +398,7 @@ module When
|
|
398
398
|
'anomalistic_month_length' => '6701279/243200', # 27.0 +(1685.0+79.0/80)/3040,
|
399
399
|
# 'rissei' => 'C',
|
400
400
|
's' => [
|
401
|
-
# 先後數 朓朒積
|
401
|
+
# 先後數 朓朒積 初率b 別差c
|
402
402
|
[ 0.0, 0, +13.4524, -0.1886], # 冬至
|
403
403
|
[-2353.0, +176, +10.5564, -0.1634], # 小寒
|
404
404
|
[-4198.0, +314, +8.0408, -0.1446], # 大寒
|
@@ -476,7 +476,7 @@ module When
|
|
476
476
|
'anomalistic_month_length' => '1366156/49580', # 27.0 + (743.0+5.0/37)/1340,
|
477
477
|
# 'rissei' => 'C',
|
478
478
|
's' => [
|
479
|
-
# 先後數 朓朒積
|
479
|
+
# 先後數 朓朒積 初率b 別差c
|
480
480
|
[ 0.0, 0, +5.9668, -0.0843], # 冬至
|
481
481
|
[-1037.0, +78, +4.6652, -0.0721], # 小寒
|
482
482
|
[-1850.0, +139, +3.5656, -0.0653], # 大寒
|
@@ -633,7 +633,7 @@ module When
|
|
633
633
|
'anomalistic_month_length' => '23145819/840000', # 27.0 + 4658.19 / 8400,
|
634
634
|
# 'rissei' => 'C',
|
635
635
|
's' => [
|
636
|
-
# 先後數 朓朒数
|
636
|
+
# 先後數 朓朒数 初率b 別差c
|
637
637
|
[ 0.0, 0, +33.4511, -0.3695], # 冬至
|
638
638
|
[ -6000.0, +449, +28.0389, -0.3606], # 小寒
|
639
639
|
[-11000.0, +823, +22.6998, -0.3519], # 大寒
|
@@ -78,7 +78,7 @@ module When
|
|
78
78
|
#
|
79
79
|
def _new_month_(m)
|
80
80
|
jdn = (@formula[-1].cn_to_time(m + @cycle_offset) + 0.5 +
|
81
|
-
@location.long / (
|
81
|
+
@location.long / (@location.degree * 360)).floor - 1
|
82
82
|
jdn += 1 while @formula[-1].moon_visibility(jdn) < 0
|
83
83
|
return jdn
|
84
84
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
=begin
|
3
|
-
Copyright (C) 2011-
|
3
|
+
Copyright (C) 2011-2016 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
|
@@ -109,7 +109,7 @@ module When
|
|
109
109
|
"[昭和の日, Shōwa Day ]",
|
110
110
|
"[憲法記念日, Constitution Memorial Day ]",
|
111
111
|
"[こどもの日, Children's Day (Japan) ]",
|
112
|
-
"[七夕節句=ja
|
112
|
+
"[七夕節句=ja:%%<七夕>, Qixi Festival ]",
|
113
113
|
"[お盆, Bon Festival ]",
|
114
114
|
"[海の日, Marine Day ]",
|
115
115
|
"[山の日, Mountain Day= ]",
|
@@ -127,12 +127,12 @@ module When
|
|
127
127
|
"[大饗第1日, Enthronement of the Japanese Emperor ]",
|
128
128
|
"[新嘗祭, Labor Thanksgiving Day ]",
|
129
129
|
"[勤労感謝の日, Labor Thanksgiving Day ]",
|
130
|
-
"[振替休日,
|
130
|
+
"[振替休日, Substitute holiday ]",
|
131
131
|
"[国民の休日, National Day Off= ]",
|
132
132
|
"[即位の礼, Enthronement of the Japanese Emperor ]",
|
133
133
|
"[即位の礼正殿の儀, Enthronement of the Japanese Emperor ]",
|
134
134
|
"[神武天皇祭, EmperorJimmu's Death anniversary= ]",
|
135
|
-
"[孝明天皇祭=ja:%%<先帝祭>, Emperor Kōmei's
|
135
|
+
"[孝明天皇祭=ja:%%<先帝祭>, Emperor Kōmei's Death anniversary= ]",
|
136
136
|
"[明治天皇祭=ja:%%<先帝祭>, Emperor Meiji's Death anniversary= ]",
|
137
137
|
"[大正天皇祭=ja:%%<先帝祭>, Emperor Taishō's Death anniversary= ]",
|
138
138
|
"[神武天皇即位日=ja:%%<紀元節>, National Foundation Day ]",
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
=begin
|
3
|
-
Copyright (C) 2014 Takashi SUGA
|
3
|
+
Copyright (C) 2014-2016 Takashi SUGA
|
4
4
|
|
5
5
|
You may use and/or modify this file according to the license
|
6
6
|
described in the LICENSE.txt file included in this archive.
|
@@ -1178,7 +1178,7 @@ module When::CalendarNote::Japanese::Eclipse
|
|
1178
1178
|
|
1179
1179
|
# 日月食の概要を文字列化する
|
1180
1180
|
#
|
1181
|
-
# @param [Array<String, Numeric, Array>] 食の情報
|
1181
|
+
# @param [Array<String, Numeric, Array>] info 食の情報
|
1182
1182
|
#
|
1183
1183
|
# [ String - 食の種類 'T' 皆既食, 'A' 金環食, 'P' 部分食, 'B' 帯食]
|
1184
1184
|
# [ Numeric - 最大食分 ]
|
@@ -0,0 +1,93 @@
|
|
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
|
6
|
+
described in the LICENSE.txt file included in this archive.
|
7
|
+
=end
|
8
|
+
|
9
|
+
module When::Coordinates
|
10
|
+
|
11
|
+
t1 = LocationTable[1]
|
12
|
+
t2 = LocationTable[2]
|
13
|
+
t3 = LocationTable[3]
|
14
|
+
t4 = LocationTable[4]
|
15
|
+
co = (0..2).to_a
|
16
|
+
|
17
|
+
# 位置参照情報ダウンロードサービス「全ての大字・町丁目レベル」( http://nlftp.mlit.go.jp/isj/ )を配置してください
|
18
|
+
geolocation_data = When::Parts::Resource.root_dir + '/data/geolocation/japanese/*.csv'
|
19
|
+
|
20
|
+
#
|
21
|
+
# はしご高など UTF-8 への変換に失敗するコードを含む地名は登録しない
|
22
|
+
#
|
23
|
+
# @private
|
24
|
+
def self.utf_gets(io)
|
25
|
+
error_occurred = false
|
26
|
+
line = nil
|
27
|
+
loop do
|
28
|
+
error = nil
|
29
|
+
begin
|
30
|
+
line = io.gets
|
31
|
+
rescue Encoding::UndefinedConversionError => error
|
32
|
+
error_occurred = true
|
33
|
+
end
|
34
|
+
unless error
|
35
|
+
return error_occurred ? utf_gets(io) : line
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
Dir.glob(geolocation_data).each do |path|
|
41
|
+
open(path,'r:SHIFT_JIS') do |io|
|
42
|
+
h = {}
|
43
|
+
lines = ''
|
44
|
+
while (line = utf_gets(io))
|
45
|
+
lines.concat(line)
|
46
|
+
end
|
47
|
+
CSV.parse(lines) do |r|
|
48
|
+
if h.empty?
|
49
|
+
h = Hash[*(0...r.size).to_a.map {|i| [r[i],i]}.flatten]
|
50
|
+
else
|
51
|
+
location = [r[h['経度']].to_f, r[h['緯度']].to_f, 0]
|
52
|
+
wide_name = r[h['都道府県名']]
|
53
|
+
middle_name = wide_name + r[h['市区町村名']]
|
54
|
+
fine_name = r[h['大字町丁目名']]
|
55
|
+
full_name = middle_name + fine_name
|
56
|
+
t1[full_name] = location
|
57
|
+
t2[middle_name][fine_name] = location
|
58
|
+
t3[wide_name][r[h['市区町村名']]][fine_name] = location
|
59
|
+
case r[h['市区町村名']]
|
60
|
+
when /\A((.+)市)(.+区)\z/
|
61
|
+
t1[$1 + $3 + fine_name] = location
|
62
|
+
t2[$1 + $3] [fine_name] = location
|
63
|
+
t3[$1] [$3] [fine_name] = location
|
64
|
+
t3[$2] [$3] [fine_name] = location
|
65
|
+
when /\A((.+)市)\z/
|
66
|
+
t4[$1] << middle_name
|
67
|
+
t4[$2] << middle_name
|
68
|
+
t4[$1 + fine_name] << full_name
|
69
|
+
when /\A.+郡(.+[町村])\z/
|
70
|
+
t4[wide_name + $1] << middle_name
|
71
|
+
t4[wide_name + $1 + fine_name] << full_name
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
t3.keys.each do |p|
|
79
|
+
t3[p].keys.each do |c|
|
80
|
+
locations = t3[p][c].values.transpose
|
81
|
+
t3[p][c][:SWB] = t2[p+c][:SWB] = co.map {|i| locations[i].min}
|
82
|
+
t3[p][c][:NET] = t2[p+c][:NET] = co.map {|i| locations[i].max}
|
83
|
+
end
|
84
|
+
swb = t3[p].keys.map {|c| t3[p][c][:SWB]}.transpose
|
85
|
+
net = t3[p].keys.map {|c| t3[p][c][:NET]}.transpose
|
86
|
+
t3[p][:SWB] = co.map {|i| swb[i].min}
|
87
|
+
t3[p][:NET] = co.map {|i| net[i].max}
|
88
|
+
end
|
89
|
+
|
90
|
+
t4.each_pair do |key, value|
|
91
|
+
value.uniq!
|
92
|
+
end
|
93
|
+
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
=begin
|
3
|
-
Copyright (C) 2012-
|
3
|
+
Copyright (C) 2012-2016 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
|
@@ -32,7 +32,19 @@ class When::CalendarNote
|
|
32
32
|
# 日本暦注の要素
|
33
33
|
#
|
34
34
|
# @private
|
35
|
-
class Note < When::
|
35
|
+
class Note < When::BasicTypes::Object
|
36
|
+
|
37
|
+
include When::CalendarNote::NoteElement
|
38
|
+
|
39
|
+
#
|
40
|
+
# _m17n_form のための要素生成
|
41
|
+
#
|
42
|
+
# @param [Hash] options 下記のとおり
|
43
|
+
# @option options [Symbol] :method :to_m17n なら label を返す、その他は When::Parts::Resource#to_h 参照
|
44
|
+
#
|
45
|
+
def _to_hash_value(options={})
|
46
|
+
options[:method] == :to_m17n ? label : super
|
47
|
+
end
|
36
48
|
end
|
37
49
|
|
38
50
|
#
|
@@ -76,7 +88,7 @@ class When::CalendarNote
|
|
76
88
|
[Note, 0x0003, "label:[天道=]", 'position:暦序', 'suffix:-'], # 14: 支
|
77
89
|
[Note, 0x0003, "label:[人道=]", 'position:暦序', 'suffix:-'], # 15: 支
|
78
90
|
[Note, 0x3FFC, "label:[歳次=]", 'position:暦序', 'suffix:-'], # 16: 支
|
79
|
-
[Note,
|
91
|
+
[Note, 0xFC00, "label:[金神]", 'position:仮名暦', 'suffix:在'], # 17: 干
|
80
92
|
[Note, 0xFFFF, "label:[大小]", 'position:暦序'] # 18: 朔閏表
|
81
93
|
],
|
82
94
|
|
@@ -136,10 +148,10 @@ class When::CalendarNote
|
|
136
148
|
[Note, 0x3FFC, "label:[六十卦=]", 'position:時候'], # 12: 太陽黄経
|
137
149
|
[Note, 0xF800, "label:[節分]", 'position:雑節'], # 13: 立春からの日数
|
138
150
|
[Note, 0xF800, "label:[初午]", 'position:雑節'], # 14: 支 節月 or 暦月
|
139
|
-
[Note,
|
151
|
+
[Note, 0xFC00, "label:[八十八夜]", 'position:雑節'], # 15: 立春からの日数
|
140
152
|
[Note, 0xF800, "label:[入梅]", 'position:雑節'], # 16: 干 太陽黄経
|
141
153
|
[Note, 0xF800, "label:[半夏生]", 'position:雑節'], # 17: 干 太陽黄経
|
142
|
-
[Note,
|
154
|
+
[Note, 0xFC00, "label:[二百十日]", 'position:雑節'], # 18: 立春からの日数
|
143
155
|
[Note, 0xF800, "label:[二百廿日=ja:%%<二百二十日>]", 'position:雑節'], # 19: 立春からの日数
|
144
156
|
|
145
157
|
[Note, 0x3FFC, "label:[大禍=ja:%%<暦注下段>#%.<大禍日>]",
|
@@ -256,7 +268,7 @@ class When::CalendarNote
|
|
256
268
|
[Note, 0xC000, "label:[己巳]", 'position:仮名暦'], # 90: 干支
|
257
269
|
[Note, 0xF800, "label:[庚申待]", 'position:仮名暦'], # 91: 干支
|
258
270
|
[Note, 0xF800, "label:[犯土]", 'position:仮名暦'], # 92: 干支
|
259
|
-
[Note,
|
271
|
+
[Note, 0xFC00, "label:[十方暮]", 'position:仮名暦'], # 93: 干支
|
260
272
|
[Note, 0xF800, "label:[一粒万倍=ja:%%<一粒万倍日>]",
|
261
273
|
'position:仮名暦', 'suffix:日'], # 94: 支 節月
|
262
274
|
[Note, 0x3800, "label:[天福=]", 'position:仮名暦'], # 95: 支 節月
|
@@ -265,7 +277,7 @@ class When::CalendarNote
|
|
265
277
|
[Note, 0xB800, "label:[三隣亡]", 'position:仮名暦'], # 98: 支 節月
|
266
278
|
[Note, 0xF800, "label:[不成就=ja:%%<不成就日>]",
|
267
279
|
'position:仮名暦', 'suffix:日'], # 99: 暦月 暦日/晦日
|
268
|
-
[Note,
|
280
|
+
[Note, 0x3C00, "label:[鬼宿]", 'position:仮名暦'], #100: 廿八宿
|
269
281
|
[Note, 0x3800, "label:[金性=]", 'position:仮名暦'], #101: 支 節月 支 節年
|
270
282
|
[Note, 0x3FFF, "label:[三寶吉=http://kotobank.jp/word/%%<三宝吉日>]",
|
271
283
|
'position:上段 上段 上段 上段'], #102: 干支 節月
|
@@ -526,8 +538,8 @@ class When::CalendarNote
|
|
526
538
|
patch = SolarTerms::Patch[result.to_i]
|
527
539
|
return result unless patch
|
528
540
|
num, den = parameter.kind_of?(String) ? parameter.split('/', 2) : parameter
|
529
|
-
num = (num || 0).to_f
|
530
|
-
den = (den || 360).to_f
|
541
|
+
num = (num || @num || 0).to_f
|
542
|
+
den = (den || @den || 360).to_f
|
531
543
|
diff = (num - patch[0] + 1) % den - 1
|
532
544
|
return result if diff == 0
|
533
545
|
patched = result + When::P1D * diff
|
@@ -536,6 +548,9 @@ class When::CalendarNote
|
|
536
548
|
result
|
537
549
|
end
|
538
550
|
|
551
|
+
# 二十四節気のための event_delta の別名
|
552
|
+
alias :term_delta :event_delta
|
553
|
+
|
539
554
|
# 月の位相 => 日時
|
540
555
|
#
|
541
556
|
# @param [When::TM::TemporalPosition] date 探す基準とする日時
|
@@ -576,6 +591,9 @@ class When::CalendarNote
|
|
576
591
|
result
|
577
592
|
end
|
578
593
|
|
594
|
+
# 月の位相のための event_delta の別名
|
595
|
+
alias :phase_delta :event_delta
|
596
|
+
|
579
597
|
private
|
580
598
|
|
581
599
|
# オブジェクトの正規化
|
@@ -722,7 +740,7 @@ class When::CalendarNote
|
|
722
740
|
#
|
723
741
|
# 任意の暦を日本年号付暦日に変換
|
724
742
|
#
|
725
|
-
# @param When::TM::CalDate] date 変換元日付
|
743
|
+
# @param [When::TM::CalDate] date 変換元日付
|
726
744
|
#
|
727
745
|
# @return [When::TM::CalDate] 変換結果
|
728
746
|
#
|
@@ -737,7 +755,7 @@ class When::CalendarNote
|
|
737
755
|
#
|
738
756
|
# 日本年号付暦日か?
|
739
757
|
#
|
740
|
-
# @param When::TM::CalDate] date 確認する日付
|
758
|
+
# @param [When::TM::CalDate] date 確認する日付
|
741
759
|
#
|
742
760
|
# @return [Boolean] true YES / false NO
|
743
761
|
#
|
@@ -341,7 +341,7 @@ module When::Coordinates
|
|
341
341
|
notes['天一'] ||= begin
|
342
342
|
note = Rules['天一'][@remainder]
|
343
343
|
dates.range >= 15 ? note.dup.sub!(/天上始/, '天上') :
|
344
|
-
dates.range >=
|
344
|
+
dates.range >= 10 ? note : note.dup.sub!(/始/, '')
|
345
345
|
end
|
346
346
|
notes['土公'] ||= Rules['土公'][@remainder]
|
347
347
|
notes['五墓'] ||= [4,22,28,31,37].include?(@remainder) ? '五墓' : nil
|
@@ -102,7 +102,9 @@ module When
|
|
102
102
|
'year_length' => 365.241696, # 暦元の冬至年 / 日
|
103
103
|
'anomalistic_year_shift' => 6.445, # 暦應(暦元での冬至から近日点通過までの日数)
|
104
104
|
'lunation_shift' => 2.779 - 0.015, # 閏應(暦元前経朔から暦元天正冬至までの日数)
|
105
|
-
'anomalistic_month_shift' => 22.72 - 0.015
|
105
|
+
'anomalistic_month_shift' => 22.72 - 0.015, # 転應(暦元前近/遠地点通過から暦元天正冬至までの日数)
|
106
|
+
'anomaly_method' => '#{Method:a}', # (経朔-定朔)の計算方法(a:差分, b:微分, c:幾何学的補正)
|
107
|
+
'solar_weight' => '#{Weight:1}', # (経朔-定朔)の計算で用いる実行差での太陽盈縮の重み(0:非考慮,1:考慮)
|
106
108
|
})]
|
107
109
|
}
|
108
110
|
}
|
@@ -118,7 +120,9 @@ module When
|
|
118
120
|
'year_length' => 365.241696, # 暦元の冬至年 / 日
|
119
121
|
'anomalistic_year_shift' => 6.445, # 暦應(暦元での冬至から近日点通過までの日数)
|
120
122
|
'lunation_shift' => 2.779, # 閏應(暦元前経朔から暦元天正冬至までの日数)
|
121
|
-
'anomalistic_month_shift' => 22.72
|
123
|
+
'anomalistic_month_shift' => 22.72, # 転應(暦元前近/遠地点通過から暦元天正冬至までの日数)
|
124
|
+
'anomaly_method' => '#{Method:a}', # (経朔-定朔)の計算方法(a:差分, b:微分, c:幾何学的補正)
|
125
|
+
'solar_weight' => '#{Weight:1}', # (経朔-定朔)の計算で用いる実行差での太陽盈縮の重み(0:非考慮,1:考慮)
|
122
126
|
})]
|
123
127
|
}
|
124
128
|
}
|
@@ -134,7 +138,9 @@ module When
|
|
134
138
|
'year_length' => 365.241696, # 暦元の冬至年 / 日
|
135
139
|
'anomalistic_year_shift' => 6.445, # 暦應(暦元での冬至から近日点通過までの日数)
|
136
140
|
'lunation_shift' => 2.779 + 0.2138, # 閏應(暦元前経朔から暦元天正冬至までの日数)
|
137
|
-
'anomalistic_month_shift' => 22.72 + 0.2138
|
141
|
+
'anomalistic_month_shift' => 22.72 + 0.2138, # 転應(暦元前近/遠地点通過から暦元天正冬至までの日数)
|
142
|
+
'anomaly_method' => '#{Method:a}', # (経朔-定朔)の計算方法(a:差分, b:微分, c:幾何学的補正)
|
143
|
+
'solar_weight' => '#{Weight:1}', # (経朔-定朔)の計算で用いる実行差での太陽盈縮の重み(0:非考慮,1:考慮)
|
138
144
|
})]
|
139
145
|
}
|
140
146
|
}
|
@@ -150,7 +156,9 @@ module When
|
|
150
156
|
'year_length' => 365.241696, # 暦元の冬至年 / 日
|
151
157
|
'anomalistic_year_shift' => 6.445, # 暦應(暦元での冬至から近日点通過までの日数)
|
152
158
|
'lunation_shift' => 2.779 - 0.0677, # 閏應(暦元前経朔から暦元天正冬至までの日数)
|
153
|
-
'anomalistic_month_shift' => 22.72 - 0.0677
|
159
|
+
'anomalistic_month_shift' => 22.72 - 0.0677, # 転應(暦元前近/遠地点通過から暦元天正冬至までの日数)
|
160
|
+
'anomaly_method' => '#{Method:a}', # (経朔-定朔)の計算方法(a:差分, b:微分, c:幾何学的補正)
|
161
|
+
'solar_weight' => '#{Weight:1}', # (経朔-定朔)の計算で用いる実行差での太陽盈縮の重み(0:非考慮,1:考慮)
|
154
162
|
})]
|
155
163
|
}
|
156
164
|
}
|
@@ -167,7 +175,9 @@ module When
|
|
167
175
|
'anomalistic_year_shift' => 6.455, # 暦應(暦元での冬至から近日点通過までの日数)
|
168
176
|
'lunation_shift' => 25.654, # 閏應(暦元前経朔から暦元天正冬至までの日数)
|
169
177
|
'anomalistic_month_shift' => 18.88, # 転應(暦元前近/遠地点通過から暦元天正冬至までの日数)
|
170
|
-
's' => ChineseSolar.change_unit(365.241556 / 365.241696, _japanese_common['s'])
|
178
|
+
's' => ChineseSolar.change_unit(365.241556 / 365.241696, _japanese_common['s']),
|
179
|
+
'anomaly_method' => '#{Method:a}', # (経朔-定朔)の計算方法(a:差分, b:微分, c:幾何学的補正)
|
180
|
+
'solar_weight' => '#{Weight:1}', # (経朔-定朔)の計算で用いる実行差での太陽盈縮の重み(0:非考慮,1:考慮)
|
171
181
|
})]
|
172
182
|
}
|
173
183
|
}
|
@@ -184,7 +194,9 @@ module When
|
|
184
194
|
'anomalistic_year_shift' => 7.42, # 暦應(暦元での冬至から近日点通過までの日数)
|
185
195
|
'lunation_shift' => 25.82, # 閏應(暦元前経朔から暦元天正冬至までの日数)
|
186
196
|
'anomalistic_month_shift' => 19.307, # 転應(暦元前近/遠地点通過から暦元天正冬至までの日数)
|
187
|
-
's' => ChineseSolar.change_unit(365.241626 / 365.241696, _japanese_common['s'])
|
197
|
+
's' => ChineseSolar.change_unit(365.241626 / 365.241696, _japanese_common['s']),
|
198
|
+
'anomaly_method' => '#{Method:a}', # (経朔-定朔)の計算方法(a:差分, b:微分, c:幾何学的補正)
|
199
|
+
'solar_weight' => '#{Weight:1}', # (経朔-定朔)の計算で用いる実行差での太陽盈縮の重み(0:非考慮,1:考慮)
|
188
200
|
})]
|
189
201
|
}
|
190
202
|
}
|