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.
- data/bin/irb.rc +1 -0
- data/bin/locales.rb +8 -6
- data/bin/when.rb +1 -1
- data/lib/when_exe.rb +231 -146
- data/lib/when_exe/basictypes.rb +108 -18
- data/lib/when_exe/calendarnote.rb +263 -116
- data/lib/when_exe/calendartypes.rb +413 -22
- data/lib/when_exe/coordinates.rb +58 -36
- data/lib/when_exe/core/compatibility.rb +8 -6
- data/lib/when_exe/core/extension.rb +40 -15
- data/lib/when_exe/ephemeris.rb +20 -19
- data/lib/when_exe/{region → ephemeris}/moon.rb +4 -4
- data/lib/when_exe/{region/ephemeric_notes.rb → ephemeris/notes.rb} +25 -6
- data/lib/when_exe/{region → ephemeris}/planets.rb +0 -0
- data/lib/when_exe/{region → ephemeris}/sun.rb +7 -3
- data/lib/when_exe/{region → ephemeris}/v50.rb +0 -0
- data/lib/when_exe/googlecalendar.rb +2 -2
- data/lib/when_exe/icalendar.rb +3 -3
- data/lib/when_exe/inspect.rb +130 -70
- data/lib/when_exe/locales/af.rb +2 -2
- data/lib/when_exe/locales/akt.rb +176 -0
- data/lib/when_exe/locales/ar.rb +2 -2
- data/lib/when_exe/locales/{locales.rb → autoload.rb} +6 -2
- data/lib/when_exe/locales/az.rb +2 -2
- data/lib/when_exe/locales/bg.rb +2 -2
- data/lib/when_exe/locales/bn.rb +2 -2
- data/lib/when_exe/locales/bs.rb +2 -2
- data/lib/when_exe/locales/ca.rb +2 -2
- data/lib/when_exe/locales/cs.rb +2 -2
- data/lib/when_exe/locales/cy.rb +2 -2
- data/lib/when_exe/locales/da.rb +2 -2
- data/lib/when_exe/locales/de.rb +2 -2
- data/lib/when_exe/locales/de_AT.rb +2 -2
- data/lib/when_exe/locales/de_CH.rb +2 -2
- data/lib/when_exe/locales/el.rb +2 -2
- data/lib/when_exe/locales/en.rb +2 -2
- data/lib/when_exe/locales/en_AU.rb +2 -2
- data/lib/when_exe/locales/en_CA.rb +2 -2
- data/lib/when_exe/locales/en_GB.rb +2 -2
- data/lib/when_exe/locales/en_IE.rb +2 -2
- data/lib/when_exe/locales/en_IN.rb +3 -3
- data/lib/when_exe/locales/en_NZ.rb +2 -2
- data/lib/when_exe/locales/en_US.rb +2 -2
- data/lib/when_exe/locales/en_ZA.rb +88 -0
- data/lib/when_exe/locales/encoding_conversion.rb +126 -0
- data/lib/when_exe/locales/eo.rb +2 -2
- data/lib/when_exe/locales/es.rb +2 -2
- data/lib/when_exe/locales/es_419.rb +2 -2
- data/lib/when_exe/locales/es_AR.rb +2 -2
- data/lib/when_exe/locales/es_CL.rb +2 -2
- data/lib/when_exe/locales/es_CO.rb +2 -2
- data/lib/when_exe/locales/es_CR.rb +2 -2
- data/lib/when_exe/locales/es_EC.rb +2 -2
- data/lib/when_exe/locales/es_MX.rb +2 -2
- data/lib/when_exe/locales/es_PA.rb +2 -2
- data/lib/when_exe/locales/es_PE.rb +2 -2
- data/lib/when_exe/locales/es_US.rb +84 -0
- data/lib/when_exe/locales/es_VE.rb +2 -2
- data/lib/when_exe/locales/et.rb +2 -2
- data/lib/when_exe/locales/eu.rb +2 -2
- data/lib/when_exe/locales/fa.rb +2 -2
- data/lib/when_exe/locales/fi.rb +3 -3
- data/lib/when_exe/locales/fr.rb +2 -2
- data/lib/when_exe/locales/fr_CA.rb +2 -2
- data/lib/when_exe/locales/fr_CH.rb +2 -2
- data/lib/when_exe/locales/gl.rb +2 -2
- data/lib/when_exe/locales/he.rb +3 -3
- data/lib/when_exe/locales/hi.rb +2 -2
- data/lib/when_exe/locales/hi_IN.rb +2 -2
- data/lib/when_exe/locales/hr.rb +2 -2
- data/lib/when_exe/locales/hu.rb +6 -5
- data/lib/when_exe/locales/iast.rb +90 -0
- data/lib/when_exe/locales/id.rb +2 -2
- data/lib/when_exe/locales/is.rb +2 -2
- data/lib/when_exe/locales/it.rb +2 -2
- data/lib/when_exe/locales/it_CH.rb +2 -2
- data/lib/when_exe/locales/ja.rb +2 -2
- data/lib/when_exe/locales/kn.rb +2 -2
- data/lib/when_exe/locales/ko.rb +2 -2
- data/lib/when_exe/locales/links.rb +3 -3
- data/lib/when_exe/locales/lo.rb +2 -2
- data/lib/when_exe/{parts → locales}/locale.rb +77 -49
- data/lib/when_exe/locales/lt.rb +6 -2
- data/lib/when_exe/locales/lv.rb +2 -2
- data/lib/when_exe/locales/mk.rb +2 -2
- data/lib/when_exe/locales/mn.rb +2 -2
- data/lib/when_exe/locales/ms.rb +2 -2
- data/lib/when_exe/locales/nb.rb +2 -2
- data/lib/when_exe/locales/ne.rb +2 -2
- data/lib/when_exe/locales/nl.rb +2 -2
- data/lib/when_exe/locales/nn.rb +2 -2
- data/lib/when_exe/locales/or.rb +2 -2
- data/lib/when_exe/locales/pl.rb +2 -2
- data/lib/when_exe/locales/pt.rb +2 -2
- data/lib/when_exe/locales/pt_BR.rb +2 -2
- data/lib/when_exe/locales/rm.rb +2 -2
- data/lib/when_exe/locales/ro.rb +2 -2
- data/lib/when_exe/locales/ru.rb +2 -2
- data/lib/when_exe/locales/sk.rb +2 -2
- data/lib/when_exe/locales/sl.rb +2 -2
- data/lib/when_exe/locales/sr.rb +2 -2
- data/lib/when_exe/locales/sv.rb +2 -2
- data/lib/when_exe/locales/sw.rb +2 -2
- data/lib/when_exe/locales/ta.rb +95 -0
- data/lib/when_exe/locales/th.rb +2 -2
- data/lib/when_exe/locales/tl.rb +3 -3
- data/lib/when_exe/locales/tr.rb +2 -2
- data/lib/when_exe/locales/transliteration_table.rb +62 -0
- data/lib/when_exe/locales/uk.rb +15 -15
- data/lib/when_exe/locales/ur.rb +2 -2
- data/lib/when_exe/locales/uz.rb +2 -2
- data/lib/when_exe/locales/vi.rb +2 -2
- data/lib/when_exe/locales/wo.rb +2 -2
- data/lib/when_exe/locales/zh_CN.rb +2 -2
- data/lib/when_exe/locales/zh_HK.rb +15 -15
- data/lib/when_exe/locales/zh_TW.rb +2 -2
- data/lib/when_exe/locales/zh_YUE.rb +77 -0
- data/lib/when_exe/mini_application.rb +22 -12
- data/lib/when_exe/parts/geometric_complex.rb +16 -1
- data/lib/when_exe/parts/method_cash.rb +184 -238
- data/lib/when_exe/parts/resource.rb +65 -16
- data/lib/when_exe/region/armenian.rb +56 -0
- data/lib/when_exe/region/bahai.rb +13 -13
- data/lib/when_exe/region/balinese.rb +33 -35
- data/lib/when_exe/region/chinese.rb +82 -78
- data/lib/when_exe/region/{chinese_calendar.rb → chinese/calendars.rb} +59 -40
- data/lib/when_exe/region/{chinese_epoch.rb → chinese/epochs.rb} +3 -4
- data/lib/when_exe/region/{chinese_twin.rb → chinese/twins.rb} +48 -51
- data/lib/when_exe/region/christian.rb +236 -127
- data/lib/when_exe/region/coptic.rb +9 -10
- data/lib/when_exe/region/dee.rb +48 -0
- data/lib/when_exe/region/discordian.rb +225 -0
- data/lib/when_exe/region/far_east.rb +2 -6
- data/lib/when_exe/region/french.rb +7 -17
- data/lib/when_exe/region/geologicalage.rb +0 -1
- data/lib/when_exe/region/goddess.rb +58 -0
- data/lib/when_exe/region/indian.rb +323 -231
- data/lib/when_exe/region/iranian.rb +159 -22
- data/lib/when_exe/region/islamic.rb +7 -9
- data/lib/when_exe/region/japanese.rb +14 -803
- data/lib/when_exe/region/japanese/calendars.rb +397 -0
- data/lib/when_exe/region/japanese/epochs.rb +426 -0
- data/lib/when_exe/region/{nihon_shoki.rb → japanese/nihon_shoki.rb} +0 -2
- data/lib/when_exe/region/{japanese_notes.rb → japanese/notes.rb} +179 -150
- data/lib/when_exe/region/japanese/residues.rb +1306 -0
- data/lib/when_exe/region/{japanese_twin.rb → japanese/twins.rb} +12 -15
- data/lib/when_exe/region/javanese.rb +16 -14
- data/lib/when_exe/region/jewish.rb +8 -9
- data/lib/when_exe/region/korean.rb +146 -35
- data/lib/when_exe/region/m17n.rb +8 -10
- data/lib/when_exe/region/martian.rb +44 -16
- data/lib/when_exe/region/mayan.rb +12 -10
- data/lib/when_exe/region/pope.rb +0 -1
- data/lib/when_exe/region/residue.rb +4 -5
- data/lib/when_exe/region/roman.rb +20 -24
- data/lib/when_exe/region/ryukyu.rb +3 -4
- data/lib/when_exe/region/shire.rb +97 -94
- data/lib/when_exe/region/symmetry.rb +50 -0
- data/lib/when_exe/region/thai.rb +164 -56
- data/lib/when_exe/region/tibetan.rb +86 -86
- data/lib/when_exe/region/vietnamese.rb +9 -12
- data/lib/when_exe/region/weekdate.rb +80 -0
- data/lib/when_exe/region/world.rb +65 -70
- data/lib/when_exe/region/yerm.rb +98 -0
- data/lib/when_exe/region/zoroastrian.rb +203 -0
- data/lib/when_exe/timestandard.rb +4 -4
- data/lib/when_exe/tmobjects.rb +1 -3
- data/lib/when_exe/tmposition.rb +13 -12
- data/lib/when_exe/tmreference.rb +11 -10
- data/lib/when_exe/version.rb +1 -1
- data/link_to_online_documents +3 -3
- data/test/examples/Residue.m17n +1 -1
- data/test/examples/Terms.m17n +1 -1
- data/test/test.rb +2 -1
- data/test/test/basictypes.rb +18 -2
- data/test/test/calendarnote.rb +1 -1
- data/test/test/calendartypes.rb +1 -1
- data/test/test/coordinates.rb +7 -7
- data/test/test/{region → ephemeris}/moon.rb +0 -0
- data/test/test/{region → ephemeris}/planets.rb +0 -0
- data/test/test/{region → ephemeris}/sun.rb +0 -0
- data/test/test/parts.rb +8 -13
- data/test/test/region/christian.rb +245 -0
- data/test/test/region/french.rb +16 -16
- data/test/test/region/iran.rb +34 -34
- data/test/test/region/japanese.rb +6 -4
- data/test/test/region/m17n.rb +8 -7
- data/test/test/region/mayan.rb +12 -12
- data/test/test/region/residue.rb +20 -4
- data/test/test/region/thai.rb +25 -3
- data/test/test/region/yerm.rb +146 -0
- metadata +39 -20
- data/lib/when_exe/region/japanese_residues.rb +0 -1212
- data/test/test/region/civil.rb +0 -124
@@ -9,80 +9,78 @@ module When
|
|
9
9
|
|
10
10
|
class BasicTypes::M17n
|
11
11
|
|
12
|
-
|
13
|
-
"namespace:[en=http://en.wikipedia.org/wiki/, ja=http://ja.wikipedia.org/wiki/]",
|
12
|
+
Chinese = [self, [
|
14
13
|
"locale:[=ja:, en=en:, alias]",
|
15
|
-
"names:[
|
14
|
+
"names:[Chinese=]",
|
16
15
|
"[中国太陽暦(節月)=ja:%%<二十四節気>#%.<暦月と節月>, *ChineseSolar=en:Solar_term]",
|
17
16
|
"[中国太陰太陽暦=ja:%%<中国暦>, *ChineseLuniSolar=en:Chinese_calendar]",
|
18
17
|
"[彝暦=ja:%%<イ族>, *Yi=en:Yi_people]",
|
19
18
|
|
20
19
|
[self,
|
21
20
|
"names:[月=ja:%%<月_(暦)>, *Month]",
|
22
|
-
"[正月,
|
23
|
-
"[二月,
|
24
|
-
"[三月,
|
25
|
-
"[四月,
|
26
|
-
"[五月,
|
27
|
-
"[六月,
|
28
|
-
"[七月,
|
29
|
-
"[八月,
|
30
|
-
"[九月,
|
31
|
-
"[十月,
|
32
|
-
"[十一月,
|
33
|
-
"[十二月,
|
21
|
+
"[正月, Month 1= ]",
|
22
|
+
"[二月, Month 2= ]",
|
23
|
+
"[三月, Month 3= ]",
|
24
|
+
"[四月, Month 4= ]",
|
25
|
+
"[五月, Month 5= ]",
|
26
|
+
"[六月, Month 6= ]",
|
27
|
+
"[七月, Month 7= ]",
|
28
|
+
"[八月, Month 8= ]",
|
29
|
+
"[九月, Month 9= ]",
|
30
|
+
"[十月, Month 10=]",
|
31
|
+
"[十一月, Month 11=]",
|
32
|
+
"[十二月, Month 12=]"
|
34
33
|
],
|
35
34
|
|
36
35
|
[self,
|
37
36
|
"names:[月=ja:%%<月_(暦)>, *MonthA]",
|
38
|
-
"[一月,
|
39
|
-
"[二月,
|
40
|
-
"[三月,
|
41
|
-
"[四月,
|
42
|
-
"[五月,
|
43
|
-
"[六月,
|
44
|
-
"[七月,
|
45
|
-
"[八月,
|
46
|
-
"[九月,
|
47
|
-
"[十月,
|
37
|
+
"[一月, Month 1= ]",
|
38
|
+
"[二月, Month 2= ]",
|
39
|
+
"[三月, Month 3= ]",
|
40
|
+
"[四月, Month 4= ]",
|
41
|
+
"[五月, Month 5= ]",
|
42
|
+
"[六月, Month 6= ]",
|
43
|
+
"[七月, Month 7= ]",
|
44
|
+
"[八月, Month 8= ]",
|
45
|
+
"[九月, Month 9= ]",
|
46
|
+
"[十月, Month 10=]",
|
48
47
|
"[正月, New Year Month=]",
|
49
|
-
"[臘月,
|
48
|
+
"[臘月, Month 12=]"
|
50
49
|
],
|
51
50
|
|
52
51
|
[self,
|
53
52
|
"names:[月=ja:%%<月_(暦)>, *MonthB]",
|
54
|
-
"[建寅月,
|
55
|
-
"[建卯月,
|
56
|
-
"[建辰月,
|
57
|
-
"[建巳月,
|
58
|
-
"[建午月,
|
59
|
-
"[建未月,
|
60
|
-
"[建申月,
|
61
|
-
"[建酉月,
|
62
|
-
"[建戌月,
|
63
|
-
"[建亥月,
|
64
|
-
"[建子月,
|
65
|
-
"[建丑月,
|
53
|
+
"[建寅月, Month 3= ]",
|
54
|
+
"[建卯月, Month 4= ]",
|
55
|
+
"[建辰月, Month 5= ]",
|
56
|
+
"[建巳月, Month 6= ]",
|
57
|
+
"[建午月, Month 7= ]",
|
58
|
+
"[建未月, Month 8= ]",
|
59
|
+
"[建申月, Month 9= ]",
|
60
|
+
"[建酉月, Month 10=]",
|
61
|
+
"[建戌月, Month 11=]",
|
62
|
+
"[建亥月, Month 12=]",
|
63
|
+
"[建子月, Month 1= ]",
|
64
|
+
"[建丑月, Month 2= ]"
|
66
65
|
]
|
67
66
|
]]
|
68
67
|
|
69
|
-
|
70
|
-
"namespace:[en=http://en.wikipedia.org/wiki/, ja=http://ja.wikipedia.org/wiki/]",
|
68
|
+
Yi = [self, [
|
71
69
|
"locale:[=ja:, en=en:, alias]",
|
72
|
-
"names:[
|
70
|
+
"names:[Yi=]",
|
73
71
|
|
74
72
|
[self,
|
75
73
|
"names:[月=ja:%%<月_(暦)>, *Month]",
|
76
|
-
"[木公月,
|
77
|
-
"[木母月,
|
78
|
-
"[火公月,
|
79
|
-
"[火母月,
|
80
|
-
"[土公月,
|
81
|
-
"[土母月,
|
82
|
-
"[銅公月,
|
83
|
-
"[銅母月,
|
84
|
-
"[水公月,
|
85
|
-
"[水母月,
|
74
|
+
"[木公月, Month 1= ]",
|
75
|
+
"[木母月, Month 2= ]",
|
76
|
+
"[火公月, Month 3= ]",
|
77
|
+
"[火母月, Month 4= ]",
|
78
|
+
"[土公月, Month 5= ]",
|
79
|
+
"[土母月, Month 6= ]",
|
80
|
+
"[銅公月, Month 7= ]",
|
81
|
+
"[銅母月, Month 8= ]",
|
82
|
+
"[水公月, Month 9= ]",
|
83
|
+
"[水母月, Month 10=]",
|
86
84
|
"[過年日, end of year days=]"
|
87
85
|
]
|
88
86
|
]]
|
@@ -92,7 +90,6 @@ module When
|
|
92
90
|
|
93
91
|
# Yi years
|
94
92
|
Yi = [When::BasicTypes::M17n, [
|
95
|
-
"namespace:[en=http://en.wikipedia.org/wiki/, ja=http://ja.wikipedia.org/wiki/]",
|
96
93
|
"locale:[=ja:, en=en:, alias]",
|
97
94
|
"names:[Yi]",
|
98
95
|
|
@@ -110,6 +107,10 @@ module When
|
|
110
107
|
]]
|
111
108
|
end
|
112
109
|
|
110
|
+
class CalendarNote
|
111
|
+
Yis = [['Yi::YearName'], ['_m:Calendar::Month'], ['Common::Week']]
|
112
|
+
end
|
113
|
+
|
113
114
|
module Ephemeris
|
114
115
|
|
115
116
|
#
|
@@ -139,10 +140,6 @@ module When
|
|
139
140
|
# 近点月
|
140
141
|
@anomalistic_month_length = @anomalistic_month_length.to_r
|
141
142
|
|
142
|
-
# 通法
|
143
|
-
@denominator = @year_length.denominator if @year_length.kind_of?(Rational)
|
144
|
-
@denominator = [@denominator||0, @lunation_length.denominator].max if @lunation_length.kind_of?(Rational)
|
145
|
-
|
146
143
|
# 計算式 C) のための繰り返し回数
|
147
144
|
@repeat_count ||= @method.upcase == 'C' ? 2 : 1
|
148
145
|
@repeat_count = @repeat_count.to_i
|
@@ -184,7 +181,7 @@ module When
|
|
184
181
|
end
|
185
182
|
end
|
186
183
|
|
187
|
-
#
|
184
|
+
# 戊寅元暦 立成 1次補間
|
188
185
|
def _rissei_a(k)
|
189
186
|
tv = [0,1].map {|i| _tv_s(k+i)}
|
190
187
|
[(tv[1][1]-tv[0][1]) / (tv[1][0]-tv[0][0]), 0.0]
|
@@ -615,7 +612,7 @@ module When
|
|
615
612
|
return super unless @cycle_number_1m
|
616
613
|
time = @is_dynamical ? +t : t.to_f
|
617
614
|
cn0 = time * @cycle_number_1m + @cycle_number_0m
|
618
|
-
root(cn0, time) {|cn| cn_to_time(cn)}
|
615
|
+
root(cn0, time, 0, 5) {|cn| cn_to_time(cn)}
|
619
616
|
end
|
620
617
|
|
621
618
|
# 当該日付の月の位相の変化範囲(唐代の定朔の暦法用 cn_to_time(1L) を使用する)
|
@@ -633,7 +630,10 @@ module When
|
|
633
630
|
loop do
|
634
631
|
t0 = cn_to_time( c / 60.0)
|
635
632
|
t1 = cn_to_time((c+1)/ 60.0)
|
636
|
-
|
633
|
+
d = ((t-t0) / (t1-t0)).round
|
634
|
+
if d.abs > 1
|
635
|
+
c += d
|
636
|
+
elsif t0 > t
|
637
637
|
c -= 1
|
638
638
|
elsif t1 <= t
|
639
639
|
c += 1
|
@@ -650,26 +650,31 @@ module When
|
|
650
650
|
# オブジェクトの正規化
|
651
651
|
def _normalize(args=[], options={})
|
652
652
|
super
|
653
|
+
|
654
|
+
# 通法
|
655
|
+
@denominator = @year_length.denominator if @year_length.kind_of?(Rational)
|
656
|
+
@denominator = [@denominator||0, @lunation_length.denominator].max if @lunation_length.kind_of?(Rational)
|
657
|
+
|
653
658
|
if @formula == '1L'
|
654
659
|
|
655
660
|
# 月の位相の計算
|
656
661
|
@method ||= @year_span ? 'J' : 'A'
|
657
|
-
|
662
|
+
extend self.class.const_get("Method#{@method.upcase}")
|
658
663
|
|
659
664
|
# 立成の初期化
|
660
665
|
_initialize_rissei
|
661
666
|
|
662
667
|
elsif @year_span
|
663
668
|
# 太陽黄経の計算(消長あり)
|
664
|
-
|
669
|
+
extend MethodS
|
665
670
|
@year_span = @year_span.to_i
|
666
671
|
end
|
667
672
|
|
668
673
|
if self.kind_of?(JujiMethods)
|
669
674
|
case @year_span
|
670
|
-
when 0,1;
|
671
|
-
# when 10 ;
|
672
|
-
else ;
|
675
|
+
when 0,1; extend JujiMethods::Y
|
676
|
+
# when 10 ; extend JujiMethods::D
|
677
|
+
else ; extend JujiMethods::C
|
673
678
|
end
|
674
679
|
end
|
675
680
|
end
|
@@ -734,15 +739,15 @@ module When
|
|
734
739
|
# @formula = 太陽黄経の計算に用いるEphemeris
|
735
740
|
#
|
736
741
|
def _normalize(args=[], options={})
|
737
|
-
@label ||=
|
742
|
+
@label ||= 'Chinese::ChineseSolar'
|
738
743
|
@formula ||= ['Formula']
|
739
744
|
@formula = Array(@formula)
|
740
745
|
@formula *= 2 if @formula.length == 1
|
741
746
|
@formula[0] += (@formula[0] =~ /\?/ ? '&' : '?') + 'formula=12S' if @formula[0].kind_of?(String)
|
742
747
|
@formula[1] += (@formula[1] =~ /\?/ ? '&' : '?') + 'formula=1L' if @formula[1].kind_of?(String)
|
743
|
-
@note ||= When.CalendarNote('
|
748
|
+
@note ||= When.CalendarNote('Chinese')
|
744
749
|
@indices ||= [
|
745
|
-
When
|
750
|
+
When.Index('Chinese::Month'),
|
746
751
|
When::Coordinates::DefaultDayIndex
|
747
752
|
]
|
748
753
|
super
|
@@ -787,7 +792,7 @@ module When
|
|
787
792
|
# @formula = 太陽黄経および月の位相の計算に用いるEphemeris
|
788
793
|
#
|
789
794
|
def _normalize(args=[], options={})
|
790
|
-
@label ||=
|
795
|
+
@label ||= 'Chinese::ChineseLuniSolar'
|
791
796
|
@formula ||= ['Formula']
|
792
797
|
@formula = Array(@formula)
|
793
798
|
@formula *= 2 if @formula.length == 1
|
@@ -799,10 +804,9 @@ module When
|
|
799
804
|
@intercalary_span ||= 12
|
800
805
|
@intercalary_span = @intercalary_span.to_i
|
801
806
|
@intercalary_month = (@intercalary_month.to_i - @base_month) % 12 + 1 if @intercalary_month
|
802
|
-
@note ||= When.CalendarNote('
|
807
|
+
@note ||= When.CalendarNote('Chinese')
|
803
808
|
@indices ||= [
|
804
|
-
When
|
805
|
-
:trunk=>When.Resource('_m:ChineseTerms::Month::*')}),
|
809
|
+
When.Index('Chinese::Month', {:branch=>{1=>'_m:Calendar::閏'}}),
|
806
810
|
When::Coordinates::DefaultDayIndex
|
807
811
|
]
|
808
812
|
super
|
@@ -908,7 +912,7 @@ module When
|
|
908
912
|
'origin_of_LSC' => 2397523,
|
909
913
|
'origin_of_MSC' => 1852,
|
910
914
|
'indices' => [
|
911
|
-
When
|
915
|
+
When.Index('Chinese::Month', {:unit =>12}),
|
912
916
|
When::Coordinates::DefaultDayIndex
|
913
917
|
],
|
914
918
|
'rule_table' => {
|
@@ -924,25 +928,25 @@ module When
|
|
924
928
|
'origin_of_LSC' => 2397522,
|
925
929
|
'origin_of_MSC' => 1852,
|
926
930
|
'indices' => [
|
927
|
-
When
|
928
|
-
When
|
931
|
+
When.Index('Chinese::Month', {:unit =>12}),
|
932
|
+
When.Index({:shift => 1})
|
929
933
|
],
|
930
934
|
'rule_table' => {
|
931
935
|
'T' => {'Rule' =>[366]},
|
932
936
|
366 => {'Length'=>[31,30]*6}
|
933
937
|
},
|
934
|
-
'note' => '
|
938
|
+
'note' => 'Default'
|
935
939
|
}]
|
936
940
|
|
937
941
|
#
|
938
942
|
# 彝
|
939
943
|
#
|
940
944
|
Yi = [CyclicTableBased, {
|
941
|
-
'label' =>
|
945
|
+
'label' => 'Chinese::Yi',
|
942
946
|
'origin_of_LSC' => 1721431,
|
943
947
|
'origin_of_MSC' => 1,
|
944
948
|
'indices' => [
|
945
|
-
When
|
949
|
+
When.Index('Yi::Month', {:unit =>11}),
|
946
950
|
When::Coordinates::DefaultDayIndex
|
947
951
|
],
|
948
952
|
'rule_table' => {
|
@@ -950,7 +954,7 @@ module When
|
|
950
954
|
365 => {'Length'=>[36]*10 + [5]},
|
951
955
|
366 => {'Length'=>[36]*10 + [6]}
|
952
956
|
},
|
953
|
-
'note' => '
|
957
|
+
'note' => 'Yis'
|
954
958
|
}]
|
955
959
|
end
|
956
960
|
end
|
@@ -10,29 +10,28 @@ require 'when_exe/region/chinese'
|
|
10
10
|
module When
|
11
11
|
module CalendarTypes
|
12
12
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
Coordinates::DefaultDayIndex
|
13
|
+
# @private
|
14
|
+
ChineseIndices = [
|
15
|
+
When.Index('Chinese::Month', {:branch=>{1=>'_m:Calendar::閏'}}),
|
16
|
+
When::Coordinates::DefaultDayIndex
|
17
17
|
]
|
18
18
|
|
19
19
|
_IndicesM12 = [
|
20
|
-
|
21
|
-
|
22
|
-
Coordinates::DefaultDayIndex
|
20
|
+
When.Index('Chinese::Month', {:branch=>{1=>'_m:Calendar::閏'}, :shift=>1}),
|
21
|
+
When::Coordinates::DefaultDayIndex
|
23
22
|
]
|
24
23
|
|
25
24
|
_IndicesM11 = [
|
26
|
-
|
27
|
-
|
28
|
-
Coordinates::DefaultDayIndex
|
25
|
+
When.Index('Chinese::Month', {:branch=>{1=>'_m:Calendar::閏'}, :shift=>2}),
|
26
|
+
When::Coordinates::DefaultDayIndex
|
29
27
|
]
|
30
28
|
|
31
|
-
# 秦・漢:: 顓頊暦 -221 - -162
|
29
|
+
# 秦・漢:: 顓頊暦 -221 - -162 (冬至を11月に固定) (歳首 建亥月)
|
32
30
|
# 漢:: 顓頊暦 -161 - -103 (雨水を1月に固定) (歳首 建亥月)
|
33
31
|
Chinese_221 = [PatternTableBasedLuniSolar, {
|
34
32
|
'origin_of_MSC'=>-222, 'origin_of_LSC'=>1640021, 'border'=>'0*10-01',
|
35
|
-
'
|
33
|
+
'before' => 'ChineseTwin::顓頊暦', 'after' => 'Chinese_103',
|
34
|
+
'indices'=> ChineseIndices,
|
36
35
|
'rule_table'=> %w(
|
37
36
|
AbCdEfGhIjKl ABcDeFgHiJkL aBcDeFGhIiJkL
|
38
37
|
aBcDeFgHiJKl AbCdEfGhIjKl ABcDeFgHiIjKl AbCdEFgHiJkL aBcDeFgHIiJkL
|
@@ -69,7 +68,8 @@ module When
|
|
69
68
|
# 蜀漢:: 四分暦 221 - 264
|
70
69
|
Chinese_103 = [PatternTableBasedLuniSolar, {
|
71
70
|
'origin_of_MSC'=>-103, 'origin_of_LSC'=>1683490,
|
72
|
-
'
|
71
|
+
'before' => 'Chinese_221', 'after' => 'Chinese0239',
|
72
|
+
'indices'=> ChineseIndices,
|
73
73
|
'rule_table'=> %w(
|
74
74
|
ABcdeFgHiJkL aBCdEfGhIjKl AbCdEfFGhIjKl AbCdEfGhIJkL
|
75
75
|
|
@@ -159,6 +159,7 @@ module When
|
|
159
159
|
# 新:: 太初暦 7 - 23 (歳首 建丑月)
|
160
160
|
Chinese0008 = [PatternTableBasedLuniSolar, {
|
161
161
|
'origin_of_MSC'=>7, 'origin_of_LSC'=>1723652, 'border'=>'0*12-01',
|
162
|
+
'before' => 'Chinese_103', 'after' => 'Chinese_103',
|
162
163
|
'indices'=> _IndicesM12,
|
163
164
|
'rule_table'=> %w(
|
164
165
|
aBcDeFgHiJkL aABcDeFgHiJkL aBcDeFGhIjKl AbCdEfGhIiJKl
|
@@ -172,7 +173,8 @@ module When
|
|
172
173
|
# 呉:: 乾象暦 223 - 280
|
173
174
|
Chinese0223 = [PatternTableBasedLuniSolar, {
|
174
175
|
'origin_of_MSC'=>222, 'origin_of_LSC'=>1802173,
|
175
|
-
'
|
176
|
+
'before' => 'Chinese_103', 'after' => 'Chinese0239',
|
177
|
+
'indices'=> ChineseIndices,
|
176
178
|
'rule_table'=> %w(
|
177
179
|
AbCdEfFGhIjKl aBcDeFgHiJKl AbCdEfGhIjKl ABcDdEfGhIjKl
|
178
180
|
AbCdEFgHiJkL aBcDeFgHiJKlL aBcDeFgHiJkL aBCdEfGhIjKl AbCdEFgHhIjKl
|
@@ -194,6 +196,7 @@ module When
|
|
194
196
|
# 魏:: 景初暦 237 - 239 (歳首 建丑月)
|
195
197
|
Chinese0237 = [PatternTableBasedLuniSolar, {
|
196
198
|
'origin_of_MSC'=>236, 'origin_of_LSC'=>1807282, 'border'=>'0*12-01',
|
199
|
+
'before' => 'Chinese_103', 'after' => 'Chinese0239',
|
197
200
|
'indices'=> _IndicesM12,
|
198
201
|
'rule_table'=> %w(AaBcDeFgHiJKl AbCdeFgHiJkL aBcDeFGhIjJkL aBcDeFgHiJKl)
|
199
202
|
}
|
@@ -204,7 +207,8 @@ module When
|
|
204
207
|
# 北魏:: 景初暦 386? - 451
|
205
208
|
Chinese0239 = [PatternTableBasedLuniSolar, {
|
206
209
|
'origin_of_MSC'=>239, 'origin_of_LSC'=>1808404,
|
207
|
-
'
|
210
|
+
'before' => 'Chinese0237', 'after' => 'Chinese0445',
|
211
|
+
'indices'=> ChineseIndices,
|
208
212
|
'rule_table'=> %w(
|
209
213
|
aBcDeFgHiJKl AbCdEfGhIjKl
|
210
214
|
AbCDeFfGhIjKl AbCdEFgHiJkL aBcDeFgHiJKl AbCcDeFgHiJkL aBCdEfGhIjKl
|
@@ -263,7 +267,8 @@ module When
|
|
263
267
|
# 及び後梁
|
264
268
|
Chinese0445 = [PatternTableBasedLuniSolar, {
|
265
269
|
'origin_of_MSC'=>445, 'origin_of_LSC'=>1883618,
|
266
|
-
'
|
270
|
+
'before' => 'Chinese0239', 'after' => 'Chinese0523',
|
271
|
+
'indices'=> ChineseIndices,
|
267
272
|
'rule_table'=> %w(
|
268
273
|
AbCdEeFgHiJkL
|
269
274
|
AbCdEfGhIjKl AbCDeFgHiJkL aBbCdEfGHiJkL aBcDeFgHiJkL AbCdEfGhIjJkL
|
@@ -297,14 +302,15 @@ module When
|
|
297
302
|
AbCdEfGHiJkL aBcDeFgHiJKlL aBcDeFgHiJkL aBCdEfGhIjKl AbCdEfGHiIjKl
|
298
303
|
AbCdEfGhIJkL aBcDeFgHiJkL aBCdEeFgHiJkL aBcDeFGhIjKl AbCdEfGhIJkL
|
299
304
|
aBbCdEfGhIjKl ABcDeFgHiJkL aBcDeFGhIjKkL aBcDeFgHIjKl AbCdEfGhIjKl
|
300
|
-
ABcDeFgGhIjKl AbCdEFgHiJkL aBcDeFgHIjKl
|
305
|
+
ABcDeFgGhIjKl AbCdEFgHiJkL aBcDeFgHIjKl AbCcDeFgHiJkL )
|
301
306
|
}
|
302
307
|
]
|
303
308
|
|
304
309
|
# 後秦:: 三紀暦 384 - 417
|
305
310
|
Chinese0384 = [PatternTableBasedLuniSolar, {
|
306
311
|
'origin_of_MSC'=>384, 'origin_of_LSC'=>1861352,
|
307
|
-
'
|
312
|
+
'before' => 'Chinese0239', 'after' => 'Chinese0239',
|
313
|
+
'indices'=> ChineseIndices,
|
308
314
|
'rule_table'=> %w(
|
309
315
|
AbCdEfGhIjKl AbCDeEfGhIjKl
|
310
316
|
AbCdEfGHiJkL aBcDeFgHiJkL AaBcDeFgHiJkL aBCdEfGhIjKl AbCdEfGHiJjKl
|
@@ -322,7 +328,8 @@ module When
|
|
322
328
|
# 北魏:: 玄始暦 452 - 522
|
323
329
|
Chinese0412 = [PatternTableBasedLuniSolar, {
|
324
330
|
'origin_of_MSC'=>412, 'origin_of_LSC'=>1871570,
|
325
|
-
'
|
331
|
+
'before' => 'Chinese0239', 'after' => 'Chinese0523',
|
332
|
+
'indices'=> ChineseIndices,
|
326
333
|
'rule_table'=> %w(
|
327
334
|
aBcDeFgHhIjKL aBcDeFgHiJkL aBcDEfGhIjKl AbCdEeFgHIjKl
|
328
335
|
AbCdEfGhIjKL aBcDeFgHiJkL aBbCDeFgHiJkL aBcDeFgHIjKl AbCdEfGhIjKKl
|
@@ -356,7 +363,8 @@ module When
|
|
356
363
|
# 北斉:: 天保暦 551 - 577
|
357
364
|
Chinese0540 = [PatternTableBasedLuniSolar, {
|
358
365
|
'origin_of_MSC'=>540, 'origin_of_LSC'=>1918317,
|
359
|
-
'
|
366
|
+
'before' => 'Chinese0523', 'after' => 'Chinese0523',
|
367
|
+
'indices'=> ChineseIndices,
|
360
368
|
'rule_table'=> %w(
|
361
369
|
aBcDeEfGhIjKl
|
362
370
|
ABcDeFgHiJkL aBcDeFGhIjKl AaBcDeFgHIjKl AbCdEfGhIjKl ABcDeFgHiJjKl
|
@@ -378,7 +386,7 @@ module When
|
|
378
386
|
# 北周・隋:: 大象暦 579 - 583
|
379
387
|
# 隋:: 開皇暦 584 - 596
|
380
388
|
# 隋・唐:: 大業暦 597 - 618
|
381
|
-
# 唐::
|
389
|
+
# 唐:: 戊寅元暦 619 - 664
|
382
390
|
# 唐・周:: 麟徳暦 665 - 728 総法 1340(小余の分母)
|
383
391
|
# 唐:: 大衍暦 729 - 761 通法 3040( 〃 )
|
384
392
|
# 唐:: 五紀暦 762 - 783 通法 1340( 〃 )
|
@@ -390,7 +398,8 @@ module When
|
|
390
398
|
# (後晋:: 調元暦? 944 - 946)
|
391
399
|
Chinese0523 = [PatternTableBasedLuniSolar, {
|
392
400
|
'origin_of_MSC'=>523, 'origin_of_LSC'=>1912115,
|
393
|
-
'
|
401
|
+
'before' => 'Chinese0412', 'after' => 'Chinese0956',
|
402
|
+
'indices'=> ChineseIndices,
|
394
403
|
'rule_table'=> %w(
|
395
404
|
AbCdEfGhIjKL aBbCdEfGhIjKl AbCDeFgHiJkL
|
396
405
|
aBcDeFgHIjKkL aBcDeFgHiJKl AbCdEfGhIjKl AbCDeFgGhIjKl AbCdEfGHiJkL
|
@@ -492,10 +501,10 @@ module When
|
|
492
501
|
# 唐・周:: 麟徳暦 688 - 700 (歳首 建子月)
|
493
502
|
Chinese0689 = [PatternTableBasedLuniSolar, {
|
494
503
|
'origin_of_MSC'=>688, 'origin_of_LSC'=>1972387, 'border'=>'0*11-01',
|
504
|
+
'before' => 'Chinese0523', 'after' => 'Chinese0523',
|
495
505
|
'indices'=> [
|
496
|
-
|
497
|
-
|
498
|
-
Coordinates::DefaultDayIndex
|
506
|
+
When.Index('Chinese::MonthA', {:branch=>{1=>'_m:Calendar::閏'}}),
|
507
|
+
When::Coordinates::DefaultDayIndex
|
499
508
|
],
|
500
509
|
'rule_table'=> %w(
|
501
510
|
AbcDeFgHIJkL aBcdEfGhIIJkL aBcdEfgHIjKL
|
@@ -508,10 +517,10 @@ module When
|
|
508
517
|
# 唐:: 五紀暦 762 (歳首 建子月)
|
509
518
|
Chinese0761 = [PatternTableBasedLuniSolar, {
|
510
519
|
'origin_of_MSC'=>760, 'origin_of_LSC'=>1998670, 'border'=>'0*11-01',
|
520
|
+
'before' => 'Chinese0523', 'after' => 'Chinese0523',
|
511
521
|
'indices'=> [
|
512
|
-
|
513
|
-
|
514
|
-
Coordinates::DefaultDayIndex
|
522
|
+
When.Index('Chinese::MonthB', {:branch=>{1=>'_m:Calendar::閏'}}),
|
523
|
+
When::Coordinates::DefaultDayIndex
|
515
524
|
],
|
516
525
|
'rule_table'=> %w(AbcDdeFgHIjKL aBcDefGhIJkL AbCdEfgHiJkL)
|
517
526
|
}
|
@@ -521,7 +530,7 @@ module When
|
|
521
530
|
# 『唐・日本における進朔に関する研究』(2013-10版)を使用する場合の朔閏表(一部修正あり)
|
522
531
|
#
|
523
532
|
# 隋・唐:: 大業暦 618
|
524
|
-
# 唐::
|
533
|
+
# 唐:: 戊寅元暦 619 - 664
|
525
534
|
# 唐・周:: 麟徳暦 665 - 728 総法 1340(小余の分母)
|
526
535
|
# 唐:: 大衍暦 729 - 761 通法 3040( 〃 )
|
527
536
|
# 唐:: 五紀暦 762 - 783 通法 1340( 〃 )
|
@@ -531,7 +540,8 @@ module When
|
|
531
540
|
# 唐~後梁:: 崇玄暦 893 - 907
|
532
541
|
Chinese0618 = [PatternTableBasedLuniSolar, {
|
533
542
|
'origin_of_MSC'=>618, 'origin_of_LSC'=>1946814,
|
534
|
-
'
|
543
|
+
'before' => 'Chinese0523', 'after' => 'Chinese0523',
|
544
|
+
'indices'=> ChineseIndices,
|
535
545
|
'rule_table'=> %w( aBcDeFgHiJkL ABbcDefGhIJKl AbCdeFgHiJkL
|
536
546
|
ABcDefGhIjJkL AbCDefGhIjKl AbCDeFgHiJkL aBcDeFGgHiJkL aBcdEFgHIjKl
|
537
547
|
AbCdeFgHIJkL aBcCdeFgHIjKL aBcdEfgHIjKL AbCdeFghIJkLL AbCdeFgHiJkL
|
@@ -606,10 +616,10 @@ module When
|
|
606
616
|
# 唐・周:: 麟徳暦 688 - 700 (歳首 建子月)
|
607
617
|
Chinese0618B = [PatternTableBasedLuniSolar, {
|
608
618
|
'origin_of_MSC'=>688, 'origin_of_LSC'=>1972387, 'border'=>'0*11-01',
|
619
|
+
'before' => 'Chinese0618', 'after' => 'Chinese0618',
|
609
620
|
'indices'=> [
|
610
|
-
|
611
|
-
|
612
|
-
Coordinates::DefaultDayIndex
|
621
|
+
When.Index('Chinese::MonthA', {:branch=>{1=>'_m:Calendar::閏'}}),
|
622
|
+
When::Coordinates::DefaultDayIndex
|
613
623
|
],
|
614
624
|
'rule_table'=> %w( AbcDeFgHIJkL aBcdEfGhIIJkL aBcdEfgHIjKL
|
615
625
|
AbCdeFghIJKL aBcDeeFghIJKL abCdEfGhIjkL AbCDeFgHiJkL aBbCdEFgHiJkL
|
@@ -624,10 +634,10 @@ module When
|
|
624
634
|
# 唐:: 五紀暦 762 (歳首 建子月)
|
625
635
|
Chinese0618C = [PatternTableBasedLuniSolar, {
|
626
636
|
'origin_of_MSC'=>760, 'origin_of_LSC'=>1998670, 'border'=>'0*11-01',
|
637
|
+
'before' => 'Chinese0618', 'after' => 'Chinese0618',
|
627
638
|
'indices'=> [
|
628
|
-
|
629
|
-
|
630
|
-
Coordinates::DefaultDayIndex
|
639
|
+
When.Index('Chinese::MonthB', {:branch=>{1=>'_m:Calendar::閏'}}),
|
640
|
+
When::Coordinates::DefaultDayIndex
|
631
641
|
],
|
632
642
|
'rule_table'=> %w(AbcDdeFgHIjKL aBcdeFGhIJkL AbCdEFghiJkL)
|
633
643
|
}
|
@@ -644,7 +654,8 @@ module When
|
|
644
654
|
# 南明:: 大統暦 1645 - 1662
|
645
655
|
Chinese0939 = [PatternTableBasedLuniSolar, {
|
646
656
|
'origin_of_MSC'=>939, 'origin_of_LSC'=>2064050,
|
647
|
-
'
|
657
|
+
'before' => 'Chinese0523', 'after' => 'Chinese1645',
|
658
|
+
'indices'=> ChineseIndices,
|
648
659
|
'rule_table'=> %w(
|
649
660
|
ABcDefGgHiJkL ABcDefGhIjKl
|
650
661
|
ABcDEfgHiJkL aBcCDeFgHiJkL aBcDeFGhIjKl AbCdeFGhIJkLl AbcDeFgHIJkL
|
@@ -834,7 +845,8 @@ module When
|
|
834
845
|
# 南宋:: 本天暦 1277 - 1279
|
835
846
|
Chinese0956 = [PatternTableBasedLuniSolar, {
|
836
847
|
'origin_of_MSC'=>947, 'origin_of_LSC'=>2066974,
|
837
|
-
'
|
848
|
+
'before' => 'Chinese0523', 'after' => 'Chinese0939',
|
849
|
+
'indices'=> ChineseIndices,
|
838
850
|
'rule_table'=> %w(
|
839
851
|
AbCdeFggHIjKL AbCdeFghIJkL AbCDefGhiJKl AbCDeEfGhIjKl
|
840
852
|
|
@@ -916,6 +928,7 @@ module When
|
|
916
928
|
# 方臘:: 紀元暦 1118 - 1120 (歳首 建子月)
|
917
929
|
Chinese1119 = [PatternTableBasedLuniSolar, {
|
918
930
|
'origin_of_MSC'=>1118, 'origin_of_LSC'=>2129431, 'border'=>'0*11-01',
|
931
|
+
'before' => 'Chinese0956', 'after' => 'Chinese0956',
|
919
932
|
'indices'=> _IndicesM11,
|
920
933
|
'rule_table'=> %w( aBCdEfGhIiJkL aBcDEfGhIjKl AbCdEfGHiJkL)
|
921
934
|
}
|
@@ -926,9 +939,11 @@ module When
|
|
926
939
|
# 清:: 時憲暦 1669 - 1725 天聡戊辰元法
|
927
940
|
# 清:: 時憲暦 1726 - 1741 康熙甲子元法
|
928
941
|
# 清:: 時憲暦 1742 - 1911 雍正癸卯元法
|
942
|
+
# 中華民国:: 農暦 1912 - 1930 (北京時間 +07:45:34 で計算)
|
929
943
|
Chinese1645 = [PatternTableBasedLuniSolar, {
|
930
944
|
'origin_of_MSC'=>1645, 'origin_of_LSC'=>2321912,
|
931
|
-
'
|
945
|
+
'before' => 'Chinese0939', 'after' => 'ChineseLuniSolar?time_basis=+08',
|
946
|
+
'indices'=> ChineseIndices,
|
932
947
|
'rule_table'=> %w(
|
933
948
|
aBcdEffGhIJKL
|
934
949
|
aBcdEfgHiJKL aBCdeFghIjKL aBCdDeFghIjKl ABcDEfGhiJkL aBCdEfGHijKl
|
@@ -990,7 +1005,11 @@ module When
|
|
990
1005
|
|
991
1006
|
aBcdEfGhIJKl AbCdeFgHiJKL aBcDeeFghIJkL ABcDefGhiJKl ABcDEfgHiJkL
|
992
1007
|
aBCdDeFgHiJkL aBcDeFGhIjKl AbcDEfGhIJkL aBbcDeFgHIJkL aBcdEfGhIJKl
|
993
|
-
AbCdeFfgHIjKL
|
1008
|
+
AbCdeFfgHIjKL
|
1009
|
+
AbCdeFghIJkL ABcDefGhiJkL ABcDeEfGhiJkL AbCDeFgHiJkl
|
1010
|
+
ABcDeFGhIjKl AbbCdEFgHIjKl AbcDeFgHIjKL aBcdEfgGHiJKL aBcdEfgHiJKL
|
1011
|
+
AbCdeFghIjKL AbCDeeFghIjKL aBCdEfGhiJkL aBCdEFgHiJkl AbCdDEfGHiJkL
|
1012
|
+
abCdEfGHiJKl AbcDeFgHiJKL aBbcDefGhIJKL aBcdEfgHiJKL aBCdeFfgHiJKl)
|
994
1013
|
}
|
995
1014
|
]
|
996
1015
|
end
|