when_exe 0.2.100 → 0.3.1

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 (193) hide show
  1. data/LICENSE.ja.txt +25 -25
  2. data/LICENSE.txt +31 -31
  3. data/bin/irb.rc +5 -0
  4. data/bin/locales.rb +2 -2
  5. data/bin/when.rb +16 -0
  6. data/bin/when.rb.config +7 -0
  7. data/lib/when_exe.rb +616 -14
  8. data/lib/when_exe/basictypes.rb +615 -0
  9. data/lib/when_exe/calendartypes.rb +1700 -0
  10. data/lib/when_exe/coordinates.rb +1936 -0
  11. data/lib/when_exe/core/compatibility.rb +54 -0
  12. data/lib/when_exe/core/duration.rb +72 -72
  13. data/lib/when_exe/core/extension.rb +382 -0
  14. data/lib/when_exe/ephemeris.rb +1845 -0
  15. data/lib/when_exe/googlecalendar.rb +140 -0
  16. data/lib/when_exe/icalendar.rb +1587 -0
  17. data/lib/when_exe/inspect.rb +1237 -0
  18. data/lib/when_exe/locales/af.rb +90 -0
  19. data/lib/when_exe/locales/ar.rb +145 -0
  20. data/lib/when_exe/locales/az.rb +90 -0
  21. data/lib/when_exe/locales/bg.rb +90 -0
  22. data/lib/when_exe/locales/bn.rb +94 -0
  23. data/lib/when_exe/locales/bs.rb +121 -0
  24. data/lib/when_exe/locales/ca.rb +92 -0
  25. data/lib/when_exe/locales/cs.rb +107 -0
  26. data/lib/when_exe/locales/cy.rb +150 -0
  27. data/lib/when_exe/locales/da.rb +84 -0
  28. data/lib/when_exe/locales/de.rb +92 -0
  29. data/lib/when_exe/locales/de_AT.rb +92 -0
  30. data/lib/when_exe/locales/de_CH.rb +92 -0
  31. data/lib/when_exe/locales/el.rb +93 -0
  32. data/lib/when_exe/locales/en.rb +88 -0
  33. data/lib/when_exe/locales/en_AU.rb +88 -0
  34. data/lib/when_exe/locales/en_CA.rb +88 -0
  35. data/lib/when_exe/locales/en_GB.rb +88 -0
  36. data/lib/when_exe/locales/en_IN.rb +88 -0
  37. data/lib/when_exe/locales/en_NZ.rb +88 -0
  38. data/lib/when_exe/locales/eo.rb +89 -0
  39. data/lib/when_exe/locales/es.rb +84 -0
  40. data/lib/when_exe/locales/es_419.rb +84 -0
  41. data/lib/when_exe/locales/es_AR.rb +84 -0
  42. data/lib/when_exe/locales/es_CL.rb +84 -0
  43. data/lib/when_exe/locales/es_CO.rb +84 -0
  44. data/lib/when_exe/locales/es_MX.rb +84 -0
  45. data/lib/when_exe/locales/es_PE.rb +85 -0
  46. data/lib/when_exe/locales/es_VE.rb +84 -0
  47. data/lib/when_exe/locales/et.rb +94 -0
  48. data/lib/when_exe/locales/eu.rb +95 -0
  49. data/lib/when_exe/locales/fa.rb +80 -0
  50. data/lib/when_exe/locales/fi.rb +89 -0
  51. data/lib/when_exe/locales/fr.rb +88 -0
  52. data/lib/when_exe/locales/fr_CA.rb +88 -0
  53. data/lib/when_exe/locales/fr_CH.rb +88 -0
  54. data/lib/when_exe/locales/gl.rb +81 -0
  55. data/lib/when_exe/locales/he.rb +84 -0
  56. data/lib/when_exe/locales/hi.rb +80 -0
  57. data/lib/when_exe/locales/hi_IN.rb +84 -0
  58. data/lib/when_exe/locales/hr.rb +128 -0
  59. data/lib/when_exe/locales/hu.rb +84 -0
  60. data/lib/when_exe/locales/id.rb +89 -0
  61. data/lib/when_exe/locales/is.rb +89 -0
  62. data/lib/when_exe/locales/it.rb +87 -0
  63. data/lib/when_exe/locales/it_CH.rb +87 -0
  64. data/lib/when_exe/locales/ja.rb +78 -0
  65. data/lib/when_exe/locales/kn.rb +86 -0
  66. data/lib/when_exe/locales/ko.rb +78 -0
  67. data/lib/when_exe/locales/links.rb +2342 -0
  68. data/lib/when_exe/locales/lo.rb +123 -0
  69. data/lib/when_exe/locales/locales.rb +91 -0
  70. data/lib/when_exe/locales/lt.rb +111 -0
  71. data/lib/when_exe/locales/lv.rb +118 -0
  72. data/lib/when_exe/locales/mk.rb +93 -0
  73. data/lib/when_exe/locales/mn.rb +80 -0
  74. data/lib/when_exe/locales/nb.rb +81 -0
  75. data/lib/when_exe/locales/ne.rb +81 -0
  76. data/lib/when_exe/locales/nl.rb +92 -0
  77. data/lib/when_exe/locales/nn.rb +73 -0
  78. data/lib/when_exe/locales/or.rb +84 -0
  79. data/lib/when_exe/locales/pl.rb +128 -0
  80. data/lib/when_exe/locales/pt.rb +88 -0
  81. data/lib/when_exe/locales/pt_BR.rb +88 -0
  82. data/lib/when_exe/locales/rm.rb +143 -0
  83. data/lib/when_exe/locales/ro.rb +105 -0
  84. data/lib/when_exe/locales/ru.rb +128 -0
  85. data/lib/when_exe/locales/sk.rb +109 -0
  86. data/lib/when_exe/locales/sl.rb +122 -0
  87. data/lib/when_exe/locales/sr.rb +122 -0
  88. data/lib/when_exe/locales/sv.rb +83 -0
  89. data/lib/when_exe/locales/sw.rb +89 -0
  90. data/lib/when_exe/locales/th.rb +78 -0
  91. data/lib/when_exe/locales/tl.rb +99 -0
  92. data/lib/when_exe/locales/tr.rb +96 -0
  93. data/lib/when_exe/locales/uk.rb +128 -0
  94. data/lib/when_exe/locales/uz.rb +128 -0
  95. data/lib/when_exe/locales/vi.rb +94 -0
  96. data/lib/when_exe/locales/wo.rb +82 -0
  97. data/lib/when_exe/locales/zh_CN.rb +77 -0
  98. data/lib/when_exe/locales/zh_HK.rb +77 -0
  99. data/lib/when_exe/locales/zh_TW.rb +77 -0
  100. data/lib/when_exe/mini_application.rb +252 -0
  101. data/lib/when_exe/parts/enumerator.rb +472 -0
  102. data/lib/when_exe/parts/geometric_complex.rb +379 -0
  103. data/lib/when_exe/parts/locale.rb +513 -0
  104. data/lib/when_exe/parts/method_cash.rb +207 -0
  105. data/lib/when_exe/parts/resource.rb +806 -0
  106. data/lib/when_exe/parts/timezone.rb +182 -0
  107. data/lib/when_exe/region/bahai.rb +145 -0
  108. data/lib/when_exe/region/balinese.rb +627 -0
  109. data/lib/when_exe/region/chinese.rb +896 -0
  110. data/lib/when_exe/region/chinese_calendar.rb +919 -0
  111. data/lib/when_exe/region/chinese_epoch.rb +1245 -0
  112. data/lib/when_exe/region/christian.rb +644 -0
  113. data/lib/when_exe/region/far_east.rb +192 -0
  114. data/lib/when_exe/region/french.rb +66 -0
  115. data/lib/when_exe/region/geologicalage.rb +639 -0
  116. data/lib/when_exe/region/indian.rb +1066 -0
  117. data/lib/when_exe/region/iranian.rb +66 -0
  118. data/lib/when_exe/region/islamic.rb +105 -0
  119. data/lib/when_exe/region/japanese.rb +851 -0
  120. data/lib/when_exe/region/japanese_notes.rb +964 -0
  121. data/lib/when_exe/region/japanese_residues.rb +1149 -0
  122. data/lib/when_exe/region/javanese.rb +228 -0
  123. data/lib/when_exe/region/jewish.rb +127 -0
  124. data/lib/when_exe/region/korean.rb +267 -0
  125. data/lib/when_exe/region/m17n.rb +115 -0
  126. data/lib/when_exe/region/martian.rb +215 -0
  127. data/lib/when_exe/region/mayan.rb +122 -0
  128. data/lib/when_exe/region/moon.rb +333 -0
  129. data/lib/when_exe/region/nihon_shoki.rb +73 -0
  130. data/lib/when_exe/region/planets.rb +585 -0
  131. data/lib/when_exe/region/pope.rb +298 -0
  132. data/lib/when_exe/region/residue.rb +229 -0
  133. data/lib/when_exe/region/roman.rb +325 -0
  134. data/lib/when_exe/region/ryukyu.rb +98 -0
  135. data/lib/when_exe/region/shire.rb +254 -0
  136. data/lib/when_exe/region/sun.rb +210 -0
  137. data/lib/when_exe/region/thai.rb +227 -0
  138. data/lib/when_exe/region/tibetan.rb +233 -0
  139. data/lib/when_exe/region/v50.rb +111 -0
  140. data/lib/when_exe/region/vietnamese.rb +173 -0
  141. data/lib/when_exe/region/world.rb +197 -0
  142. data/lib/when_exe/timestandard.rb +547 -0
  143. data/lib/when_exe/tmduration.rb +330 -330
  144. data/lib/when_exe/tmobjects.rb +1295 -0
  145. data/lib/when_exe/tmposition.rb +1955 -0
  146. data/lib/when_exe/tmreference.rb +1547 -0
  147. data/lib/when_exe/version.rb +10 -3
  148. data/link_to_online_documents +4 -0
  149. data/test/examples/JapanHolidays.ics +456 -0
  150. data/test/examples/Millennium.ics +17 -0
  151. data/test/examples/NewYork.ics +61 -0
  152. data/test/examples/Residue.m17n +135 -0
  153. data/test/examples/Spatial.m17n +179 -0
  154. data/test/examples/Terms.m17n +39 -0
  155. data/test/examples/Test.ics +53 -0
  156. data/test/examples/USA-DST.ics +61 -0
  157. data/test/examples/geometric_complex.rb +41 -0
  158. data/test/examples/sample.xml +14 -0
  159. data/test/examples/today.rb +61 -0
  160. data/test/test.rb +54 -19
  161. data/test/test.rb.config +1 -0
  162. data/test/test/basictypes.rb +368 -0
  163. data/test/test/calendartypes.rb +57 -0
  164. data/test/test/coordinates.rb +380 -0
  165. data/test/test/ephemeris.rb +127 -0
  166. data/test/test/googlecalendar.rb +167 -0
  167. data/test/test/icalendar.rb +848 -0
  168. data/test/test/inspect.rb +115 -0
  169. data/test/test/parts.rb +480 -0
  170. data/test/test/region/chinese.rb +161 -0
  171. data/test/test/region/french.rb +33 -0
  172. data/test/test/region/geologicalage.rb +14 -0
  173. data/test/test/region/indian.rb +55 -0
  174. data/test/test/region/iran.rb +54 -0
  175. data/test/test/region/islamic.rb +18 -0
  176. data/test/test/region/japanese.rb +62 -0
  177. data/test/test/region/jewish.rb +61 -0
  178. data/test/test/region/m17n.rb +181 -0
  179. data/test/test/region/mayan.rb +78 -0
  180. data/test/test/region/moon.rb +14 -0
  181. data/test/test/region/planets.rb +14 -0
  182. data/test/test/region/residue.rb +123 -0
  183. data/test/test/region/sun.rb +14 -0
  184. data/test/test/region/thai.rb +94 -0
  185. data/test/test/region/tibetan.rb +30 -0
  186. data/test/test/tmobjects.rb +356 -57
  187. data/test/test/tmposition.rb +237 -0
  188. data/test/test/tmreference.rb +95 -0
  189. data/when_exe.gemspec +2 -2
  190. metadata +187 -7
  191. data/doc/COPYING +0 -31
  192. data/doc/COPYING.ja +0 -25
  193. data/doc/document_url +0 -1
@@ -0,0 +1,115 @@
1
+ # -*- coding: utf-8 -*-
2
+ =begin
3
+ Copyright (C) 2011-2013 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
+ module BasicTypes
10
+ class M17n
11
+ #
12
+ # 月名
13
+ #
14
+ # @param [Numeric] name 指定の月番号の月名を返します
15
+ # @param [When::BasicTypes::M17n] name name 自身をそのまま返します
16
+ # @param [String] name 最初の3文字から決定した月名を返します。
17
+ # 一致する月名がない場合、名前の一致するその他のM17nを探して返します。
18
+ #
19
+ # @return [When::BasicTypes::M17n] 月名
20
+ #
21
+ def self.month_name(name)
22
+ return name if name.kind_of?(self)
23
+
24
+ months = When.Resource('_m:CalendarTerms::Month').child
25
+ abbrs = When.Resource('_m:CalendarTerms::Abbr_Month').child
26
+ return name > 0 ? months[name-1] : abbrs[-name-1] if name.kind_of?(Numeric)
27
+
28
+ match = name[/^...|^..$/]
29
+ if match
30
+ (months+abbrs).each do |month|
31
+ return month if month.=~(/^#{match}/i)
32
+ end
33
+ end
34
+
35
+ ObjectSpace.each_object(self) do |object|
36
+ return object if object.registered? && object.=~(/^#{name}$/)
37
+ end
38
+
39
+ return nil
40
+ end
41
+
42
+ Namespace = "[ja=http://ja.wikipedia.org/wiki/, en=http://en.wikipedia.org/wiki/]"
43
+ Locale = "[=ja:, en=en:]"
44
+
45
+ # Terms
46
+ CalendarTerms = [M17n, [
47
+ "namespace:[en=http://en.wikipedia.org/wiki/, ja=http://ja.wikipedia.org/wiki/]",
48
+ "locale:[=en:, ja=ja:, alias]",
49
+ "names:[CalendarTerms]",
50
+
51
+ "[Intercalary %s=, *閏]",
52
+
53
+ [M17n,
54
+ "names:[Month, 月=ja:%E6%9C%88_(%E6%9A%A6), /datetime/prompts/month]",
55
+ "[January, 1月, /date/month_names/1] ",
56
+ "[February, 2月, /date/month_names/2] ",
57
+ "[March, 3月, /date/month_names/3] ",
58
+ "[April, 4月, /date/month_names/4] ",
59
+ "[May, 5月, /date/month_names/5] ",
60
+ "[June, 6月, /date/month_names/6] ",
61
+ "[July, 7月, /date/month_names/7] ",
62
+ "[August, 8月, /date/month_names/8] ",
63
+ "[September, 9月, /date/month_names/9] ",
64
+ "[October, 10月, /date/month_names/10]",
65
+ "[November, 11月, /date/month_names/11]",
66
+ "[December, 12月, /date/month_names/12]"
67
+ ],
68
+
69
+ [M17n,
70
+ "names:[Abbr_Month, 月略称)]",
71
+ "[Jan, 1月, /date/abbr_month_names/1] ",
72
+ "[Feb, 2月, /date/abbr_month_names/2] ",
73
+ "[Mar, 3月, /date/abbr_month_names/3] ",
74
+ "[Apr, 4月, /date/abbr_month_names/4] ",
75
+ "[May, 5月, /date/abbr_month_names/5] ",
76
+ "[Jun, 6月, /date/abbr_month_names/6] ",
77
+ "[Jul, 7月, /date/abbr_month_names/7] ",
78
+ "[Aug, 8月, /date/abbr_month_names/8] ",
79
+ "[Sep, 9月, /date/abbr_month_names/9] ",
80
+ "[Oct, 10月, /date/abbr_month_names/10]",
81
+ "[Nov, 11月, /date/abbr_month_names/11]",
82
+ "[Dec, 12月, /date/abbr_month_names/12]"
83
+ ]
84
+ ]]
85
+
86
+ # Events
87
+ EpochEvents = [M17n, [
88
+ "namespace:[en=http://en.wikipedia.org/wiki/, ja=http://ja.wikipedia.org/wiki/]",
89
+ "locale:[=en:, ja=ja:, alias]",
90
+ "names:[EpochEvents]",
91
+ "[Accession, 代始]",
92
+ "[FelicitousEvent, 祥瑞]",
93
+ "[NaturalDisaster, 災異]",
94
+ "[InauspiciousYear, 革年]",
95
+ "[Foundation, 創業]",
96
+ "[CalendarReform, 改暦]"
97
+ ]]
98
+
99
+ # Formats
100
+ CalendarFormats = [M17n, [
101
+ "locale:[=]",
102
+ "names:[CalendarFormats]",
103
+ "[Date, /date/formats/default]",
104
+ "[DateLong, /date/formats/long ]",
105
+ "[DateShort, /date/formats/short ]",
106
+ "[DateTime, /time/formats/default]",
107
+ "[DateTimeLong, /time/formats/long ]",
108
+ "[DateTimeShort, /time/formats/short ]",
109
+ "[Time, /time/formats/time ]",
110
+ "[AM, /time/am ]",
111
+ "[PM, /time/pm ]"
112
+ ]]
113
+ end
114
+ end
115
+ end
@@ -0,0 +1,215 @@
1
+ # -*- coding: utf-8 -*-
2
+ =begin
3
+ Copyright (C) 2013 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
+ MartianTerms = [self, [
13
+ "namespace:[en=http://en.wikipedia.org/wiki/, ja=http://ja.wikipedia.org/wiki/]",
14
+ "locale:[=en:, ja=ja:, alias]",
15
+ "names:[MartianTerms]",
16
+ "[Darian=en:Darian_calendar, ダリアン暦]",
17
+
18
+ [self,
19
+ "names:[DarianMonth=, 月=ja:%E6%9C%88_(%E6%9A%A6)]",
20
+ "[Sagittarius, いて= ]",
21
+ "[Dhanus=, 人馬= ]",
22
+ "[Capricornus, やぎ= ]",
23
+ "[Makara=, 磨羯= ]",
24
+ "[Aquarius, みずがめ=]",
25
+ "[Kumbha=, 宝瓶= ]",
26
+ "[Pisces, うお= ]",
27
+ "[Mina=, 双魚= ]",
28
+ "[Aries, おひつじ=]",
29
+ "[Mesha=, 白羊= ]",
30
+ "[Taurus, おうし= ]",
31
+ "[Rishabha=, 金牛= ]",
32
+ "[Gemini, ふたご= ]",
33
+ "[Mithuna=, 双児= ]",
34
+ "[Cancer, かに= ]",
35
+ "[Karka=, 巨蟹= ]",
36
+ "[Leo, しし= ]",
37
+ "[Simha=, 獅子= ]",
38
+ "[Virgo, おとめ= ]",
39
+ "[Kanya=, 処女= ]",
40
+ "[Libra, てんびん=]",
41
+ "[Tula=, 天秤= ]",
42
+ "[Scorpius, さそり= ]",
43
+ "[Vrishika=, 天蠍= ]"
44
+ ]
45
+ ]]
46
+ end
47
+
48
+ module TimeStandard
49
+
50
+ #
51
+ # Martian Time, Coordinated
52
+ #
53
+ class MartianTimeCoordinated < TimeStandard
54
+
55
+ J2000Jan6 = 2451549.5
56
+ Ratio = 1.02749125
57
+ MTC0 = 44796.0 - 0.0002 - 0.5
58
+
59
+ # 当該時刻系の日付を dynamical date に変換する
60
+ #
61
+ # @param [Numeric] date 当該時刻系の日付
62
+ #
63
+ # @return [Numeric] dynamical date
64
+ #
65
+ def to_dynamical_date(date)
66
+ (date - MTC0) * Ratio + J2000Jan6
67
+ end
68
+
69
+ # dynamical date を当該時刻系の日付に変換する
70
+ #
71
+ # @param [Numeric] date dynamical date
72
+ #
73
+ # @return [Numeric] 当該時刻系の日付
74
+ #
75
+ def from_dynamical_date(date)
76
+ (date - J2000Jan6) / Ratio + MTC0
77
+ end
78
+
79
+ # universal time を dynamical time に変換する
80
+ #
81
+ # @param [Numeric] time universal time
82
+ #
83
+ # @return [Numeric] dynamical time
84
+ #
85
+ def to_dynamical_time(time)
86
+ When::TM::JulianDate._d_to_t(
87
+ to_dynamical_date(
88
+ When::TM::JulianDate._t_to_d(time)))
89
+ end
90
+
91
+ # dynamical time を universal time に変換する
92
+ #
93
+ # @param [Numeric] time dynamical time
94
+ #
95
+ # @return [Numeric] universal time
96
+ #
97
+ def from_dynamical_time(time)
98
+ When::TM::JulianDate._d_to_t(
99
+ from_dynamical_date(
100
+ When::TM::JulianDate._t_to_d(time)))
101
+ end
102
+ end
103
+ end
104
+
105
+ module CalendarTypes
106
+
107
+ #
108
+ # Darian Week
109
+ #
110
+ class CalendarNote::DarianWeek < CalendarNote::WorldWeek
111
+
112
+ NoteObjects = [When::BasicTypes::M17n, [
113
+ "namespace:[en=http://en.wikipedia.org/wiki/, ja=http://ja.wikipedia.org/wiki/]",
114
+ "locale:[=en:, ja=ja:, alias]",
115
+ "names:[Darian]",
116
+
117
+ # 年の暦注 ----------------------------
118
+ [When::BasicTypes::M17n,
119
+ "names:[year]"
120
+ ],
121
+
122
+ # 月の暦注 ----------------------------
123
+ [When::BasicTypes::M17n,
124
+ "names:[month]",
125
+ [When::BasicTypes::M17n,
126
+ "names:[Month]"
127
+ ]
128
+ ],
129
+
130
+ # 日の暦注 ----------------------------
131
+ [When::BasicTypes::M17n,
132
+ "names:[day]",
133
+ [When::BasicTypes::M17n,
134
+ "names:[Week]",
135
+ "[Solis, 日曜日]",
136
+ "[Lunae, 月曜日]",
137
+ "[Martis, 火曜日]",
138
+ "[Mercurii, 水曜日]",
139
+ "[Jovis, 木曜日]",
140
+ "[Veneris, 金曜日]",
141
+ "[Saturni, 土曜日]"
142
+ ]
143
+ ]
144
+ ]]
145
+
146
+ #
147
+ # 当日または直前の solis の日
148
+ #
149
+ # @param date [When::TM::TemporalPosition]
150
+ # @param parameter [nil] 未使用
151
+ #
152
+ # @return [When::TM::TemporalPosition]
153
+ #
154
+ def solis(date, parameter=nil)
155
+ date = When.Calendar('Darian').jul_trans(date, {:events=>['from_solis']})
156
+ y,m,d = date.cal_date
157
+ dow = (d-1) % 7
158
+ return date if dow == 0
159
+ date += When::TM::PeriodDuration.new([0,0,-dow])
160
+ date.events = ['from_solis']
161
+ date
162
+ end
163
+ alias :week :solis
164
+
165
+ # @private
166
+ alias :solis_delta :_delta
167
+
168
+ private
169
+
170
+ # オブジェクトの正規化
171
+ def _normalize(args=[], options={})
172
+ @event ||= 'solis'
173
+ super
174
+ end
175
+ end
176
+
177
+ #
178
+ # Martian Time, Coordinated
179
+ #
180
+ class MTC < UTC
181
+
182
+ private
183
+
184
+ # オブジェクトの正規化
185
+ def _normalize(args=[], options={})
186
+ @label = m17n('MTC')
187
+ @time_standard = When.Resource("_t:MartianTimeCoordinated")
188
+ super
189
+ end
190
+ end
191
+
192
+ #
193
+ # Darian Calendar
194
+ #
195
+ Darian = [CyclicTableBased, {
196
+ 'label' => When.Resource('_m:MartianTerms::Darian'),
197
+ 'time_basis' => 'MTC',
198
+ 'origin_of_LSC' => -94798,
199
+ 'indices' => [
200
+ When::Coordinates::Index.new({:unit =>24, :trunk=>When.Resource('_m:MartianTerms::DarianMonth::*')}),
201
+ When::Coordinates::Index.new
202
+ ],
203
+ 'rule_table' => {
204
+ 'T' => {'Rule' =>['LongCentury', ['ShortCentury', 4]]},
205
+ 'LongCentury' => {'Rule' =>[ ['LongDecade', 10]]},
206
+ 'ShortCentury' => {'Rule' =>['ShortDecade', ['LongDecade', 9]]},
207
+ 'LongDecade' => {'Rule' =>[669] * 2 + [668, 669] * 4 },
208
+ 'ShortDecade' => {'Rule' => [668, 669] * 5 },
209
+ 668 => {'Length'=>[28, 28, 28, 28, 28, 27] * 4 },
210
+ 669 => {'Length'=>[28, 28, 28, 28, 28, 27] * 3 + [28] * 6}
211
+ },
212
+ 'note' => 'DarianWeek'
213
+ }]
214
+ end
215
+ end
@@ -0,0 +1,122 @@
1
+ # -*- coding: utf-8 -*-
2
+ =begin
3
+ Copyright (C) 2011-2012 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
+ module Coordinates
11
+
12
+ # Mayan Residue
13
+ Mayan = [BasicTypes::M17n, [
14
+ "namespace:[en=http://en.wikipedia.org/wiki/, ja=http://ja.wikipedia.org/wiki/]",
15
+ "locale:[=en:, ja=ja:, alias]",
16
+ "names:[Mayan]",
17
+
18
+ [Residue,
19
+ "label:[Haab', ハアブ, Haab]", "divisor:365", "day:-65", "format:[%2$d%1$s/365]",
20
+ "namespace:[glyph=http://en.wikipedia.org/wiki/File:Maya-]",
21
+ [Residue, "label:[Pop =glyph:Pop.jpg, ポプ, Pop ]", "remainder: 0"],
22
+ [Residue, "label:[Wo' =glyph:Dresden-wo.jpg, ウオ, Wo ]", "remainder: 20"],
23
+ [Residue, "label:[Sip =glyph:Dresden-sip.jpg, シプ, Sip ]", "remainder: 40"],
24
+ [Residue, "label:[Sotz' =glyph:Sotz.jpg, ソッツ, Sotz ]", "remainder: 60"],
25
+ [Residue, "label:[Sek =glyph:Dresden-Sek.jpg, セック, Sek ]", "remainder: 80"],
26
+ [Residue, "label:[Xul =glyph:Xul.png, シュル, Xul ]", "remainder:100"],
27
+ [Residue, "label:[Yaxk'in'=glyph:Dresden-Yaxkin.jpg, ヤシュキン, Yaxkin]", "remainder:120"],
28
+ [Residue, "label:[Mol =glyph:Mol.png, モル, Mol ]", "remainder:140"],
29
+ [Residue, "label:[Ch'en =glyph:Dresden-Chen.jpg, チェン, Chen ]", "remainder:160"],
30
+ [Residue, "label:[Yax =glyph:Dresden-Yax.jpg, ヤシュ, Yax ]", "remainder:180"],
31
+ [Residue, "label:[Sak' =glyph:Dresden-Sak.jpg, サック, Sak ]", "remainder:200"],
32
+ [Residue, "label:[Keh =glyph:Dresden-Keh.jpg, ケフ, Keh ]", "remainder:220"],
33
+ [Residue, "label:[Mak =glyph:Dresden-Mak.png, マック, Mak ]", "remainder:240"],
34
+ [Residue, "label:[K'ank'in=glyph:Dresden-Kankin.png, カンキン, Kankin]", "remainder:260"],
35
+ [Residue, "label:[Muwan' =glyph:Muan.jpg, ムアン, Muwan ]", "remainder:280"],
36
+ [Residue, "label:[Pax =glyph:Dresden-pax.jpg, パシュ, Pax ]", "remainder:300"],
37
+ [Residue, "label:[K'ayab =glyph:Dresden-Kayab.png, カヤブ, Kayab ]", "remainder:320"],
38
+ [Residue, "label:[Kumk'u =glyph:Dresden-kumku.jpg, クムク, Kumku ]", "remainder:340"],
39
+ [Residue, "label:[Wayeb' =glyph:Dresden-wayeb.jpg, ウェヤブ, Wayeb ]", "remainder:360"]
40
+ ],
41
+
42
+ [Residue,
43
+ "label:[Trecena, トレセナ=, Trecena]", "divisor:13", "day:8", "format:[%1$s(%3$d/13)]"
44
+ ],
45
+
46
+ [Residue,
47
+ "namespace:[glyph=http://en.wikipedia.org/wiki/File:MAYA-g-log-cal-]",
48
+ "label:[Tzolk'in, ツォルキン, Tzolkin]", "divisor:20", "day:4", "format:[%s(%d/20)]",
49
+ [Residue, "label:[Imix' =glyph:D01-Imix.png, イミシュ, Imix =glyph:D01-Imix-cdxW.png ]", "remainder: 0"],
50
+ [Residue, "label:[Ik' =glyph:D02-Ik.png, イック, Ik =glyph:D02-Ik-cdxW.png ]", "remainder: 1"],
51
+ [Residue, "label:[Ak'b'al =glyph:D03-Akbal.png, アクバル, Akbal =glyph:D03-Akbal-cdxW.png ]", "remainder: 2"],
52
+ [Residue, "label:[K'an =glyph:D04-Kan.png, カン, Kan =glyph:D04-Kan-cdxW.png ]", "remainder: 3"],
53
+ [Residue, "label:[Chikchan=glyph:D05-Chikchan.png, チクチャン, Chicchan=glyph:D05-Chikchan-cdxW.png]", "remainder: 4"],
54
+ [Residue, "label:[Kimi =glyph:D06-Kimi.png, キミ, Cimi =glyph:D06-Kimi-cdxW.png ]", "remainder: 5"],
55
+ [Residue, "label:[Manik' =glyph:D07-Manik.png, マニク, Manik =glyph:D07-Manik-cdxW.png ]", "remainder: 6"],
56
+ [Residue, "label:[Lamat =glyph:D08-Lamat.png, ラマト, Lamat =glyph:D08-Lamat-cdxW.png ]", "remainder: 7"],
57
+ [Residue, "label:[Muluk =glyph:D09-Muluk.png, ムルク, Muluc =glyph:D09-Muluk-cdxW.png ]", "remainder: 8"],
58
+ [Residue, "label:[Ok =glyph:D10-Ok.png, オック, Oc =glyph:D10-Ok-cdxW.png ]", "remainder: 9"],
59
+ [Residue, "label:[Chuwen =glyph:D11-Chuwen.png, チュエン, Chuen =glyph:D11-Chuwen-cdxW.png ]", "remainder:10"],
60
+ [Residue, "label:[Eb' =glyph:D12-Eb.png, エブ, Eb =glyph:D12-Eb-cdxW.png ]", "remainder:11"],
61
+ [Residue, "label:[B'en =glyph:D13-Ben.png, ベン, Ben =glyph:D13-Ben-cdxW.png ]", "remainder:12"],
62
+ [Residue, "label:[Ix =glyph:D14-Ix.png, イシュ, Ix =glyph:D14-Ix-cdxW.png ]", "remainder:13"],
63
+ [Residue, "label:[Men =glyph:D15-Men.png, メン, Men =glyph:D15-Men-cdxW.png ]", "remainder:14"],
64
+ [Residue, "label:[Kib' =glyph:D16-Kib.png, キッブ, Cib =glyph:D16-Kib-cdxW.png ]", "remainder:15"],
65
+ [Residue, "label:[Kab'an =glyph:D17-Kaban.png, カーバン, Caban =glyph:D17-Kaban-cdxW.png ]", "remainder:16"],
66
+ [Residue, "label:[Etz'nab'=glyph:D18-Etznab.png, エツナブ, Etznab =glyph:D18-Etznab-cdxW.png ]", "remainder:17"],
67
+ [Residue, "label:[Kawak =glyph:D19-Kawak.png, カワク, Cauac =glyph:D19-Kawak-cdxW.png ]", "remainder:18"],
68
+ [Residue, "label:[Ajaw =glyph:D20-Ajaw.png, アハウ, Ahau =glyph:D20-Ajaw-cdxW.png ]", "remainder:19"],
69
+ ],
70
+
71
+ [Residue,
72
+ "namespace:[glyph=http://www.pauahtun.org/G/G]",
73
+ "label:[Lords_of_the_Night, 夜の九王]", "divisor:9", "day:3", "format:[%s(%d/9)]",
74
+ [Residue, "label:[G9=glyph:9_m.png]", "remainder: 0"],
75
+ [Residue, "label:[G1=glyph:1_m.png]", "remainder: 1"],
76
+ [Residue, "label:[G2=glyph:2_m.png]", "remainder: 2"],
77
+ [Residue, "label:[G3=glyph:3_m.png]", "remainder: 3"],
78
+ [Residue, "label:[G4=glyph:4_m.png]", "remainder: 4"],
79
+ [Residue, "label:[G5=glyph:5_m.png]", "remainder: 5"],
80
+ [Residue, "label:[G6=glyph:6_m.png]", "remainder: 6"],
81
+ [Residue, "label:[G7=glyph:7_m.png]", "remainder: 7"],
82
+ [Residue, "label:[G8=glyph:8_m.png]", "remainder: 8"],
83
+ ],
84
+ ]]
85
+ end
86
+
87
+ class TM::CalendarEra
88
+
89
+ #
90
+ # Mayan Long Count
91
+ #
92
+ Mayan = [self, [
93
+ "namespace:[en=http://en.wikipedia.org/wiki/, ja=http://ja.wikipedia.org/wiki/]",
94
+ "locale:[=en:, ja=ja:, alias]",
95
+ "area:[MayanLongCount=en:Mesoamerican_Long_Count_calendar, マヤ長期暦=ja:%E9%95%B7%E6%9C%9F%E6%9A%A6]",
96
+ ["[PHLC=, 先史時代=, PreHistoricLongCount=]0.0.0.0.0", "[Pre Historic=]", "-13.0.0.0.0^LongCount"],
97
+ ["[HLC=, 歴史時代=, HistoricLongCount=]0.0.0.0.1", "[Historic Age=]", "0.0.0.0.1"],
98
+ ["[NLC=, 新時代=, NewLongCount=]0.0.0.0.1", "[New Age=]", "13.0.0.0.1", "26.0.0.0.1"]
99
+ ]]
100
+ end
101
+
102
+ module CalendarTypes
103
+
104
+ #
105
+ # Mayan Long Count
106
+ #
107
+ LongCount = [CyclicTableBased, {
108
+ 'origin_of_LSC' => 584283,
109
+ 'rule_table' => {
110
+ 'T' => {'Rule' =>[360]},
111
+ 360 => {'Length'=>[20] * 18}},
112
+ 'index_of_MSC' => 2,
113
+ 'indices'=> [
114
+ Coordinates::Index.new({:base=>0, :unit=>20}),
115
+ Coordinates::Index.new({:base=>0, :unit=>20}),
116
+ Coordinates::Index.new({:base=>0, :unit=>18}),
117
+ Coordinates::Index.new({:base=>0, :unit=>20}),
118
+ ],
119
+ 'note' => 'MayanNotes'
120
+ }]
121
+ end
122
+ end