when_exe 0.3.5 → 0.3.6
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.
- 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
data/lib/when_exe/region/m17n.rb
CHANGED
@@ -21,10 +21,11 @@ module When
|
|
21
21
|
def self.month_name(name)
|
22
22
|
return name if name.kind_of?(self)
|
23
23
|
|
24
|
-
months = When.Resource('_m:
|
25
|
-
abbrs = When.Resource('_m:
|
24
|
+
months = When.Resource('_m:Calendar::Month').child
|
25
|
+
abbrs = When.Resource('_m:Calendar::Abbr_Month').child
|
26
26
|
return name > 0 ? months[name-1] : abbrs[-name-1] if name.kind_of?(Numeric)
|
27
27
|
|
28
|
+
name = When::EncodingConversion.to_internal_encoding(name)
|
28
29
|
match = name[/^...|^..$/]
|
29
30
|
if match
|
30
31
|
(months+abbrs).each do |month|
|
@@ -39,14 +40,12 @@ module When
|
|
39
40
|
return nil
|
40
41
|
end
|
41
42
|
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
CalendarTerms = [M17n, [
|
47
|
-
"namespace:[en=http://en.wikipedia.org/wiki/, ja=http://ja.wikipedia.org/wiki/]",
|
43
|
+
#
|
44
|
+
# 共通的な暦用語
|
45
|
+
#
|
46
|
+
Calendar = [M17n, [
|
48
47
|
"locale:[=en:, ja=ja:, alias]",
|
49
|
-
"names:[
|
48
|
+
"names:[Calendar=]",
|
50
49
|
|
51
50
|
"[Intercalary %s=, *閏]",
|
52
51
|
|
@@ -85,7 +84,6 @@ module When
|
|
85
84
|
|
86
85
|
# Events
|
87
86
|
EpochEvents = [M17n, [
|
88
|
-
"namespace:[en=http://en.wikipedia.org/wiki/, ja=http://ja.wikipedia.org/wiki/]",
|
89
87
|
"locale:[=en:, ja=ja:, alias]",
|
90
88
|
"names:[EpochEvents=]",
|
91
89
|
"[Accession=, 代始]",
|
@@ -9,10 +9,9 @@ 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
|
+
Martian = [self, [
|
14
13
|
"locale:[=en:, ja=ja:, alias]",
|
15
|
-
"names:[
|
14
|
+
"names:[Martian=]",
|
16
15
|
"[Darian=en:Darian_calendar, ダリアン暦]",
|
17
16
|
|
18
17
|
[self,
|
@@ -118,8 +117,7 @@ module When
|
|
118
117
|
#
|
119
118
|
class DarianWeek < WorldWeek
|
120
119
|
|
121
|
-
|
122
|
-
"namespace:[en=http://en.wikipedia.org/wiki/, ja=http://ja.wikipedia.org/wiki/]",
|
120
|
+
Notes = [When::BasicTypes::M17n, [
|
123
121
|
"locale:[=en:, ja=ja:, alias]",
|
124
122
|
"names:[Darian]",
|
125
123
|
|
@@ -141,13 +139,13 @@ module When
|
|
141
139
|
"names:[day]",
|
142
140
|
[When::BasicTypes::M17n,
|
143
141
|
"names:[Week]",
|
144
|
-
"[Solis
|
145
|
-
"[Lunae
|
146
|
-
"[Martis
|
147
|
-
"[Mercurii
|
148
|
-
"[Jovis
|
149
|
-
"[Veneris
|
150
|
-
"[Saturni
|
142
|
+
[DayOfWeek, "label:[Solis=, 日曜日]", {'delta'=>7}],
|
143
|
+
[DayOfWeek, "label:[Lunae=, 月曜日]", {'delta'=>7}],
|
144
|
+
[DayOfWeek, "label:[Martis=, 火曜日]", {'delta'=>7}],
|
145
|
+
[DayOfWeek, "label:[Mercurii=, 水曜日]", {'delta'=>7}],
|
146
|
+
[DayOfWeek, "label:[Jovis=, 木曜日]", {'delta'=>7}],
|
147
|
+
[DayOfWeek, "label:[Veneris=, 金曜日]", {'delta'=>7}],
|
148
|
+
[DayOfWeek, "label:[Saturni=, 土曜日]", {'delta'=>7}]
|
151
149
|
]
|
152
150
|
]
|
153
151
|
]]
|
@@ -169,10 +167,40 @@ module When
|
|
169
167
|
date.events = ['from_solis']
|
170
168
|
date
|
171
169
|
end
|
172
|
-
alias :week :solis
|
173
170
|
|
171
|
+
#
|
172
|
+
# この日は何曜?
|
173
|
+
#
|
174
|
+
# @param [When::TM::TemporalPosition] date
|
175
|
+
# @param [When::TM::CalDate] base (not used)
|
176
|
+
#
|
177
|
+
# @return [Array<When::CalendarNote::Week::DayOfWeek, Array<Integer,Integer>>]
|
178
|
+
#
|
179
|
+
def week(date, base=nil)
|
180
|
+
date = _to_date_for_note(date)
|
181
|
+
index = (date.cal_date.last - 1) % 7
|
182
|
+
[@days_of_week[index], [index, 7]]
|
183
|
+
end
|
184
|
+
|
185
|
+
#
|
186
|
+
# 曜日の名前の一覧
|
187
|
+
#
|
188
|
+
# @param [When::TM::TemporalPosition] date (ダミー)
|
189
|
+
#
|
190
|
+
# @return [Array<When::CalendarNote::Week::DayOfWeek>]
|
191
|
+
#
|
192
|
+
def week_labels(date)
|
193
|
+
@days_of_week.child
|
194
|
+
end
|
195
|
+
|
196
|
+
#
|
197
|
+
# 暦日を当該暦注計算用クラスに変換
|
198
|
+
#
|
174
199
|
# @private
|
175
|
-
|
200
|
+
def _to_date_for_note(date)
|
201
|
+
date = When::Darian ^ date unless date.frame.label.to_s == 'Darian'
|
202
|
+
date
|
203
|
+
end
|
176
204
|
|
177
205
|
private
|
178
206
|
|
@@ -205,11 +233,11 @@ module When
|
|
205
233
|
# Darian Calendar
|
206
234
|
#
|
207
235
|
Darian = [CyclicTableBased, {
|
208
|
-
'label'
|
236
|
+
'label' => 'Martian::Darian',
|
209
237
|
'time_basis' => 'MTC',
|
210
238
|
'origin_of_LSC' => -94798,
|
211
239
|
'indices' => [
|
212
|
-
When
|
240
|
+
When.Index('Martian::DarianMonth', {:unit =>24}),
|
213
241
|
When::Coordinates::DefaultDayIndex
|
214
242
|
],
|
215
243
|
'rule_table' => {
|
@@ -19,12 +19,11 @@ module When
|
|
19
19
|
'LoN' => (( 3 + epoch) % 9).to_s
|
20
20
|
} : nil
|
21
21
|
}}, BasicTypes::M17n, [
|
22
|
-
"namespace:[en=http://en.wikipedia.org/wiki/, ja=http://ja.wikipedia.org/wiki/]",
|
23
22
|
"locale:[=en:, ja=ja:, alias]",
|
24
23
|
"names:[Mayan]",
|
25
24
|
|
26
25
|
[Residue,
|
27
|
-
"label:[Haab', ハアブ, Haab]", "divisor:365", 'day:#{Haab:300}', "format:[%2$d%1$s/365]",
|
26
|
+
"label:[Haab', ハアブ, Haab]", "divisor:365", 'day:#{Haab:300}', "format:[%2$d%1$s/365=]",
|
28
27
|
"namespace:[glyph=http://en.wikipedia.org/wiki/File:Maya-]",
|
29
28
|
[Residue, "label:[Pop =glyph:Pop.jpg, ポプ, Pop ]", "remainder: 0"],
|
30
29
|
[Residue, "label:[Wo' =glyph:Dresden-wo.jpg, ウオ, Wo ]", "remainder: 20"],
|
@@ -48,12 +47,12 @@ module When
|
|
48
47
|
],
|
49
48
|
|
50
49
|
[Residue,
|
51
|
-
"label:[Trecena, トレセナ=, Trecena]", "divisor:13", 'day:#{Trecena:8}', "format:[%1$s(%3$d/13)]"
|
50
|
+
"label:[Trecena, トレセナ=, Trecena]", "divisor:13", 'day:#{Trecena:8}', "format:[%1$s(%3$d/13)=]"
|
52
51
|
],
|
53
52
|
|
54
53
|
[Residue,
|
55
54
|
"namespace:[glyph=http://en.wikipedia.org/wiki/File:MAYA-g-log-cal-]",
|
56
|
-
"label:[Tzolk'in, ツォルキン, Tzolkin]", "divisor:20", 'day:#{Tzolkin:4}', "format:[%s(%d/20)]",
|
55
|
+
"label:[Tzolk'in, ツォルキン, Tzolkin]", "divisor:20", 'day:#{Tzolkin:4}', "format:[%s(%d/20)=]",
|
57
56
|
[Residue, "label:[Imix' =glyph:D01-Imix.png, イミシュ, Imix =glyph:D01-Imix-cdxW.png ]", "remainder: 0"],
|
58
57
|
[Residue, "label:[Ik' =glyph:D02-Ik.png, イック, Ik =glyph:D02-Ik-cdxW.png ]", "remainder: 1"],
|
59
58
|
[Residue, "label:[Ak'b'al =glyph:D03-Akbal.png, アクバル, Akbal =glyph:D03-Akbal-cdxW.png ]", "remainder: 2"],
|
@@ -78,7 +77,7 @@ module When
|
|
78
77
|
|
79
78
|
[Residue,
|
80
79
|
"namespace:[glyph=http://www.pauahtun.org/G/G]",
|
81
|
-
"label:[Lords_of_the_Night, 夜の九王]", "divisor:9", 'day:#{LoN:3}', "format:[%s(%d/9)]",
|
80
|
+
"label:[Lords_of_the_Night, 夜の九王]", "divisor:9", 'day:#{LoN:3}', "format:[%s(%d/9)=]",
|
82
81
|
[Residue, "label:[G9=glyph:9_m.png]", "remainder: 0"],
|
83
82
|
[Residue, "label:[G1=glyph:1_m.png]", "remainder: 1"],
|
84
83
|
[Residue, "label:[G2=glyph:2_m.png]", "remainder: 2"],
|
@@ -92,13 +91,17 @@ module When
|
|
92
91
|
]]
|
93
92
|
end
|
94
93
|
|
94
|
+
class CalendarNote
|
95
|
+
Mayan = [{},['Mayan#{?Epoch=Epoch}::Trecena', 'Mayan#{?Epoch=Epoch}::Tzolk\'in',
|
96
|
+
'Mayan#{?Epoch=Epoch}::Lords_of_the_Night', 'Mayan#{?Epoch=Epoch}::Haab\'']]
|
97
|
+
end
|
98
|
+
|
95
99
|
class TM::CalendarEra
|
96
100
|
|
97
101
|
#
|
98
102
|
# Mayan Long Count
|
99
103
|
#
|
100
104
|
LongCount = [{}, self, [
|
101
|
-
"namespace:[en=http://en.wikipedia.org/wiki/, ja=http://ja.wikipedia.org/wiki/]",
|
102
105
|
"locale:[=en:, ja=ja:, alias]",
|
103
106
|
'area:[LongCount#{?Epoch=Epoch}=en:Mesoamerican_Long_Count_calendar, マヤ長期暦=ja:%%<長期暦>]',
|
104
107
|
["[PHLC=, 先史時代=, PreHistoricLongCount=]0.0.0.0.0", "[Pre Historic=]", '-13.0.0.0.0^LongCount#{?Epoch=Epoch}'],
|
@@ -109,8 +112,8 @@ module When
|
|
109
112
|
|
110
113
|
module CalendarTypes
|
111
114
|
|
112
|
-
_c20 =
|
113
|
-
_c18 =
|
115
|
+
_c20 = When.Index({:base=>0, :unit=>20})
|
116
|
+
_c18 = When.Index({:base=>0, :unit=>18})
|
114
117
|
|
115
118
|
#
|
116
119
|
# Mayan Long Count
|
@@ -124,9 +127,8 @@ module When
|
|
124
127
|
'T' => {'Rule' =>[360]},
|
125
128
|
360 => {'Length'=>[20] * 18}
|
126
129
|
},
|
127
|
-
'index_of_MSC' => 2,
|
128
130
|
'indices'=> [_c20, _c20, _c18, _c20],
|
129
|
-
'note' => '
|
131
|
+
'note' => 'Mayan#{?Epoch=Epoch}'
|
130
132
|
}]
|
131
133
|
end
|
132
134
|
end
|
data/lib/when_exe/region/pope.rb
CHANGED
@@ -20,11 +20,10 @@ module When::Coordinates
|
|
20
20
|
class Kyusei < Residue; end
|
21
21
|
|
22
22
|
# Common Residue
|
23
|
-
|
23
|
+
Common = [{'V'=>{'0618'=>{'A'=>'awakening_of_insects=,*啓蟄',
|
24
24
|
'B'=>'rain_water=,*雨水'}}}, When::BasicTypes::M17n, [
|
25
|
-
"namespace:[en=http://en.wikipedia.org/wiki/, ja=http://ja.wikipedia.org/wiki/]",
|
26
25
|
"locale:[=en:, ja=ja:, tenreki, tibetan, yi, alias]",
|
27
|
-
"names:[
|
26
|
+
"names:[Common]",
|
28
27
|
|
29
28
|
[Residue,
|
30
29
|
"label:[Week, 週]", "divisor:7", "day:0",
|
@@ -50,7 +49,7 @@ module When::Coordinates
|
|
50
49
|
|
51
50
|
[Residue,
|
52
51
|
"locale:[=en:, ja=ja:, alias]",
|
53
|
-
"label:[StarMansion, *宿]", "divisor:28", "day:17", "format:[%s(%02d)]",
|
52
|
+
"label:[StarMansion, *宿]", "divisor:28", "day:17", "format:[%s(%02d)=]",
|
54
53
|
[Residue, "label:[Horn=, *角宿, Jiăo= ]", "remainder:0"], # 1 α Vir
|
55
54
|
[Residue, "label:[Neck=, *亢宿, Kàng= ]", "remainder:1"], # 2 κ Vir
|
56
55
|
[Residue, "label:[Root=, *氐宿, Dĭ= ]", "remainder:2"], # 3 α Lib
|
@@ -112,7 +111,7 @@ module When::Coordinates
|
|
112
111
|
],
|
113
112
|
|
114
113
|
[StemBranch,
|
115
|
-
"label:[Stem-Branch, *干支]", "divisor:60", "day:11", "year:4", "format:[%s(%02d)]",
|
114
|
+
"label:[Stem-Branch, *干支]", "divisor:60", "day:11", "year:4", "format:[%s(%02d)=]",
|
116
115
|
[StemBranch, "label:[kinoe-ne=, *甲子, 甲子, 木男鼠, 木公鼠]", "remainder: 0"],
|
117
116
|
[StemBranch, "label:[kinoto-ushi=, *乙丑, 乙好, 木女牛, 木母牛]", "remainder: 1"],
|
118
117
|
[StemBranch, "label:[hinoe-tora=, *丙寅, 丙寅, 火男虎, 火公虎]", "remainder: 2"],
|
@@ -9,10 +9,9 @@ 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
|
+
Roman = [self, [
|
14
13
|
"locale:[=en:, ja=ja:, alias]",
|
15
|
-
"names:[
|
14
|
+
"names:[Roman=]",
|
16
15
|
|
17
16
|
[self, # ..CE-44 / ..BCE45
|
18
17
|
"names:[MonthA, 月=ja:%%<月_(暦)>]",
|
@@ -95,7 +94,6 @@ module When
|
|
95
94
|
|
96
95
|
# From http://en.wikipedia.org/wiki/Julian_calendar#Sacrobosco.27s_theory_on_month_lengths
|
97
96
|
Julian = [self, [
|
98
|
-
"namespace:[en=http://en.wikipedia.org/wiki/, ja=http://ja.wikipedia.org/wiki/]",
|
99
97
|
"locale:[=en:, ja=ja:, alias]",
|
100
98
|
"period:[Roman=en:Roman_calendar, ローマ暦]",
|
101
99
|
["[AUC=en:Ab_urbe_condita, 建国紀元=ja:%%<ローマ建国紀元>, alias:Ab_urbe_condita]709.1.1",
|
@@ -106,7 +104,6 @@ module When
|
|
106
104
|
|
107
105
|
# From http://www.tyndalehouse.com/Egypt/ptolemies/chron/roman/chron_rom_intro_fr.htm
|
108
106
|
Roman = [self, [
|
109
|
-
"namespace:[en=http://en.wikipedia.org/wiki/, ja=http://ja.wikipedia.org/wiki/]",
|
110
107
|
"locale:[=en:, ja=ja:, alias]",
|
111
108
|
"period:[Roman=en:Roman_calendar, ローマ暦]",
|
112
109
|
["[AUC=en:Ab_urbe_condita, 建国紀元=ja:%%<ローマ建国紀元>, alias:Ab_urbe_condita]492.5.1",
|
@@ -124,9 +121,9 @@ module When
|
|
124
121
|
module CalendarTypes
|
125
122
|
|
126
123
|
# From http://en.wikipedia.org/wiki/Julian_calendar#Sacrobosco.27s_theory_on_month_lengths
|
127
|
-
_Index0 = Coordinates::DefaultDayIndex
|
128
|
-
_IndicesB12 = [
|
129
|
-
_Indices12 = [
|
124
|
+
_Index0 = When::Coordinates::DefaultDayIndex
|
125
|
+
_IndicesB12 = [When.Index('Roman::MonthB', {:unit=>12}), _Index0]
|
126
|
+
_Indices12 = [When.Index('Roman::Month', {:unit=>12}), _Index0]
|
130
127
|
|
131
128
|
#
|
132
129
|
# Julian Calendar A : BCE45-BCE8
|
@@ -140,7 +137,7 @@ module When
|
|
140
137
|
365 => {'Length'=>[31,29] + [31,30]*5},
|
141
138
|
366 => {'Length'=>[31,30] + [31,30]*5}
|
142
139
|
},
|
143
|
-
'note' => '
|
140
|
+
'note' => 'Roman'
|
144
141
|
}]
|
145
142
|
|
146
143
|
#
|
@@ -154,7 +151,7 @@ module When
|
|
154
151
|
'T' => {'Rule' =>[365]},
|
155
152
|
365 => {'Length'=>[31,28] + [31,30,31,30,31]*2}
|
156
153
|
},
|
157
|
-
'note' => '
|
154
|
+
'note' => 'Roman'
|
158
155
|
}]
|
159
156
|
|
160
157
|
#
|
@@ -162,10 +159,10 @@ module When
|
|
162
159
|
#
|
163
160
|
JulianC = [Julian, {
|
164
161
|
'indices' => _Indices12,
|
165
|
-
'note' => '
|
162
|
+
'note' => 'Roman'
|
166
163
|
}]
|
167
164
|
|
168
|
-
# From http://www.tyndalehouse.com/Egypt/ptolemies/chron/roman/chron_rom_intro_fr.htm
|
165
|
+
# From Chris Bennett, http://www.tyndalehouse.com/Egypt/ptolemies/chron/roman/chron_rom_intro_fr.htm
|
169
166
|
#
|
170
167
|
# Roman Calendar BCE262-(CE60)-CE480
|
171
168
|
#
|
@@ -173,14 +170,14 @@ module When
|
|
173
170
|
_ID_L = '1,2,2=,3,4,5,6,7,8,9,10,11,12'
|
174
171
|
_ID_J = '1,2,2=,3,4,5,6,7,8,9,10,11,11<,11>,12'
|
175
172
|
_Branch = {
|
176
|
-
1=>When.Resource('_m:
|
177
|
-
0.5=>When.Resource('_m:
|
178
|
-
1.5=>When.Resource('_m:
|
173
|
+
1=>When.Resource('_m:Roman::IntercalaryMonth::*')[0],
|
174
|
+
0.5=>When.Resource('_m:Roman::IntercalaryMonth::*')[1],
|
175
|
+
1.5=>When.Resource('_m:Roman::IntercalaryMonth::*')[2]
|
179
176
|
}
|
180
|
-
_IndicesA = [
|
181
|
-
_IndicesB = [
|
182
|
-
_Indices = [
|
183
|
-
_IndicesC = [
|
177
|
+
_IndicesA = [When.Index('Roman::MonthA', {:branch=>_Branch}), _Index0]
|
178
|
+
_IndicesB = [When.Index('Roman::MonthB', {:branch=>_Branch}), _Index0]
|
179
|
+
_Indices = [When.Index('Roman::Month', {:branch=>_Branch}), _Index0]
|
180
|
+
_IndicesC = [When.Index('Roman::MonthC', {:branch=>_Branch}), _Index0]
|
184
181
|
Options = {
|
185
182
|
'origin_of_LSC' => 1625698,
|
186
183
|
'origin_of_MSC' => -261,
|
@@ -201,7 +198,7 @@ module When
|
|
201
198
|
'N' => {'Length'=>[31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]},
|
202
199
|
'L' => {'Length'=>[31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]},
|
203
200
|
},
|
204
|
-
'note' => '
|
201
|
+
'note' => 'Roman'
|
205
202
|
}
|
206
203
|
RomanA = [CyclicTableBased, Options.merge({'indices' => _IndicesA})]
|
207
204
|
RomanB = [CyclicTableBased, Options.merge({'indices' => _IndicesB})]
|
@@ -212,10 +209,9 @@ module When
|
|
212
209
|
#
|
213
210
|
# 古代ローマの暦注
|
214
211
|
#
|
215
|
-
class CalendarNote::
|
212
|
+
class CalendarNote::Roman < CalendarNote
|
216
213
|
|
217
|
-
|
218
|
-
"namespace:[en=http://en.wikipedia.org/wiki/, ja=http://ja.wikipedia.org/wiki/]",
|
214
|
+
Notes = [When::BasicTypes::M17n, [
|
219
215
|
"locale:[=en:, ja=ja:, alias]",
|
220
216
|
"names:[Roman]",
|
221
217
|
|
@@ -232,7 +228,7 @@ module When
|
|
232
228
|
],
|
233
229
|
|
234
230
|
[When::Coordinates::Residue,
|
235
|
-
"label:[Indiction, インディクション]", "divisor:15", "year:-2",
|
231
|
+
"label:[Indiction, インディクション]", "divisor:15", "year:-2", "format:[%s=]",
|
236
232
|
[When::Coordinates::Residue, "label:[I= ]", "remainder: 0"],
|
237
233
|
[When::Coordinates::Residue, "label:[II= ]", "remainder: 1"],
|
238
234
|
[When::Coordinates::Residue, "label:[III= ]", "remainder: 2"],
|
@@ -5,8 +5,8 @@
|
|
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
|
7
7
|
|
8
|
-
require 'when_exe/region/japanese'
|
9
|
-
require 'when_exe/region/
|
8
|
+
require 'when_exe/region/japanese/calendars'
|
9
|
+
require 'when_exe/region/chinese/calendars'
|
10
10
|
|
11
11
|
#
|
12
12
|
# 琉球王位一覧表
|
@@ -23,7 +23,6 @@ module When
|
|
23
23
|
# 琉球王朝
|
24
24
|
#
|
25
25
|
Ryukyu = [self, [
|
26
|
-
"namespace:[ja=http://ja.wikipedia.org/wiki/, en=http://en.wikipedia.org/wiki/]",
|
27
26
|
"locale:[=ja:, en=en:, alias]",
|
28
27
|
"area:[琉球,Ryukyu]",
|
29
28
|
[self,
|
@@ -77,7 +76,7 @@ module When
|
|
77
76
|
["[尚元王]0", "@A", "name=[尚元王];1555-06-25"], # 弘治 2~元亀 3(1572) 4 1 45歳
|
78
77
|
["[尚永王]0", "@A", "name=[尚永王];1572-04-01"], # 天正 元~天正 16(1588) 11 25 30歳
|
79
78
|
["[尚寧王]0", "@A", "name=[尚寧王];1588-11-25", # 天正 17~元和 6(1620) 9 19 57歳
|
80
|
-
"1609-04-05^Japanese?note=
|
79
|
+
"1609-04-05^Japanese?note=Chinese", ""], # 慶長 14(1609) 4 5 尚寧、島津と和議
|
81
80
|
["[尚豊王]0", "@A", "name=[尚豊王];1620-09-19"], # 元和 7~寛永 17(1640) 5 4 51歳
|
82
81
|
["[尚賢王]0", "@A", "name=[尚賢王];1640-05-04"], # 寛永 18~正保 4(1647) 9 22 23歳
|
83
82
|
["[尚質王]0", "@A", "name=[尚質王];1647-09-22"], # 慶安 元~寛文 8(1668) 11 17 40歳
|
@@ -8,30 +8,33 @@
|
|
8
8
|
module When
|
9
9
|
class BasicTypes::M17n
|
10
10
|
|
11
|
-
|
12
|
-
"namespace:[
|
13
|
-
"ja=http://ja.wikipedia.org/wiki/, " +
|
14
|
-
"cal=http://en.wikipedia.org/wiki/Middle-earth_calendar]",
|
11
|
+
Shire = [self, [
|
12
|
+
"namespace:[cal=http://en.wikipedia.org/wiki/Middle-earth_calendar#]",
|
15
13
|
"locale:[=en:, ja=ja:, alias]",
|
16
|
-
"names:[
|
14
|
+
"names:[Shire=]",
|
17
15
|
"[Shire=en:The_Lord_of_the_Rings, ホビット庄暦=ja:%%<指輪物語>]",
|
18
16
|
|
17
|
+
[self,
|
18
|
+
"names:[Festival=, 祭= ]",
|
19
|
+
"[%0sYule=en:Yule, %0sユール祭= ]",
|
20
|
+
"[%0sLithe=cal:Hobbit_calendar, %0sライズ祭= ]",
|
21
|
+
],
|
22
|
+
|
19
23
|
[self,
|
20
24
|
"names:[Month, 月=ja:%%<月_(暦)>]",
|
21
|
-
"[Yule=en:Yule,
|
22
|
-
"[Afteryule=en:Yule,
|
23
|
-
"[Solmath=cal,
|
24
|
-
"[Rethe=cal,
|
25
|
-
"[Astron=cal,
|
26
|
-
"[Thrimidge=cal,
|
27
|
-
"[Forelithe=cal,
|
28
|
-
"[
|
29
|
-
"[
|
30
|
-
"[
|
31
|
-
"[
|
32
|
-
"[
|
33
|
-
"[
|
34
|
-
"[Foreyule=en:Yule, ユール前月= ]"
|
25
|
+
"[Yule=en:Yule, ユール祭= ]",
|
26
|
+
"[Afteryule=en:Yule, ユール後月= ]",
|
27
|
+
"[Solmath=cal:Hobbit_calendar, ソマス= ]",
|
28
|
+
"[Rethe=cal:Hobbit_calendar, レセ= ]",
|
29
|
+
"[Astron=cal:Hobbit_calendar, アストロン= ]",
|
30
|
+
"[Thrimidge=cal:Hobbit_calendar, スリミッジ= ]",
|
31
|
+
"[Forelithe=cal:Hobbit_calendar, ライズ前月= ]",
|
32
|
+
"[Afterlithe=cal:Hobbit_calendar, ライズ後月= ]",
|
33
|
+
"[Wedmath=cal:Hobbit_calendar, ウェドマス= ]",
|
34
|
+
"[Halimath=cal:Hobbit_calendar, ハリマス= ]",
|
35
|
+
"[Winterfilth=cal:Hobbit_calendar, ウィンターフィルス=]",
|
36
|
+
"[Blotmath=cal:Hobbit_calendar, ブロドマス= ]",
|
37
|
+
"[Foreyule=en:Yule, ユール前月= ]"
|
35
38
|
]
|
36
39
|
]]
|
37
40
|
end
|
@@ -39,10 +42,9 @@ module When
|
|
39
42
|
#
|
40
43
|
# ホビット庄暦の暦週
|
41
44
|
#
|
42
|
-
class CalendarNote::ShireWeek < CalendarNote
|
45
|
+
class CalendarNote::ShireWeek < CalendarNote::Week
|
43
46
|
|
44
|
-
|
45
|
-
"namespace:[en=http://en.wikipedia.org/wiki/, ja=http://ja.wikipedia.org/wiki/]",
|
47
|
+
Notes = [When::BasicTypes::M17n, [
|
46
48
|
"locale:[=en:, ja=ja:, alias]",
|
47
49
|
"names:[Shire]",
|
48
50
|
|
@@ -64,29 +66,35 @@ module When
|
|
64
66
|
"names:[day]",
|
65
67
|
[When::BasicTypes::M17n,
|
66
68
|
"names:[Week]",
|
67
|
-
"[Saturday, 土曜日]",
|
68
|
-
"[Sunday, 日曜日]",
|
69
|
-
"[Monday, 月曜日]",
|
70
|
-
"[Tuesday, 火曜日]",
|
71
|
-
"[Wednesday, 水曜日]",
|
72
|
-
"[Thursday, 木曜日]",
|
73
|
-
"[Friday, 金曜日]",
|
74
|
-
"[lithe, 中日= ]",
|
75
|
-
"[double, 重日= ]"
|
76
|
-
]
|
69
|
+
[DayOfWeek, "label:[Saturday, 土曜日]", {'delta'=>7}],
|
70
|
+
[DayOfWeek, "label:[Sunday, 日曜日]", {'delta'=>7}],
|
71
|
+
[DayOfWeek, "label:[Monday, 月曜日]", {'delta'=>7}],
|
72
|
+
[DayOfWeek, "label:[Tuesday, 火曜日]", {'delta'=>7}],
|
73
|
+
[DayOfWeek, "label:[Wednesday, 水曜日]", {'delta'=>7}],
|
74
|
+
[DayOfWeek, "label:[Thursday, 木曜日]", {'delta'=>7}],
|
75
|
+
[DayOfWeek, "label:[Friday, 金曜日]", {'delta'=>7}],
|
76
|
+
[DayOfWeek, "label:[lithe, 中日= ]", {'delta'=> 365}],
|
77
|
+
[DayOfWeek, "label:[double, 重日= ]", {'delta'=>1827}]
|
78
|
+
],
|
79
|
+
|
80
|
+
"[Standard_Week]"
|
77
81
|
]
|
78
82
|
]]
|
79
83
|
|
80
|
-
# イベントの標準的な間隔を返す
|
81
84
|
# @private
|
82
|
-
|
83
|
-
return When::DurationP1W
|
84
|
-
end
|
85
|
+
FirstDayOfWeek = [6, 1, 3, 5, 0, 2, 4] * 2
|
85
86
|
|
86
87
|
# @private
|
87
|
-
|
88
|
-
|
89
|
-
|
88
|
+
ExtraDayInYear = {
|
89
|
+
[ 8, 2] => 7,
|
90
|
+
[ 8, 4] => 0
|
91
|
+
}
|
92
|
+
|
93
|
+
# @private
|
94
|
+
WeekLength = {
|
95
|
+
[ 8, 3] => 8,
|
96
|
+
[ 8, 4] => 9
|
97
|
+
}
|
90
98
|
|
91
99
|
# 当日または直前の lithe の日
|
92
100
|
# @param date [When::TM::TemporalPosition]
|
@@ -97,6 +105,7 @@ module When
|
|
97
105
|
event_name = 'lithe'
|
98
106
|
date = date.frame.jul_trans(date, {:events=>[event_name]})
|
99
107
|
y,m,d = date.cal_date
|
108
|
+
m = date.frame.send(:_to_index,[y,m]) + 1
|
100
109
|
h,n = (m+5).divmod(7)
|
101
110
|
dow = 182 * h[0] + 30 * n + d + 1
|
102
111
|
if m==8
|
@@ -114,19 +123,20 @@ module When
|
|
114
123
|
|
115
124
|
# 当日または直前の week_day の日
|
116
125
|
# @method week_day(date, parameter=nil)
|
117
|
-
# @param
|
118
|
-
# @param
|
126
|
+
# @param [When::TM::TemporalPosition] date
|
127
|
+
# @param [nil] parameter 未使用
|
119
128
|
# @return [When::TM::TemporalPosition]
|
120
129
|
# @note week_day は saturday, sunday, monday, tuesday, wednesday, thursday, friday に読み替えてください。
|
121
130
|
|
122
131
|
# @private
|
123
132
|
7.times do |k|
|
124
|
-
name = When.CalendarNote('ShireWeek/
|
133
|
+
name = When.CalendarNote('ShireWeek/Notes::day::Week')[k].to_s.downcase
|
125
134
|
module_eval %Q{
|
126
135
|
def #{name}(date, parameter=nil)
|
127
136
|
event_name = 'from_#{name}'
|
128
137
|
date = date.frame.jul_trans(date, {:events=>[event_name], :precision=>When::DAY})
|
129
138
|
y,m,d = date.cal_date
|
139
|
+
m = date.frame.send(:_to_index, [y,m]) + 1
|
130
140
|
h,n = (m+5).divmod(7)
|
131
141
|
dow = (182 * h[0] + 30 * n + d - #{k}) % 7
|
132
142
|
case m
|
@@ -144,12 +154,35 @@ module When
|
|
144
154
|
date.events = [event_name]
|
145
155
|
date
|
146
156
|
end
|
147
|
-
|
148
|
-
alias :#{name}_delta :_delta
|
149
157
|
}
|
150
158
|
end
|
151
159
|
|
152
|
-
|
160
|
+
#
|
161
|
+
# この日は何曜?
|
162
|
+
#
|
163
|
+
# @param [When::TM::TemporalPosition] date
|
164
|
+
# @param [When::TM::CalDate] base (not used)
|
165
|
+
#
|
166
|
+
# @return [Hash<:value=>When::CalendarNote::Week::DayOfWeek, :position=>Array<Integer>>]
|
167
|
+
#
|
168
|
+
def week(date, base=nil)
|
169
|
+
date = _to_date_for_note(date)
|
170
|
+
y, m, d = date.cal_date
|
171
|
+
m = date.frame.send(:_to_index, [y,m]) + 1
|
172
|
+
length = WeekLength[[m, date.length(When::MONTH)]] || 7
|
173
|
+
index = length == 8 ? 0 : 8 if [m,d] == [8,3]
|
174
|
+
index ||= ExtraDayInYear[[m,d]] || (FirstDayOfWeek[m-1] + d - 1) % 7
|
175
|
+
{:value=>@days_of_week[index], :position=>[index, length]}
|
176
|
+
end
|
177
|
+
|
178
|
+
#
|
179
|
+
# 暦日を当該暦注計算用クラスに変換
|
180
|
+
#
|
181
|
+
# @private
|
182
|
+
def _to_date_for_note(date)
|
183
|
+
date = When::ShireG ^ date unless date.frame.label.to_s == 'Shire'
|
184
|
+
date
|
185
|
+
end
|
153
186
|
|
154
187
|
# オブジェクトの正規化
|
155
188
|
# @private
|
@@ -157,58 +190,31 @@ module When
|
|
157
190
|
@event ||= 'saturday'
|
158
191
|
super
|
159
192
|
end
|
160
|
-
|
161
|
-
#
|
162
|
-
# イベントを取得する Enumerator
|
163
|
-
#
|
164
|
-
class Enumerator < When::CalendarNote::Enumerator
|
165
|
-
|
166
|
-
#
|
167
|
-
# 次のイベントを得る
|
168
|
-
#
|
169
|
-
# @return [When::TM::TemporalPosition]
|
170
|
-
#
|
171
|
-
def succ
|
172
|
-
value = @current
|
173
|
-
plus = @delta.sign > 0
|
174
|
-
if @current==:first
|
175
|
-
@first = event_eval(@first) unless plus
|
176
|
-
@current = @first
|
177
|
-
else
|
178
|
-
if plus
|
179
|
-
@current = event_eval(@current + @delta)
|
180
|
-
else
|
181
|
-
@last = event_eval(@current - When.Duration('P1D'))
|
182
|
-
@current = event_eval(@current + @delta)
|
183
|
-
unless [@current.to_i, value.to_i].include?(@last.to_i)
|
184
|
-
@current = @last
|
185
|
-
return value
|
186
|
-
end
|
187
|
-
end
|
188
|
-
@current = event_eval(@current + @delta * 2) if @current.to_i == value.to_i
|
189
|
-
end
|
190
|
-
return value
|
191
|
-
end
|
192
|
-
end
|
193
193
|
end
|
194
194
|
|
195
195
|
module CalendarTypes
|
196
|
+
|
197
|
+
_shire_indices = [
|
198
|
+
When.Index('Shire::Month', {:base => 0,
|
199
|
+
:branch=>{1=>When.Resource('_m:Shire::Festival::*')[1]}}),
|
200
|
+
When::Coordinates::DefaultDayIndex
|
201
|
+
]
|
202
|
+
|
203
|
+
_IDs = '0,1,2,3,4,5,6,6=,7,8,9,10,11,12'
|
204
|
+
|
196
205
|
#
|
197
206
|
# Shire Calendar based on summer solstice date
|
198
207
|
#
|
199
208
|
Shire = [YearLengthTableBased, {
|
200
|
-
'label' =>
|
201
|
-
'indices' =>
|
202
|
-
|
203
|
-
Coordinates::DefaultDayIndex
|
204
|
-
],
|
205
|
-
'border' => '00-01-02',
|
209
|
+
'label' => 'Shire::Shire',
|
210
|
+
'indices' => _shire_indices,
|
211
|
+
'border' => '00-00-02',
|
206
212
|
'day_offset' => -183, # the day 183 days before summer solstice
|
207
213
|
'cycle_offset' => Rational(1,4), # summer solstice
|
208
214
|
'time_basis' => '+09:00', # JST
|
209
215
|
'rule_table' => {
|
210
|
-
365 => {'Length'=>[2]+[30]*6+[3]+[30]*6},
|
211
|
-
366 => {'Length'=>[2]+[30]*6+[4]+[30]*6}
|
216
|
+
365 => {'Length'=>[2]+[30]*6+[3]+[30]*6, 'IDs'=>_IDs},
|
217
|
+
366 => {'Length'=>[2]+[30]*6+[4]+[30]*6, 'IDs'=>_IDs}
|
212
218
|
},
|
213
219
|
'note' => 'ShireWeek'
|
214
220
|
}]
|
@@ -217,19 +223,16 @@ module When
|
|
217
223
|
# Shire Calendar based on Gregorian Date
|
218
224
|
#
|
219
225
|
ShireG = [CyclicTableBased, {
|
220
|
-
'label' =>
|
226
|
+
'label' => 'Shire::Shire',
|
221
227
|
'origin_of_LSC' => 1721060-10,
|
222
|
-
'indices' =>
|
223
|
-
|
224
|
-
Coordinates::DefaultDayIndex
|
225
|
-
],
|
226
|
-
'border' => '00-01-02',
|
228
|
+
'indices' => _shire_indices,
|
229
|
+
'border' => '00-00-02',
|
227
230
|
'rule_table' => {
|
228
231
|
'T' => {'Rule' =>['LC', 'SC', 'SC', 'SC']},
|
229
232
|
'SC' => {'Rule' =>[365]*4 + [366, 365, 365, 365]*24},
|
230
233
|
'LC' => {'Rule' =>[366, 365, 365, 365]*25},
|
231
|
-
365 => {'Length'=>[2]+[30]*6+[3]+[30]*6},
|
232
|
-
366 => {'Length'=>[2]+[30]*6+[4]+[30]*6}
|
234
|
+
365 => {'Length'=>[2]+[30]*6+[3]+[30]*6, 'IDs'=>_IDs},
|
235
|
+
366 => {'Length'=>[2]+[30]*6+[4]+[30]*6, 'IDs'=>_IDs}
|
233
236
|
},
|
234
237
|
'note' => 'ShireWeek'
|
235
238
|
}]
|