when_exe 0.4.1 → 0.4.2

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 (96) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +36 -33
  3. data/bin/locales.rb +1 -1
  4. data/bin/make_ttl.rb.config +1 -1
  5. data/lib/when_exe.rb +27 -16
  6. data/lib/when_exe/basictypes.rb +772 -771
  7. data/lib/when_exe/calendartypes.rb +1485 -1453
  8. data/lib/when_exe/coordinates.rb +5 -0
  9. data/lib/when_exe/core/compatibility.rb +1 -1
  10. data/lib/when_exe/core/duration.rb +147 -116
  11. data/lib/when_exe/core/extension.rb +499 -497
  12. data/lib/when_exe/ephemeris.rb +1952 -1951
  13. data/lib/when_exe/ephemeris/eclipse.rb +5 -4
  14. data/lib/when_exe/ephemeris/notes.rb +457 -421
  15. data/lib/when_exe/ephemeris/planets.rb +585 -585
  16. data/lib/when_exe/ephemeris/sun.rb +214 -214
  17. data/lib/when_exe/google_api.rb +153 -0
  18. data/lib/when_exe/icalendar.rb +1640 -1632
  19. data/lib/when_exe/inspect.rb +42 -20
  20. data/lib/when_exe/linkeddata.rb +28 -7
  21. data/lib/when_exe/locales/autoload.rb +2 -1
  22. data/lib/when_exe/locales/locale.rb +35 -15
  23. data/lib/when_exe/locales/zh.rb +77 -0
  24. data/lib/when_exe/mini_application.rb +3 -1
  25. data/lib/when_exe/{googlecalendar.rb → obsolete/googlecalendar.rb} +144 -144
  26. data/lib/when_exe/parts/enumerator.rb +498 -486
  27. data/lib/when_exe/parts/geometric_complex.rb +397 -397
  28. data/lib/when_exe/parts/timezone.rb +246 -241
  29. data/lib/when_exe/region/armenian.rb +55 -56
  30. data/lib/when_exe/region/babylonian.rb +406 -405
  31. data/lib/when_exe/region/bahai.rb +107 -106
  32. data/lib/when_exe/region/balinese.rb +624 -622
  33. data/lib/when_exe/region/chinese.rb +1071 -1026
  34. data/lib/when_exe/region/chinese/epochs.rb +28 -28
  35. data/lib/when_exe/region/chinese/notes.rb +219 -0
  36. data/lib/when_exe/region/chinese/twins.rb +803 -803
  37. data/lib/when_exe/region/christian.rb +21 -15
  38. data/lib/when_exe/region/coptic.rb +107 -106
  39. data/lib/when_exe/region/discordian.rb +218 -218
  40. data/lib/when_exe/region/east_asian.rb +1 -1
  41. data/lib/when_exe/region/french.rb +126 -56
  42. data/lib/when_exe/region/geologicalage.rb +639 -639
  43. data/lib/when_exe/region/goddess.rb +60 -58
  44. data/lib/when_exe/region/hanke_henry.rb +2 -2
  45. data/lib/when_exe/region/indian.rb +1225 -1222
  46. data/lib/when_exe/region/international_fixed.rb +96 -97
  47. data/lib/when_exe/region/iranian.rb +206 -203
  48. data/lib/when_exe/region/islamic.rb +102 -102
  49. data/lib/when_exe/region/japanese.rb +126 -71
  50. data/lib/when_exe/region/japanese/epochs.rb +426 -426
  51. data/lib/when_exe/region/japanese/notes.rb +101 -81
  52. data/lib/when_exe/region/japanese/residues.rb +1345 -1311
  53. data/lib/when_exe/region/japanese/twins.rb +225 -225
  54. data/lib/when_exe/region/japanese/weeks.rb +112 -112
  55. data/lib/when_exe/region/javanese.rb +230 -230
  56. data/lib/when_exe/region/jewish.rb +130 -131
  57. data/lib/when_exe/region/m17n.rb +114 -114
  58. data/lib/when_exe/region/martian.rb +258 -258
  59. data/lib/when_exe/region/mayan.rb +11 -8
  60. data/lib/when_exe/region/pax.rb +4 -5
  61. data/lib/when_exe/region/pope.rb +1 -1
  62. data/lib/when_exe/region/positivist.rb +100 -100
  63. data/lib/when_exe/region/residue.rb +162 -162
  64. data/lib/when_exe/region/roman.rb +333 -333
  65. data/lib/when_exe/region/{soviet.rb → russian.rb} +221 -209
  66. data/lib/when_exe/region/shire.rb +222 -223
  67. data/lib/when_exe/region/symmetry.rb +50 -50
  68. data/lib/when_exe/region/thai.rb +336 -336
  69. data/lib/when_exe/region/tibetan.rb +315 -316
  70. data/lib/when_exe/region/tranquility.rb +207 -208
  71. data/lib/when_exe/region/vanishing_leprechaun.rb +3 -1
  72. data/lib/when_exe/region/vietnamese.rb +449 -440
  73. data/lib/when_exe/region/weekdate.rb +80 -80
  74. data/lib/when_exe/region/world.rb +170 -171
  75. data/lib/when_exe/region/world_season.rb +89 -89
  76. data/lib/when_exe/region/yerm.rb +3 -3
  77. data/lib/when_exe/region/zoroastrian.rb +205 -205
  78. data/lib/when_exe/timestandard.rb +708 -707
  79. data/lib/when_exe/tmduration.rb +338 -338
  80. data/lib/when_exe/tmobjects.rb +1356 -1356
  81. data/lib/when_exe/tmposition.rb +66 -31
  82. data/lib/when_exe/version.rb +16 -2
  83. data/test/examples/Residue.m17n +83 -83
  84. data/test/examples/Terms.m17n +2 -2
  85. data/test/test.rb +2 -2
  86. data/test/test/google_api.rb +65 -0
  87. data/test/test/linkeddata.rb +1 -1
  88. data/test/test/{googlecalendar.rb → obsolete/googlecalendar.rb} +194 -194
  89. data/test/test/region/indian.rb +90 -85
  90. data/test/test/region/m17n.rb +7 -7
  91. data/test/test/region/mayan.rb +195 -195
  92. data/test/test/region/residue.rb +153 -153
  93. data/test/test/tmposition.rb +11 -1
  94. data/when_exe.gemspec +2 -2
  95. metadata +95 -8
  96. data/test/test.rb.config +0 -1
@@ -1,258 +1,258 @@
1
- # -*- coding: utf-8 -*-
2
- =begin
3
- Copyright (C) 2013-2014 Takashi SUGA
4
-
5
- You may use and/or modify this file according to the license described in the LICENSE.txt file included in this archive.
6
- =end
7
-
8
- module When
9
-
10
- class BasicTypes::M17n
11
-
12
- Martian = [self, [
13
- "locale:[=en:, ja=ja:, alias]",
14
- "names:[Martian=]",
15
- "[Darian=en:Darian_calendar, ダリアン暦]",
16
-
17
- [self,
18
- "names:[DarianMonth=, 月=ja:%%<月_(暦)>]",
19
- "[Sagittarius, いて= ]",
20
- "[Dhanus=, 人馬= ]",
21
- "[Capricornus, やぎ= ]",
22
- "[Makara=, 磨羯= ]",
23
- "[Aquarius, みずがめ=]",
24
- "[Kumbha=, 宝瓶= ]",
25
- "[Pisces, うお= ]",
26
- "[Mina=, 双魚= ]",
27
- "[Aries, おひつじ=]",
28
- "[Mesha=, 白羊= ]",
29
- "[Taurus, おうし= ]",
30
- "[Rishabha=, 金牛= ]",
31
- "[Gemini, ふたご= ]",
32
- "[Mithuna=, 双児= ]",
33
- "[Cancer, かに= ]",
34
- "[Karka=, 巨蟹= ]",
35
- "[Leo, しし= ]",
36
- "[Simha=, 獅子= ]",
37
- "[Virgo, おとめ= ]",
38
- "[Kanya=, 処女= ]",
39
- "[Libra, てんびん=]",
40
- "[Tula=, 天秤= ]",
41
- "[Scorpius, さそり= ]",
42
- "[Vrishika=, 天蠍= ]"
43
- ]
44
- ]]
45
- end
46
-
47
- module TimeStandard
48
-
49
- #
50
- # Martian Time, Coordinated
51
- #
52
- class MartianTimeCoordinated < TimeStandard
53
-
54
- J2000Jan6 = 2451549.5
55
- Ratio = 1.02749125
56
- MTC0 = 44796.0 - 0.0002 - 0.5
57
-
58
- # 当該時刻系の日付を dynamical date に変換する
59
- #
60
- # @param [Numeric] date 当該時刻系の日付
61
- #
62
- # @return [Numeric] dynamical date
63
- #
64
- def to_dynamical_date(date)
65
- (date - @mtc0) * Ratio + J2000Jan6
66
- end
67
-
68
- # dynamical date を当該時刻系の日付に変換する
69
- #
70
- # @param [Numeric] date dynamical date
71
- #
72
- # @return [Numeric] 当該時刻系の日付
73
- #
74
- def from_dynamical_date(date)
75
- (date - J2000Jan6) / Ratio + @mtc0
76
- end
77
-
78
- # universal time を dynamical time に変換する
79
- #
80
- # @param [Numeric] time universal time
81
- #
82
- # @return [Numeric] dynamical time
83
- #
84
- def to_dynamical_time(time)
85
- When::TM::JulianDate._d_to_t(
86
- to_dynamical_date(
87
- When::TM::JulianDate._t_to_d(time)))
88
- end
89
-
90
- # dynamical time を universal time に変換する
91
- #
92
- # @param [Numeric] time dynamical time
93
- #
94
- # @return [Numeric] universal time
95
- #
96
- def from_dynamical_time(time)
97
- When::TM::JulianDate._d_to_t(
98
- from_dynamical_date(
99
- When::TM::JulianDate._t_to_d(time)))
100
- end
101
-
102
- private
103
-
104
- # オブジェクトの正規化
105
- def _normalize(args=[], options={})
106
- @location = When.Resource(@location || '_l:long=0&lat=0&datum=Mars')
107
- @mtc0 = MTC0 + @location.long / (360.0 * When::Coordinates::Spatial::DEGREE)
108
- super
109
- end
110
- end
111
- end
112
-
113
- class CalendarNote
114
-
115
- #
116
- # Darian Week
117
- #
118
- class DarianWeek < WorldWeek
119
-
120
- Notes = [When::BasicTypes::M17n, [
121
- "locale:[=en:, ja=ja:, alias]",
122
- "names:[Darian]",
123
-
124
- # 年の暦注 ----------------------------
125
- [When::BasicTypes::M17n,
126
- "names:[year]"
127
- ],
128
-
129
- # 月の暦注 ----------------------------
130
- [When::BasicTypes::M17n,
131
- "names:[month]",
132
- [When::BasicTypes::M17n,
133
- "names:[Month]"
134
- ]
135
- ],
136
-
137
- # 日の暦注 ----------------------------
138
- [When::BasicTypes::M17n,
139
- "names:[day]",
140
- [When::BasicTypes::M17n,
141
- "names:[Week]",
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}]
149
- ]
150
- ]
151
- ]]
152
-
153
- #
154
- # 当日または直前の solis の日
155
- #
156
- # @param date [When::TM::TemporalPosition]
157
- # @param parameter [nil] 未使用
158
- #
159
- # @return [When::TM::TemporalPosition]
160
- #
161
- def solis(date, parameter=nil)
162
- date = When.Calendar('Darian').jul_trans(date, {:events=>['from_solis']})
163
- y,m,d = date.cal_date
164
- dow = (d-1) % 7
165
- return date if dow == 0
166
- date += When::TM::PeriodDuration.new([0,0,-dow])
167
- date.events = ['from_solis']
168
- date
169
- end
170
-
171
- #
172
- # この日は何曜?
173
- #
174
- # @param [When::TM::TemporalPosition] date
175
- # @param [When::TM::CalDate] base (not used)
176
- #
177
- # @return [Hash<:value=>When::CalendarNote::Week::DayOfWeek, :position=>Array<Integer>>]
178
- #
179
- def week(date, base=nil)
180
- date = _to_date_for_note(date)
181
- index = (date.cal_date.last - 1) % 7
182
- {:value=>@days_of_week[index], :position=>[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
- #
199
- # @private
200
- def _to_date_for_note(date)
201
- date = When::Darian ^ date unless date.frame.label.to_s == 'Darian'
202
- date
203
- end
204
-
205
- private
206
-
207
- # オブジェクトの正規化
208
- def _normalize(args=[], options={})
209
- @event ||= 'solis'
210
- super
211
- end
212
- end
213
- end
214
-
215
- module CalendarTypes
216
-
217
- #
218
- # Martian Time, Coordinated
219
- #
220
- class MTC < UTC
221
-
222
- private
223
-
224
- # オブジェクトの正規化
225
- def _normalize(args=[], options={})
226
- label = 'MTC'
227
- long = @long||0
228
- label += "?long=#{long}" unless long.to_f == 0
229
- @label = m17n(label)
230
- @time_standard = When.Resource("_t:MartianTimeCoordinated?location=(_l:long=#{long}&datum=Mars)")
231
- super
232
- end
233
- end
234
-
235
- #
236
- # Darian Calendar
237
- #
238
- Darian = [CyclicTableBased, {
239
- 'label' => 'Martian::Darian',
240
- 'time_basis' => 'MTC',
241
- 'origin_of_LSC' => -94798,
242
- 'indices' => [
243
- When.Index('Martian::DarianMonth', {:unit =>24}),
244
- When::Coordinates::DefaultDayIndex
245
- ],
246
- 'rule_table' => {
247
- 'T' => {'Rule' =>['LongCentury', ['ShortCentury', 4]]},
248
- 'LongCentury' => {'Rule' =>[ ['LongDecade', 10]]},
249
- 'ShortCentury' => {'Rule' =>['ShortDecade', ['LongDecade', 9]]},
250
- 'LongDecade' => {'Rule' =>[669] * 2 + [668, 669] * 4 },
251
- 'ShortDecade' => {'Rule' => [668, 669] * 5 },
252
- 668 => {'Length'=>[28, 28, 28, 28, 28, 27] * 4 },
253
- 669 => {'Length'=>[28, 28, 28, 28, 28, 27] * 3 + [28] * 6}
254
- },
255
- 'note' => 'DarianWeek'
256
- }]
257
- end
258
- end
1
+ # -*- coding: utf-8 -*-
2
+ =begin
3
+ Copyright (C) 2013-2015 Takashi SUGA
4
+
5
+ You may use and/or modify this file according to the license described in the LICENSE.txt file included in this archive.
6
+ =end
7
+
8
+ module When
9
+
10
+ class BasicTypes::M17n
11
+
12
+ Martian = [self, [
13
+ "locale:[=en:, ja=ja:, zh=zh:, alias]",
14
+ "names:[Martian=en:Mars, 火星, 火星]",
15
+ "[Darian=en:Darian_calendar, ダリアン暦, 大流士火星曆]",
16
+
17
+ [self,
18
+ "names:[month name named after the zodiac=, 黄道十二宮にちなむ月名=, 對應於黃道十二宮月份名稱=, *alias:DarianMonth=]",
19
+ "[Sagittarius, いて= ]",
20
+ "[Dhanus=, 人馬= ]",
21
+ "[Capricornus, やぎ= ]",
22
+ "[Makara=, 磨羯= ]",
23
+ "[Aquarius, みずがめ=]",
24
+ "[Kumbha=, 宝瓶= ]",
25
+ "[Pisces, うお= ]",
26
+ "[Mina=, 双魚= ]",
27
+ "[Aries, おひつじ=]",
28
+ "[Mesha=, 白羊= ]",
29
+ "[Taurus, おうし= ]",
30
+ "[Rishabha=, 金牛= ]",
31
+ "[Gemini, ふたご= ]",
32
+ "[Mithuna=, 双児= ]",
33
+ "[Cancer, かに= ]",
34
+ "[Karka=, 巨蟹= ]",
35
+ "[Leo, しし= ]",
36
+ "[Simha=, 獅子= ]",
37
+ "[Virgo, おとめ= ]",
38
+ "[Kanya=, 処女= ]",
39
+ "[Libra, てんびん=]",
40
+ "[Tula=, 天秤= ]",
41
+ "[Scorpius, さそり= ]",
42
+ "[Vrishika=, 天蠍= ]"
43
+ ]
44
+ ]]
45
+ end
46
+
47
+ module TimeStandard
48
+
49
+ #
50
+ # Martian Time, Coordinated
51
+ #
52
+ class MartianTimeCoordinated < TimeStandard
53
+
54
+ J2000Jan6 = 2451549.5
55
+ Ratio = 1.02749125
56
+ MTC0 = 44796.0 - 0.0002 - 0.5
57
+
58
+ # 当該時刻系の日付を dynamical date に変換する
59
+ #
60
+ # @param [Numeric] date 当該時刻系の日付
61
+ #
62
+ # @return [Numeric] dynamical date
63
+ #
64
+ def to_dynamical_date(date)
65
+ (date - @mtc0) * Ratio + J2000Jan6
66
+ end
67
+
68
+ # dynamical date を当該時刻系の日付に変換する
69
+ #
70
+ # @param [Numeric] date dynamical date
71
+ #
72
+ # @return [Numeric] 当該時刻系の日付
73
+ #
74
+ def from_dynamical_date(date)
75
+ (date - J2000Jan6) / Ratio + @mtc0
76
+ end
77
+
78
+ # universal time を dynamical time に変換する
79
+ #
80
+ # @param [Numeric] time universal time
81
+ #
82
+ # @return [Numeric] dynamical time
83
+ #
84
+ def to_dynamical_time(time)
85
+ When::TM::JulianDate._d_to_t(
86
+ to_dynamical_date(
87
+ When::TM::JulianDate._t_to_d(time)))
88
+ end
89
+
90
+ # dynamical time を universal time に変換する
91
+ #
92
+ # @param [Numeric] time dynamical time
93
+ #
94
+ # @return [Numeric] universal time
95
+ #
96
+ def from_dynamical_time(time)
97
+ When::TM::JulianDate._d_to_t(
98
+ from_dynamical_date(
99
+ When::TM::JulianDate._t_to_d(time)))
100
+ end
101
+
102
+ private
103
+
104
+ # オブジェクトの正規化
105
+ def _normalize(args=[], options={})
106
+ @location = When.Resource(@location || '_l:long=0&lat=0&datum=Mars')
107
+ @mtc0 = MTC0 + @location.long / (360.0 * When::Coordinates::Spatial::DEGREE)
108
+ super
109
+ end
110
+ end
111
+ end
112
+
113
+ class CalendarNote
114
+
115
+ #
116
+ # Darian Week
117
+ #
118
+ class DarianWeek < WorldWeek
119
+
120
+ Notes = [When::BasicTypes::M17n, [
121
+ "locale:[=en:, ja=ja:, alias]",
122
+ "names:[Darian, ダリアン暦]",
123
+
124
+ # 年の暦注 ----------------------------
125
+ [When::BasicTypes::M17n,
126
+ "names:[note for year=, 年の暦注=, *year]"
127
+ ],
128
+
129
+ # 月の暦注 ----------------------------
130
+ [When::BasicTypes::M17n,
131
+ "names:[note for month=, 月の暦注=, *month]",
132
+ [When::BasicTypes::M17n,
133
+ "names:[month name=en:Month, 月の名前=ja:%%<月_(暦)>, zh:該月的名稱=, *alias:Month=]"
134
+ ]
135
+ ],
136
+
137
+ # 日の暦注 ----------------------------
138
+ [When::BasicTypes::M17n,
139
+ "names:[note for day=, 日の暦注=, *day]",
140
+ [When::BasicTypes::M17n,
141
+ "names:[Week, 週, zh:星期]",
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}]
149
+ ]
150
+ ]
151
+ ]]
152
+
153
+ #
154
+ # 当日または直前の solis の日
155
+ #
156
+ # @param date [When::TM::TemporalPosition]
157
+ # @param parameter [nil] 未使用
158
+ #
159
+ # @return [When::TM::TemporalPosition]
160
+ #
161
+ def solis(date, parameter=nil)
162
+ date = When.Calendar('Darian').jul_trans(date, {:events=>['from_solis']})
163
+ y,m,d = date.cal_date
164
+ dow = (d-1) % 7
165
+ return date if dow == 0
166
+ date += When::TM::PeriodDuration.new([0,0,-dow])
167
+ date.events = ['from_solis']
168
+ date
169
+ end
170
+
171
+ #
172
+ # この日は何曜?
173
+ #
174
+ # @param [When::TM::TemporalPosition] date
175
+ # @param [When::TM::CalDate] base (not used)
176
+ #
177
+ # @return [Hash<:value=>When::CalendarNote::Week::DayOfWeek, :position=>Array<Integer>>]
178
+ #
179
+ def week(date, base=nil)
180
+ date = _to_date_for_note(date)
181
+ index = (date.cal_date.last - 1) % 7
182
+ {:value=>@days_of_week[index], :position=>[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
+ #
199
+ # @private
200
+ def _to_date_for_note(date)
201
+ date = When::Darian ^ date unless date.frame.label.to_s == 'Darian'
202
+ date
203
+ end
204
+
205
+ private
206
+
207
+ # オブジェクトの正規化
208
+ def _normalize(args=[], options={})
209
+ @event ||= 'solis'
210
+ super
211
+ end
212
+ end
213
+ end
214
+
215
+ module CalendarTypes
216
+
217
+ #
218
+ # Martian Time, Coordinated
219
+ #
220
+ class MTC < UTC
221
+
222
+ private
223
+
224
+ # オブジェクトの正規化
225
+ def _normalize(args=[], options={})
226
+ label = 'MTC'
227
+ long = @long||0
228
+ label += "?long=#{long}" unless long.to_f == 0
229
+ @label = m17n(label)
230
+ @time_standard = When.Resource("_t:MartianTimeCoordinated?location=(_l:long=#{long}&datum=Mars)")
231
+ super
232
+ end
233
+ end
234
+
235
+ #
236
+ # Darian Calendar
237
+ #
238
+ Darian = [CyclicTableBased, {
239
+ 'label' => 'Martian::Darian',
240
+ 'time_basis' => 'MTC',
241
+ 'origin_of_LSC' => -94798,
242
+ 'indices' => [
243
+ When.Index('Martian::DarianMonth', {:unit =>24}),
244
+ When::Coordinates::DefaultDayIndex
245
+ ],
246
+ 'rule_table' => {
247
+ 'T' => {'Rule' =>['LongCentury', ['ShortCentury', 4]]},
248
+ 'LongCentury' => {'Rule' =>[ ['LongDecade', 10]]},
249
+ 'ShortCentury' => {'Rule' =>['ShortDecade', ['LongDecade', 9]]},
250
+ 'LongDecade' => {'Rule' =>[669] * 2 + [668, 669] * 4 },
251
+ 'ShortDecade' => {'Rule' => [668, 669] * 5 },
252
+ 668 => {'Length'=>[28, 28, 28, 28, 28, 27] * 4 },
253
+ 669 => {'Length'=>[28, 28, 28, 28, 28, 27] * 3 + [28] * 6}
254
+ },
255
+ 'note' => 'DarianWeek'
256
+ }]
257
+ end
258
+ end