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,89 +1,89 @@
1
- # -*- coding: utf-8 -*-
2
- =begin
3
- Copyright (C) 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
- WorldSeason = [self, [
13
- "locale:[=en:, ja=ja:, alias]",
14
- "names:[WorldSeason=]",
15
- "[WorldSeason=http://calendars.wikia.com/wiki/World_Season_Calendar, アシモフの季節暦=]"
16
- ]]
17
- end
18
-
19
- #
20
- # WorldSeason Week
21
- #
22
- class CalendarNote::WorldSeasonWeek < CalendarNote::Week
23
-
24
- #
25
- # WorldSeason Note
26
- #
27
- Notes = [When::BasicTypes::M17n, [
28
- "locale:[=en:, ja=ja:, alias]",
29
- "names:[WorldSeason]",
30
-
31
- # Notes for year ----------------------------
32
- [When::BasicTypes::M17n,
33
- "names:[year]"
34
- ],
35
-
36
- # Notes for month ----------------------------
37
- [When::BasicTypes::M17n,
38
- "names:[month]",
39
- [When::BasicTypes::M17n,
40
- "names:[Month]",
41
- "[A=] ",
42
- "[B=] ",
43
- "[C=] ",
44
- "[D=] "
45
- ]
46
- ],
47
-
48
- # Notes for day ----------------------------
49
- [When::BasicTypes::M17n,
50
- "names:[day]",
51
- [When::BasicTypes::M17n,
52
- "names:[Week]",
53
- [DayOfWeek, "label:[Sunday, 日曜日, /date/day_names/0]", {'delta'=> 7}],
54
- [DayOfWeek, "label:[Monday, 月曜日, /date/day_names/1]", {'delta'=> 7}],
55
- [DayOfWeek, "label:[Tuesday, 火曜日, /date/day_names/2]", {'delta'=> 7}],
56
- [DayOfWeek, "label:[Wednesday, 水曜日, /date/day_names/3]", {'delta'=> 7}],
57
- [DayOfWeek, "label:[Thursday, 木曜日, /date/day_names/4]", {'delta'=> 7}],
58
- [DayOfWeek, "label:[Friday, 金曜日, /date/day_names/5]", {'delta'=> 7}],
59
- [DayOfWeek, "label:[Saturday, 土曜日, /date/day_names/6]", {'delta'=> 7}],
60
- [DayOfWeek, "label:[OutOfWeek=, 週外日=]", {'delta'=>366}]
61
- ],
62
-
63
- "[Common_Week=]"
64
- ]
65
- ]]
66
-
67
- fixed_week_definitions(7*13)
68
-
69
- end
70
-
71
- module CalendarTypes
72
- #
73
- # WorldSeason calendar based on Gregorian calendar
74
- #
75
- WorldSeason = [SolarYearTableBased, {
76
- 'label' => 'WorldSeason::WorldSeason',
77
- 'indices' => [
78
- When.Index('WorldSeasonWeekNotes::month::Month', {:unit =>4}),
79
- When::Coordinates::DefaultDayIndex
80
- ],
81
- 'engine_day' => -10, # 11th day before new year
82
- 'rule_table' => {
83
- 365 => {'Length'=>[91] * 3 + [92]},
84
- 366 => {'Length'=>[91, 92] * 2}
85
- },
86
- 'note' => 'WorldSeasonWeek'
87
- }]
88
- end
89
- end
1
+ # -*- coding: utf-8 -*-
2
+ =begin
3
+ Copyright (C) 2014-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
+ WorldSeason = [self, [
13
+ "locale:[=en:, ja=ja:, alias]",
14
+ "names:[WorldSeason=]",
15
+ "[WorldSeason=http://calendars.wikia.com/wiki/World_Season_Calendar, アシモフの季節暦=]"
16
+ ]]
17
+ end
18
+
19
+ #
20
+ # WorldSeason Week
21
+ #
22
+ class CalendarNote::WorldSeasonWeek < CalendarNote::Week
23
+
24
+ #
25
+ # WorldSeason Note
26
+ #
27
+ Notes = [When::BasicTypes::M17n, [
28
+ "locale:[=en:, ja=ja:, alias]",
29
+ "names:[WorldSeason]",
30
+
31
+ # Notes for year ----------------------------
32
+ [When::BasicTypes::M17n,
33
+ "names:[note for year=, 年の暦注=, *year]"
34
+ ],
35
+
36
+ # Notes for month ----------------------------
37
+ [When::BasicTypes::M17n,
38
+ "names:[note for month=, 月の暦注=, *month]",
39
+ [When::BasicTypes::M17n,
40
+ "names:[month name=en:Month, 月の名前=ja:%%<月_(暦)>, zh:該月的名稱=, *alias:Month=]",
41
+ "[A=] ",
42
+ "[B=] ",
43
+ "[C=] ",
44
+ "[D=] "
45
+ ]
46
+ ],
47
+
48
+ # Notes for day ----------------------------
49
+ [When::BasicTypes::M17n,
50
+ "names:[note for day=, 日の暦注=, *day]",
51
+ [When::BasicTypes::M17n,
52
+ "names:[Week, 週, zh:星期]",
53
+ [DayOfWeek, "label:[Sunday, 日曜日, /date/day_names/0]", {'delta'=> 7}],
54
+ [DayOfWeek, "label:[Monday, 月曜日, /date/day_names/1]", {'delta'=> 7}],
55
+ [DayOfWeek, "label:[Tuesday, 火曜日, /date/day_names/2]", {'delta'=> 7}],
56
+ [DayOfWeek, "label:[Wednesday, 水曜日, /date/day_names/3]", {'delta'=> 7}],
57
+ [DayOfWeek, "label:[Thursday, 木曜日, /date/day_names/4]", {'delta'=> 7}],
58
+ [DayOfWeek, "label:[Friday, 金曜日, /date/day_names/5]", {'delta'=> 7}],
59
+ [DayOfWeek, "label:[Saturday, 土曜日, /date/day_names/6]", {'delta'=> 7}],
60
+ [DayOfWeek, "label:[OutOfWeek=, 週外日=]", {'delta'=>366}]
61
+ ],
62
+
63
+ "[Common_Week=]"
64
+ ]
65
+ ]]
66
+
67
+ fixed_week_definitions(7*13)
68
+
69
+ end
70
+
71
+ module CalendarTypes
72
+ #
73
+ # WorldSeason calendar based on Gregorian calendar
74
+ #
75
+ WorldSeason = [SolarYearTableBased, {
76
+ 'label' => 'WorldSeason::WorldSeason',
77
+ 'indices' => [
78
+ When.Index('WorldSeasonWeekNotes::month::Month', {:unit =>4}),
79
+ When::Coordinates::DefaultDayIndex
80
+ ],
81
+ 'engine_day' => -10, # 11th day before new year
82
+ 'rule_table' => {
83
+ 365 => {'Length'=>[91] * 3 + [92]},
84
+ 366 => {'Length'=>[91, 92] * 2}
85
+ },
86
+ 'note' => 'WorldSeasonWeek'
87
+ }]
88
+ end
89
+ end
@@ -1,6 +1,6 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  =begin
3
- Copyright (C) 2014 Takashi SUGA
3
+ Copyright (C) 2014-2015 Takashi SUGA
4
4
 
5
5
  You may use and/or modify this file according to the license described in the LICENSE.txt file included in this archive.
6
6
  =end
@@ -18,12 +18,12 @@ module When
18
18
 
19
19
  Yerm = [self, [
20
20
  "locale:[=en:, ja]",
21
- "names:[Yerm=]",
21
+ "names:[Karl Palmen's Yerm Lunar Calednar=, Karl Palmen のヤーム暦=, *Yerm=]",
22
22
  "[YermLunar=http://calendars.wikia.com/wiki/Yerm_Lunar_Calendar, ヤーム=]",
23
23
 
24
24
  [Coordinates::Residue, "label:[yerm=]", "divisor:52", "year:0", "format:[%s=]"] +
25
25
  (1..52).to_a.map {|y| [Coordinates::Residue, "label:[Yerm #{y}=]", "remainder:#{y-1}"]},
26
- [self, "names:[month]"] + (1..17).to_a.map {|m| "Month #{m}"},
26
+ [self, "names:[month number=en:Month, 月の番号=ja:%%<月_(暦)>, zh:該月的數=, *alias:month=]"] + (1..17).to_a.map {|m| "Month #{m}"},
27
27
  [self, "names:[night]"] + (1..30).to_a.map {|m| "Night #{m}"}
28
28
  ]]
29
29
  end
@@ -1,205 +1,205 @@
1
- # -*- coding: utf-8 -*-
2
- =begin
3
- Copyright (C) 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
- =begin
9
-
10
- References
11
-
12
- (1) http://en.wikipedia.org/wiki/Zoroastrian_calendar
13
- (2) http://www.moonwise.co.uk/year/1375zoroastrian.htm
14
- (3) http://www.zoroastrian.org/articles/nowruz.htm
15
-
16
- =end
17
-
18
- module When
19
- class BasicTypes::M17n
20
-
21
- Zoroastrian = [self, [
22
- "locale:[=en:, ja=ja:, ar=ar:, alias=ja:]",
23
- "names:[Zoroastrian=]",
24
- "[Zoroastrian=en:Zoroastrian_calendar#The_reckoning_of_years, ゾロアスター暦=]",
25
- "[Qadimi=en:Zoroastrian_calendar#The_Qadimi_calendar , カディミ暦= ]",
26
- "[Shahanshahi=en:Zoroastrian_calendar#The_Shahanshahi_calendar, 諸王の王の暦= ]",
27
- "[Fasli=en:Zoroastrian_calendar#The_Fasli_calendar , ファスリ暦= ]"
28
- ]]
29
- end
30
-
31
- #
32
- # ゾロアスター暦の暦注
33
- #
34
- class CalendarNote::Zoroastrian < CalendarNote
35
-
36
- Notes = [When::BasicTypes::M17n, [
37
- "locale:[=en:]",
38
- "names:[Zoroastrian]",
39
-
40
- # 年の暦注 ----------------------------
41
- [When::BasicTypes::M17n,
42
- "names:[year]",
43
- ],
44
-
45
- # 月の暦注 ----------------------------
46
- [When::BasicTypes::M17n,
47
- "names:[month]",
48
- [When::BasicTypes::M17n,
49
- "names:[Month]",
50
- "[Fravardin= ]",
51
- "[Ardibehest= ]",
52
- "[Khordad= ]",
53
- "[Tir= ]",
54
- "[Amardad= ]",
55
- "[Shehrevar= ]",
56
- "[Meher= ]",
57
- "[Avan= ]",
58
- "[Adar= ]",
59
- "[Dae= ]",
60
- "[Bahman= ]",
61
- "[Aspandarmad= ]",
62
- "[Gatha Days= ]"
63
- ]
64
- ],
65
-
66
- # 日の暦注 ----------------------------
67
- [When::BasicTypes::M17n,
68
- "names:[day]",
69
- [When::BasicTypes::M17n,
70
- "names:[divinity]",
71
- "[Hormazd= ]", # 01
72
- "[Bahman= ]", # 02
73
- "[Ardibehest= ]", # 03
74
- "[Shehrevar= ]", # 04
75
- "[Aspandarmad= ]", # 05
76
- "[Khordad= ]", # 06
77
- "[Amardad= ]", # 07
78
- "[Daepadar= ]", # 08
79
- "[Adar= ]", # 09
80
- "[Avan= ]", # 10
81
- "[Khorshed= ]", # 11
82
- "[Mohor= ]", # 12
83
- "[Tir= ]", # 13
84
- "[Gosh= ]", # 14
85
- "[Daepmeher= ]", # 15
86
- "[Meher= ]", # 16
87
- "[Srosh= ]", # 17
88
- "[Rashne= ]", # 18
89
- "[Fravardin= ]", # 19
90
- "[Behram= ]", # 20
91
- "[Ram= ]", # 21
92
- "[Govad= ]", # 22
93
- "[Daepdin= ]", # 23
94
- "[Din= ]", # 24
95
- "[Ashishvangh= ]", # 25
96
- "[Ashtad= ]", # 26
97
- "[Asman= ]", # 27
98
- "[Zamyad= ]", # 28
99
- "[Mahrespand= ]", # 29
100
- "[Aneran= ]", # 30
101
- "[Ahunavad= ]", # 31
102
- "[Ushtavad= ]", # 32
103
- "[Spentomad= ]", # 33
104
- "[Vohukhshathra= ]", # 34
105
- "[Vahishtoist= ]", # 35
106
- "[intercalary day=]" # 36
107
- ]
108
- ]
109
- ]]
110
-
111
- # 暦注 - 日の名前
112
- #
113
- # @param [When::TM::CalDate] date
114
- #
115
- # @return [String]
116
- #
117
- def divinity(date)
118
- y, m, d = date.cal_date
119
- When.CalendarNote('Zoroastrian/Notes::day::divinity::*')[m <= 12 ? d-1 : d+29]
120
- end
121
- end
122
-
123
- module CalendarTypes
124
-
125
- #
126
- # Zoroastrian Calendar
127
- #
128
- Zoroastrian = [CyclicTableBased, {
129
- 'label' => 'Zoroastrian::Zoroastrian',
130
- 'indices' => [
131
- When.Index('ZoroastrianNotes::month::Month', {:unit =>13}),
132
- When::Coordinates::DefaultDayIndex
133
- ],
134
- 'origin_of_MSC' => 1,
135
- 'origin_of_LSC' => 1952063 + 5 - 365 * 1020,
136
- 'epoch_in_CE' => 31,
137
- 'rule_table' => {
138
- 'T' => {'Rule' =>[365]},
139
- 365 => {'Length'=>[30]*12+[5]}
140
- },
141
- 'note' => 'Zoroastrian'
142
- }]
143
-
144
- #
145
- # Qadimi Calendar
146
- #
147
- Qadimi = [CyclicTableBased, {
148
- 'label' => 'Zoroastrian::Qadimi',
149
- 'indices' => [
150
- When.Index('ZoroastrianNotes::month::Month', {:unit =>13}),
151
- When::Coordinates::DefaultDayIndex
152
- ],
153
- 'origin_of_MSC' => 1,
154
- 'origin_of_LSC' => 1952063,
155
- 'epoch_in_CE' => 31,
156
- 'rule_table' => {
157
- 'T' => {'Rule' =>[365]},
158
- 365 => {'Length'=>[30]*12+[5]}
159
- },
160
- 'note' => 'Zoroastrian'
161
- }]
162
-
163
- #
164
- # Shahanshahi Calendar
165
- #
166
- Shahanshahi = [CyclicTableBased, {
167
- 'label' => 'Zoroastrian::Shahanshahi',
168
- 'indices' => [
169
- When.Index('ZoroastrianNotes::month::Month', {:unit =>13}),
170
- When::Coordinates::DefaultDayIndex
171
- ],
172
- 'origin_of_MSC' => 1,
173
- 'origin_of_LSC' => 1952063 + 30,
174
- 'epoch_in_CE' => 31,
175
- 'rule_table' => {
176
- 'T' => {'Rule' =>[365]},
177
- 365 => {'Length'=>[30]*12+[5]}
178
- },
179
- 'note' => 'Zoroastrian'
180
- }]
181
-
182
- #
183
- # Fasli Calendar
184
- #
185
- Fasli = [{'Epoch'=>{
186
- 'ZRE'=>{'origin_of_MSC'=>1737},
187
- 'YZ' =>{'origin_of_MSC'=>-630}
188
- }}, SolarYearTableBasedWithSunset, {
189
- 'label' => 'Zoroastrian::Fasli',
190
- 'indices' => [
191
- When.Index('ZoroastrianNotes::month::Month', {:unit =>13}),
192
- When::Coordinates::DefaultDayIndex
193
- ],
194
- 'origin_of_MSC' => -630,
195
- 'diff_to_CE' => 0,
196
- 'engine_month' => 3,
197
- 'engine_day' => 21,
198
- 'rule_table' => {
199
- 365 => {'Length'=>[30] * 12 + [5]},
200
- 366 => {'Length'=>[30] * 12 + [6]}
201
- },
202
- 'note' => 'Zoroastrian'
203
- }]
204
- end
205
- end
1
+ # -*- coding: utf-8 -*-
2
+ =begin
3
+ Copyright (C) 2014-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
+ =begin
9
+
10
+ References
11
+
12
+ (1) http://en.wikipedia.org/wiki/Zoroastrian_calendar
13
+ (2) http://www.moonwise.co.uk/year/1375zoroastrian.htm
14
+ (3) http://www.zoroastrian.org/articles/nowruz.htm
15
+
16
+ =end
17
+
18
+ module When
19
+ class BasicTypes::M17n
20
+
21
+ Zoroastrian = [self, [
22
+ "locale:[=en:, ja=ja:, zh=zh:, alias=ja:]",
23
+ "names:[Zoroastrian=en:Zoroastrian_calendar, ゾロアスター暦=, 瑣羅亞斯德曆=]",
24
+ "[Zoroastrian=en:Zoroastrian_calendar#The_reckoning_of_years, ゾロアスター暦=, 瑣羅亞斯德曆=]",
25
+ "[Qadimi=en:Zoroastrian_calendar#The_Qadimi_calendar, カディミ暦= ]",
26
+ "[Shahanshahi=en:Zoroastrian_calendar#The_Shahanshahi_calendar, 諸王の王の暦=, 王里面王曆=]",
27
+ "[Fasli=en:Zoroastrian_calendar#The_Fasli_calendar, ファスリ暦= ]"
28
+ ]]
29
+ end
30
+
31
+ #
32
+ # ゾロアスター暦の暦注
33
+ #
34
+ class CalendarNote::Zoroastrian < CalendarNote
35
+
36
+ Notes = [When::BasicTypes::M17n, [
37
+ "locale:[=en:, ja=ja:, alias]",
38
+ "names:[Zoroastrian]",
39
+
40
+ # 年の暦注 ----------------------------
41
+ [When::BasicTypes::M17n,
42
+ "names:[note for year=, 年の暦注=, *year]",
43
+ ],
44
+
45
+ # 月の暦注 ----------------------------
46
+ [When::BasicTypes::M17n,
47
+ "names:[note for month=, 月の暦注=, *month]",
48
+ [When::BasicTypes::M17n,
49
+ "names:[month name=en:Month, 月の名前=ja:%%<月_(暦)>, zh:該月的名稱=, *alias:Month=]",
50
+ "[Fravardin= ]",
51
+ "[Ardibehest= ]",
52
+ "[Khordad= ]",
53
+ "[Tir= ]",
54
+ "[Amardad= ]",
55
+ "[Shehrevar= ]",
56
+ "[Meher= ]",
57
+ "[Avan= ]",
58
+ "[Adar= ]",
59
+ "[Dae= ]",
60
+ "[Bahman= ]",
61
+ "[Aspandarmad= ]",
62
+ "[Gatha Days= ]"
63
+ ]
64
+ ],
65
+
66
+ # 日の暦注 ----------------------------
67
+ [When::BasicTypes::M17n,
68
+ "names:[note for day=, 日の暦注=, *day]",
69
+ [When::BasicTypes::M17n,
70
+ "names:[divinity]",
71
+ "[Hormazd= ]", # 01
72
+ "[Bahman= ]", # 02
73
+ "[Ardibehest= ]", # 03
74
+ "[Shehrevar= ]", # 04
75
+ "[Aspandarmad= ]", # 05
76
+ "[Khordad= ]", # 06
77
+ "[Amardad= ]", # 07
78
+ "[Daepadar= ]", # 08
79
+ "[Adar= ]", # 09
80
+ "[Avan= ]", # 10
81
+ "[Khorshed= ]", # 11
82
+ "[Mohor= ]", # 12
83
+ "[Tir= ]", # 13
84
+ "[Gosh= ]", # 14
85
+ "[Daepmeher= ]", # 15
86
+ "[Meher= ]", # 16
87
+ "[Srosh= ]", # 17
88
+ "[Rashne= ]", # 18
89
+ "[Fravardin= ]", # 19
90
+ "[Behram= ]", # 20
91
+ "[Ram= ]", # 21
92
+ "[Govad= ]", # 22
93
+ "[Daepdin= ]", # 23
94
+ "[Din= ]", # 24
95
+ "[Ashishvangh= ]", # 25
96
+ "[Ashtad= ]", # 26
97
+ "[Asman= ]", # 27
98
+ "[Zamyad= ]", # 28
99
+ "[Mahrespand= ]", # 29
100
+ "[Aneran= ]", # 30
101
+ "[Ahunavad= ]", # 31
102
+ "[Ushtavad= ]", # 32
103
+ "[Spentomad= ]", # 33
104
+ "[Vohukhshathra= ]", # 34
105
+ "[Vahishtoist= ]", # 35
106
+ "[intercalary day=]" # 36
107
+ ]
108
+ ]
109
+ ]]
110
+
111
+ # 暦注 - 日の名前
112
+ #
113
+ # @param [When::TM::CalDate] date
114
+ #
115
+ # @return [String]
116
+ #
117
+ def divinity(date)
118
+ y, m, d = date.cal_date
119
+ When.CalendarNote('Zoroastrian/Notes::day::divinity::*')[m <= 12 ? d-1 : d+29]
120
+ end
121
+ end
122
+
123
+ module CalendarTypes
124
+
125
+ #
126
+ # Zoroastrian Calendar
127
+ #
128
+ Zoroastrian = [CyclicTableBased, {
129
+ 'label' => 'Zoroastrian::Zoroastrian',
130
+ 'indices' => [
131
+ When.Index('ZoroastrianNotes::month::Month', {:unit =>13}),
132
+ When::Coordinates::DefaultDayIndex
133
+ ],
134
+ 'origin_of_MSC' => 1,
135
+ 'origin_of_LSC' => 1952063 + 5 - 365 * 1020,
136
+ 'epoch_in_CE' => 31,
137
+ 'rule_table' => {
138
+ 'T' => {'Rule' =>[365]},
139
+ 365 => {'Length'=>[30]*12+[5]}
140
+ },
141
+ 'note' => 'Zoroastrian'
142
+ }]
143
+
144
+ #
145
+ # Qadimi Calendar
146
+ #
147
+ Qadimi = [CyclicTableBased, {
148
+ 'label' => 'Zoroastrian::Qadimi',
149
+ 'indices' => [
150
+ When.Index('ZoroastrianNotes::month::Month', {:unit =>13}),
151
+ When::Coordinates::DefaultDayIndex
152
+ ],
153
+ 'origin_of_MSC' => 1,
154
+ 'origin_of_LSC' => 1952063,
155
+ 'epoch_in_CE' => 31,
156
+ 'rule_table' => {
157
+ 'T' => {'Rule' =>[365]},
158
+ 365 => {'Length'=>[30]*12+[5]}
159
+ },
160
+ 'note' => 'Zoroastrian'
161
+ }]
162
+
163
+ #
164
+ # Shahanshahi Calendar
165
+ #
166
+ Shahanshahi = [CyclicTableBased, {
167
+ 'label' => 'Zoroastrian::Shahanshahi',
168
+ 'indices' => [
169
+ When.Index('ZoroastrianNotes::month::Month', {:unit =>13}),
170
+ When::Coordinates::DefaultDayIndex
171
+ ],
172
+ 'origin_of_MSC' => 1,
173
+ 'origin_of_LSC' => 1952063 + 30,
174
+ 'epoch_in_CE' => 31,
175
+ 'rule_table' => {
176
+ 'T' => {'Rule' =>[365]},
177
+ 365 => {'Length'=>[30]*12+[5]}
178
+ },
179
+ 'note' => 'Zoroastrian'
180
+ }]
181
+
182
+ #
183
+ # Fasli Calendar
184
+ #
185
+ Fasli = [{'Epoch'=>{
186
+ 'ZRE'=>{'origin_of_MSC'=>1737},
187
+ 'YZ' =>{'origin_of_MSC'=>-630}
188
+ }}, SolarYearTableBasedWithSunset, {
189
+ 'label' => 'Zoroastrian::Fasli',
190
+ 'indices' => [
191
+ When.Index('ZoroastrianNotes::month::Month', {:unit =>13}),
192
+ When::Coordinates::DefaultDayIndex
193
+ ],
194
+ 'origin_of_MSC' => -630,
195
+ 'diff_to_CE' => 0,
196
+ 'engine_month' => 3,
197
+ 'engine_day' => 21,
198
+ 'rule_table' => {
199
+ 365 => {'Length'=>[30] * 12 + [5]},
200
+ 366 => {'Length'=>[30] * 12 + [6]}
201
+ },
202
+ 'note' => 'Zoroastrian'
203
+ }]
204
+ end
205
+ end