when_exe 0.4.1 → 0.4.2

Sign up to get free protection for your applications and to get access to all the features.
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