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.
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
  }