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,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