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.
Files changed (67) hide show
  1. checksums.yaml +4 -4
  2. data/lib/when_exe.rb +89 -3
  3. data/lib/when_exe/basictypes.rb +37 -7
  4. data/lib/when_exe/calendarnote.rb +18 -13
  5. data/lib/when_exe/calendartypes.rb +3 -9
  6. data/lib/when_exe/coordinates.rb +23 -373
  7. data/lib/when_exe/ephemeris.rb +7 -7
  8. data/lib/when_exe/ephemeris/notes.rb +0 -14
  9. data/lib/when_exe/events.rb +1851 -0
  10. data/lib/when_exe/icalendar.rb +121 -4
  11. data/lib/when_exe/linkeddata.rb +29 -18
  12. data/lib/when_exe/locales/akt.rb +63 -0
  13. data/lib/when_exe/locales/locale.rb +60 -11
  14. data/lib/when_exe/mini_application.rb +14 -8
  15. data/lib/when_exe/namespace.rb +42 -0
  16. data/lib/when_exe/parts/enumerator.rb +13 -2
  17. data/lib/when_exe/parts/geometric_complex.rb +51 -1
  18. data/lib/when_exe/parts/method_cash.rb +15 -10
  19. data/lib/when_exe/parts/resource.rb +47 -29
  20. data/lib/when_exe/region/chinese.rb +4 -3
  21. data/lib/when_exe/region/chinese/calendars.rb +4 -4
  22. data/lib/when_exe/region/chinese/epochs.rb +6 -6
  23. data/lib/when_exe/region/chinese/notes.rb +3 -3
  24. data/lib/when_exe/region/chinese/twins.rb +6 -6
  25. data/lib/when_exe/region/islamic.rb +1 -1
  26. data/lib/when_exe/region/japanese.rb +4 -4
  27. data/lib/when_exe/region/japanese/eclipses.rb +2 -2
  28. data/lib/when_exe/region/japanese/location.rb +93 -0
  29. data/lib/when_exe/region/japanese/notes.rb +29 -11
  30. data/lib/when_exe/region/japanese/residues.rb +1 -1
  31. data/lib/when_exe/region/japanese/twins.rb +18 -6
  32. data/lib/when_exe/region/location.rb +40 -0
  33. data/lib/when_exe/region/martian.rb +1 -1
  34. data/lib/when_exe/region/ryukyu.rb +1 -1
  35. data/lib/when_exe/spatial.rb +611 -0
  36. data/lib/when_exe/timestandard.rb +3 -3
  37. data/lib/when_exe/tmobjects.rb +32 -0
  38. data/lib/when_exe/tmposition.rb +211 -1318
  39. data/lib/when_exe/tmptypes.rb +1265 -0
  40. data/lib/when_exe/tmreference.rb +35 -0
  41. data/lib/when_exe/version.rb +3 -3
  42. data/test/events/example-datasets +7 -0
  43. data/test/events/history-dataset.csv +22 -0
  44. data/test/events/japanese-holiday-index.csv +28 -0
  45. data/test/events/japanese-holiday.csv +77 -0
  46. data/test/events/japanese-holiday.ttl +778 -0
  47. data/test/events/make_events_ttl.rb +18 -0
  48. data/test/events/mori_wikichoshi.csv +14 -0
  49. data/test/events/ndl_koyomi.csv +220 -0
  50. data/test/events/ndl_koyomi_index.csv +44 -0
  51. data/test/events/primeminister-dataset.csv +19 -0
  52. data/test/events/shogun-dataset.csv +22 -0
  53. data/test/events/test-history-dataset-edge-sparql.csv +26 -0
  54. data/test/events/test-history-dataset-edge.csv +27 -0
  55. data/test/events/test-history-dataset-sparql.csv +22 -0
  56. data/test/events/test-history-dataset.csv +23 -0
  57. data/test/events/test-history-events-edge.ttl +89 -0
  58. data/test/events/test-history-events.csv +6 -0
  59. data/test/examples/Terms.m17n +1 -1
  60. data/test/test.rb +6 -0
  61. data/test/test/coordinates.rb +2 -2
  62. data/test/test/events.rb +32 -0
  63. data/test/test/region/japanese.rb +20 -0
  64. data/test/test/region/m17n.rb +2 -2
  65. data/test/test/region/mayan.rb +6 -6
  66. data/test/test/tmposition.rb +63 -1
  67. 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.Residue('干支')[(date.most_significant_coordinate-4) % 60]
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.Residue('Week')[date.to_i % 7]
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.Residue('干支')[(date.to_i-11) % 60]
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
- ['[麟徳暦]665.01.01', '@CR', '665-01-01^ChineseTwin::麟徳暦'],
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
- ['[麟徳暦]664.12.21', '@CR', '664-12-21^ChineseTwin::麟徳暦(節月)'],
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
- # 消息總 盈朒積 立成b 立成c
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
- # 先後數 朓朒積 立成b 立成c
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
- # 先後數 朓朒積 立成b 立成c
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
- # 先後數 朓朒数 立成b 立成c
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 / (When::Coordinates::Spatial::DEGREE * 360)).floor - 1
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-2015 Takashi SUGA
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:%%<七夕> Qixi Festival ]",
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
- "[振替休日, Transfer Holiday= ]",
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 Birth holiday= ]",
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-2015 Takashi SUGA
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::CalendarNote::NoteElement
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, 0xF800, "label:[金神]", 'position:仮名暦', 'suffix:在'], # 17: 干
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, 0xF800, "label:[八十八夜]", 'position:雑節'], # 15: 立春からの日数
151
+ [Note, 0xFC00, "label:[八十八夜]", 'position:雑節'], # 15: 立春からの日数
140
152
  [Note, 0xF800, "label:[入梅]", 'position:雑節'], # 16: 干 太陽黄経
141
153
  [Note, 0xF800, "label:[半夏生]", 'position:雑節'], # 17: 干 太陽黄経
142
- [Note, 0xF800, "label:[二百十日]", 'position:雑節'], # 18: 立春からの日数
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, 0xF800, "label:[十方暮]", 'position:仮名暦'], # 93: 干支
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, 0x3800, "label:[鬼宿]", 'position:仮名暦'], #100: 廿八宿
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 >= 11 ? note : note.dup.sub!(/始/, '')
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
  }