when_exe 0.3.5 → 0.3.6
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.
- data/bin/irb.rc +1 -0
- data/bin/locales.rb +8 -6
- data/bin/when.rb +1 -1
- data/lib/when_exe.rb +231 -146
- data/lib/when_exe/basictypes.rb +108 -18
- data/lib/when_exe/calendarnote.rb +263 -116
- data/lib/when_exe/calendartypes.rb +413 -22
- data/lib/when_exe/coordinates.rb +58 -36
- data/lib/when_exe/core/compatibility.rb +8 -6
- data/lib/when_exe/core/extension.rb +40 -15
- data/lib/when_exe/ephemeris.rb +20 -19
- data/lib/when_exe/{region → ephemeris}/moon.rb +4 -4
- data/lib/when_exe/{region/ephemeric_notes.rb → ephemeris/notes.rb} +25 -6
- data/lib/when_exe/{region → ephemeris}/planets.rb +0 -0
- data/lib/when_exe/{region → ephemeris}/sun.rb +7 -3
- data/lib/when_exe/{region → ephemeris}/v50.rb +0 -0
- data/lib/when_exe/googlecalendar.rb +2 -2
- data/lib/when_exe/icalendar.rb +3 -3
- data/lib/when_exe/inspect.rb +130 -70
- data/lib/when_exe/locales/af.rb +2 -2
- data/lib/when_exe/locales/akt.rb +176 -0
- data/lib/when_exe/locales/ar.rb +2 -2
- data/lib/when_exe/locales/{locales.rb → autoload.rb} +6 -2
- data/lib/when_exe/locales/az.rb +2 -2
- data/lib/when_exe/locales/bg.rb +2 -2
- data/lib/when_exe/locales/bn.rb +2 -2
- data/lib/when_exe/locales/bs.rb +2 -2
- data/lib/when_exe/locales/ca.rb +2 -2
- data/lib/when_exe/locales/cs.rb +2 -2
- data/lib/when_exe/locales/cy.rb +2 -2
- data/lib/when_exe/locales/da.rb +2 -2
- data/lib/when_exe/locales/de.rb +2 -2
- data/lib/when_exe/locales/de_AT.rb +2 -2
- data/lib/when_exe/locales/de_CH.rb +2 -2
- data/lib/when_exe/locales/el.rb +2 -2
- data/lib/when_exe/locales/en.rb +2 -2
- data/lib/when_exe/locales/en_AU.rb +2 -2
- data/lib/when_exe/locales/en_CA.rb +2 -2
- data/lib/when_exe/locales/en_GB.rb +2 -2
- data/lib/when_exe/locales/en_IE.rb +2 -2
- data/lib/when_exe/locales/en_IN.rb +3 -3
- data/lib/when_exe/locales/en_NZ.rb +2 -2
- data/lib/when_exe/locales/en_US.rb +2 -2
- data/lib/when_exe/locales/en_ZA.rb +88 -0
- data/lib/when_exe/locales/encoding_conversion.rb +126 -0
- data/lib/when_exe/locales/eo.rb +2 -2
- data/lib/when_exe/locales/es.rb +2 -2
- data/lib/when_exe/locales/es_419.rb +2 -2
- data/lib/when_exe/locales/es_AR.rb +2 -2
- data/lib/when_exe/locales/es_CL.rb +2 -2
- data/lib/when_exe/locales/es_CO.rb +2 -2
- data/lib/when_exe/locales/es_CR.rb +2 -2
- data/lib/when_exe/locales/es_EC.rb +2 -2
- data/lib/when_exe/locales/es_MX.rb +2 -2
- data/lib/when_exe/locales/es_PA.rb +2 -2
- data/lib/when_exe/locales/es_PE.rb +2 -2
- data/lib/when_exe/locales/es_US.rb +84 -0
- data/lib/when_exe/locales/es_VE.rb +2 -2
- data/lib/when_exe/locales/et.rb +2 -2
- data/lib/when_exe/locales/eu.rb +2 -2
- data/lib/when_exe/locales/fa.rb +2 -2
- data/lib/when_exe/locales/fi.rb +3 -3
- data/lib/when_exe/locales/fr.rb +2 -2
- data/lib/when_exe/locales/fr_CA.rb +2 -2
- data/lib/when_exe/locales/fr_CH.rb +2 -2
- data/lib/when_exe/locales/gl.rb +2 -2
- data/lib/when_exe/locales/he.rb +3 -3
- data/lib/when_exe/locales/hi.rb +2 -2
- data/lib/when_exe/locales/hi_IN.rb +2 -2
- data/lib/when_exe/locales/hr.rb +2 -2
- data/lib/when_exe/locales/hu.rb +6 -5
- data/lib/when_exe/locales/iast.rb +90 -0
- data/lib/when_exe/locales/id.rb +2 -2
- data/lib/when_exe/locales/is.rb +2 -2
- data/lib/when_exe/locales/it.rb +2 -2
- data/lib/when_exe/locales/it_CH.rb +2 -2
- data/lib/when_exe/locales/ja.rb +2 -2
- data/lib/when_exe/locales/kn.rb +2 -2
- data/lib/when_exe/locales/ko.rb +2 -2
- data/lib/when_exe/locales/links.rb +3 -3
- data/lib/when_exe/locales/lo.rb +2 -2
- data/lib/when_exe/{parts → locales}/locale.rb +77 -49
- data/lib/when_exe/locales/lt.rb +6 -2
- data/lib/when_exe/locales/lv.rb +2 -2
- data/lib/when_exe/locales/mk.rb +2 -2
- data/lib/when_exe/locales/mn.rb +2 -2
- data/lib/when_exe/locales/ms.rb +2 -2
- data/lib/when_exe/locales/nb.rb +2 -2
- data/lib/when_exe/locales/ne.rb +2 -2
- data/lib/when_exe/locales/nl.rb +2 -2
- data/lib/when_exe/locales/nn.rb +2 -2
- data/lib/when_exe/locales/or.rb +2 -2
- data/lib/when_exe/locales/pl.rb +2 -2
- data/lib/when_exe/locales/pt.rb +2 -2
- data/lib/when_exe/locales/pt_BR.rb +2 -2
- data/lib/when_exe/locales/rm.rb +2 -2
- data/lib/when_exe/locales/ro.rb +2 -2
- data/lib/when_exe/locales/ru.rb +2 -2
- data/lib/when_exe/locales/sk.rb +2 -2
- data/lib/when_exe/locales/sl.rb +2 -2
- data/lib/when_exe/locales/sr.rb +2 -2
- data/lib/when_exe/locales/sv.rb +2 -2
- data/lib/when_exe/locales/sw.rb +2 -2
- data/lib/when_exe/locales/ta.rb +95 -0
- data/lib/when_exe/locales/th.rb +2 -2
- data/lib/when_exe/locales/tl.rb +3 -3
- data/lib/when_exe/locales/tr.rb +2 -2
- data/lib/when_exe/locales/transliteration_table.rb +62 -0
- data/lib/when_exe/locales/uk.rb +15 -15
- data/lib/when_exe/locales/ur.rb +2 -2
- data/lib/when_exe/locales/uz.rb +2 -2
- data/lib/when_exe/locales/vi.rb +2 -2
- data/lib/when_exe/locales/wo.rb +2 -2
- data/lib/when_exe/locales/zh_CN.rb +2 -2
- data/lib/when_exe/locales/zh_HK.rb +15 -15
- data/lib/when_exe/locales/zh_TW.rb +2 -2
- data/lib/when_exe/locales/zh_YUE.rb +77 -0
- data/lib/when_exe/mini_application.rb +22 -12
- data/lib/when_exe/parts/geometric_complex.rb +16 -1
- data/lib/when_exe/parts/method_cash.rb +184 -238
- data/lib/when_exe/parts/resource.rb +65 -16
- data/lib/when_exe/region/armenian.rb +56 -0
- data/lib/when_exe/region/bahai.rb +13 -13
- data/lib/when_exe/region/balinese.rb +33 -35
- data/lib/when_exe/region/chinese.rb +82 -78
- data/lib/when_exe/region/{chinese_calendar.rb → chinese/calendars.rb} +59 -40
- data/lib/when_exe/region/{chinese_epoch.rb → chinese/epochs.rb} +3 -4
- data/lib/when_exe/region/{chinese_twin.rb → chinese/twins.rb} +48 -51
- data/lib/when_exe/region/christian.rb +236 -127
- data/lib/when_exe/region/coptic.rb +9 -10
- data/lib/when_exe/region/dee.rb +48 -0
- data/lib/when_exe/region/discordian.rb +225 -0
- data/lib/when_exe/region/far_east.rb +2 -6
- data/lib/when_exe/region/french.rb +7 -17
- data/lib/when_exe/region/geologicalage.rb +0 -1
- data/lib/when_exe/region/goddess.rb +58 -0
- data/lib/when_exe/region/indian.rb +323 -231
- data/lib/when_exe/region/iranian.rb +159 -22
- data/lib/when_exe/region/islamic.rb +7 -9
- data/lib/when_exe/region/japanese.rb +14 -803
- data/lib/when_exe/region/japanese/calendars.rb +397 -0
- data/lib/when_exe/region/japanese/epochs.rb +426 -0
- data/lib/when_exe/region/{nihon_shoki.rb → japanese/nihon_shoki.rb} +0 -2
- data/lib/when_exe/region/{japanese_notes.rb → japanese/notes.rb} +179 -150
- data/lib/when_exe/region/japanese/residues.rb +1306 -0
- data/lib/when_exe/region/{japanese_twin.rb → japanese/twins.rb} +12 -15
- data/lib/when_exe/region/javanese.rb +16 -14
- data/lib/when_exe/region/jewish.rb +8 -9
- data/lib/when_exe/region/korean.rb +146 -35
- data/lib/when_exe/region/m17n.rb +8 -10
- data/lib/when_exe/region/martian.rb +44 -16
- data/lib/when_exe/region/mayan.rb +12 -10
- data/lib/when_exe/region/pope.rb +0 -1
- data/lib/when_exe/region/residue.rb +4 -5
- data/lib/when_exe/region/roman.rb +20 -24
- data/lib/when_exe/region/ryukyu.rb +3 -4
- data/lib/when_exe/region/shire.rb +97 -94
- data/lib/when_exe/region/symmetry.rb +50 -0
- data/lib/when_exe/region/thai.rb +164 -56
- data/lib/when_exe/region/tibetan.rb +86 -86
- data/lib/when_exe/region/vietnamese.rb +9 -12
- data/lib/when_exe/region/weekdate.rb +80 -0
- data/lib/when_exe/region/world.rb +65 -70
- data/lib/when_exe/region/yerm.rb +98 -0
- data/lib/when_exe/region/zoroastrian.rb +203 -0
- data/lib/when_exe/timestandard.rb +4 -4
- data/lib/when_exe/tmobjects.rb +1 -3
- data/lib/when_exe/tmposition.rb +13 -12
- data/lib/when_exe/tmreference.rb +11 -10
- data/lib/when_exe/version.rb +1 -1
- data/link_to_online_documents +3 -3
- data/test/examples/Residue.m17n +1 -1
- data/test/examples/Terms.m17n +1 -1
- data/test/test.rb +2 -1
- data/test/test/basictypes.rb +18 -2
- data/test/test/calendarnote.rb +1 -1
- data/test/test/calendartypes.rb +1 -1
- data/test/test/coordinates.rb +7 -7
- data/test/test/{region → ephemeris}/moon.rb +0 -0
- data/test/test/{region → ephemeris}/planets.rb +0 -0
- data/test/test/{region → ephemeris}/sun.rb +0 -0
- data/test/test/parts.rb +8 -13
- data/test/test/region/christian.rb +245 -0
- data/test/test/region/french.rb +16 -16
- data/test/test/region/iran.rb +34 -34
- data/test/test/region/japanese.rb +6 -4
- data/test/test/region/m17n.rb +8 -7
- data/test/test/region/mayan.rb +12 -12
- data/test/test/region/residue.rb +20 -4
- data/test/test/region/thai.rb +25 -3
- data/test/test/region/yerm.rb +146 -0
- metadata +39 -20
- data/lib/when_exe/region/japanese_residues.rb +0 -1212
- data/test/test/region/civil.rb +0 -124
@@ -6,7 +6,7 @@
|
|
6
6
|
=end
|
7
7
|
|
8
8
|
require 'when_exe/region/chinese'
|
9
|
-
require 'when_exe/region/
|
9
|
+
require 'when_exe/region/chinese/calendars'
|
10
10
|
|
11
11
|
module When
|
12
12
|
class TM::CalendarEra
|
@@ -15,7 +15,6 @@ module When
|
|
15
15
|
# 中国の年号
|
16
16
|
#
|
17
17
|
Chinese = [{'V'=>{'0618'=>{'A'=>'0618', 'B'=>'0618B', 'C'=>'0618C'}}}, self, [
|
18
|
-
"namespace:[ja=http://ja.wikipedia.org/wiki/, en=http://en.wikipedia.org/wiki/]",
|
19
18
|
"locale:[=ja:, en=en:]",
|
20
19
|
'area:[中国#{?V=A}=ja:%%<元号>#%.<中国>,China#{?V=A}=en:Chinese_era_name]',
|
21
20
|
[self,
|
@@ -679,7 +678,7 @@ module When
|
|
679
678
|
],
|
680
679
|
[self,
|
681
680
|
"period:[唐]",
|
682
|
-
["[武徳]1" , "@F" , 'name=[高祖];618-05-20^Chinese#{A:0523}'], # 甲子
|
681
|
+
["[武徳]1" , "@F" , 'name=[高祖];618-05-20^Chinese#{A:0523}'], # 甲子 武徳2年から戊寅元暦を使用
|
683
682
|
["[貞観]1" , "@A" , "name=[太宗];627-01-01"], # 乙酉
|
684
683
|
["[永徽]1" , "@A" , "name=[高宗];650-01-01"], # 辛丑
|
685
684
|
["[顕慶]1" , "" , " 656-01-07"], # 壬申
|
@@ -1239,7 +1238,7 @@ module When
|
|
1239
1238
|
[self,
|
1240
1239
|
"period:[中華民国=ja:%%<民国紀元>,ROC=en:Chinese_era_name#The_Republic_of_China_Era]",
|
1241
1240
|
["[民国=ja:%%<民国紀元>,ROC=en:Chinese_era_name#The_Republic_of_China_Era]1",
|
1242
|
-
"@F", "name=;1912-01-01^Gregorian?note=
|
1241
|
+
"@F", "name=;1912-01-01^Gregorian?note=Chinese"]
|
1243
1242
|
]
|
1244
1243
|
]]
|
1245
1244
|
end
|
@@ -9,69 +9,67 @@ module When
|
|
9
9
|
|
10
10
|
class TM::CalendarEra
|
11
11
|
|
12
|
-
# Chinese Luni-Solar Calendar Series for
|
13
|
-
|
14
|
-
'
|
15
|
-
'
|
16
|
-
'area:[ChineseLuniSolarSeries=, 中国の暦月=]',
|
12
|
+
# Chinese Luni-Solar Calendar Series for Chinese Note
|
13
|
+
ChineseLuniSolar = [self, [
|
14
|
+
'locale:[ja=ja:, en=en:]',
|
15
|
+
'area:[中国の暦月=, *ChineseLuniSolar=]',
|
17
16
|
['[太初暦]1.01.01', '@CR', '1-01-01^ChineseTwin::太初暦', '85-01-01'], # 西暦が正になるところから開始(実際は-103.01.01)
|
18
17
|
['[四分暦]85.01.01', '@CR', '85-01-01^ChineseTwin::四分暦', '265-01-01'],
|
19
18
|
['[乾象暦]222.01.01', '@CR', '222-01-01^ChineseTwin::乾象暦', '281-01-01'],
|
20
19
|
['[景初暦]237.01.01', '@CR', '237-01-01^ChineseTwin::景初暦', '452-01-01'],
|
21
20
|
['[元嘉暦]445.01.01', '@CR', '445-01-01^ChineseTwin::元嘉暦', '510-01-01'],
|
22
21
|
['[大明暦]510.01.01', '@CR', '510-01-01^ChineseTwin::大明暦', '590-01-01'],
|
23
|
-
['[
|
24
|
-
['[
|
25
|
-
['[
|
26
|
-
['[
|
27
|
-
['[
|
28
|
-
['[
|
29
|
-
['[
|
30
|
-
['[
|
31
|
-
['[
|
32
|
-
['[
|
33
|
-
['[
|
34
|
-
['[
|
22
|
+
['[三紀暦=]384.01.01', '@CR', '384-01-01^ChineseTwin::三紀暦', '418-01-01'],
|
23
|
+
['[玄始暦=]412.01.01', '@CR', '412-01-01^ChineseTwin::玄始暦', '440-01-01'],
|
24
|
+
['[玄始暦=]452.01.01', '@CR', '452-01-01^ChineseTwin::玄始暦', '523-01-01'],
|
25
|
+
['[正光暦=]523.01.01', '@CR', '523-01-01^ChineseTwin::正光暦', '566-01-01'],
|
26
|
+
['[興和暦=]540.01.01', '@CR', '540-01-01^ChineseTwin::興和暦', '551-01-01'],
|
27
|
+
['[天保暦=]551.01.01', '@CR', '551-01-01^ChineseTwin::天保暦', '578-01-01'],
|
28
|
+
['[天和暦=]566.01.01', '@CR', '566-01-01^ChineseTwin::天和暦', '579-01-01'],
|
29
|
+
['[大象暦=]579.01.01', '@CR', '579-01-01^ChineseTwin::大象暦', '584-01-01'],
|
30
|
+
['[開皇暦=]584.01.01', '@CR', '584-01-01^ChineseTwin::開皇暦', '597-01-01'],
|
31
|
+
['[大業暦=]597.01.01', '@CR', '597-01-01^ChineseTwin::大業暦', '619-01-01'],
|
32
|
+
['[戊寅元暦]619.01.01', '@CR', '619-01-01^ChineseTwin::戊寅元暦', '645-01-01'],
|
33
|
+
['[平朔戊寅暦=]645.01.01','@CR','645-01-01^ChineseTwin::平朔戊寅暦','665-01-01'],
|
35
34
|
['[麟徳暦]665.01.01', '@CR', '665-01-01^ChineseTwin::麟徳暦', '729-01-01'],
|
36
35
|
['[大衍暦]729.01.01', '@CR', '729-01-01^ChineseTwin::大衍暦', '762-01-01'],
|
37
36
|
['[五紀暦]762.01.01', '@CR', '762-01-01^ChineseTwin::五紀暦', '784-01-01'],
|
38
|
-
['[
|
37
|
+
['[正元暦=]784.01.01', '@CR', '784-01-01^ChineseTwin::正元暦', '807-01-01'],
|
39
38
|
['[宣明暦]822.01.01', '@CR', '822-01-01^ChineseTwin::宣明暦', '893-01-01'],
|
40
|
-
['[
|
39
|
+
['[崇玄暦=]893.01.01', '@CR', '893-01-01^ChineseTwin::崇玄暦', '956-01-01'],
|
41
40
|
['[授時暦]1281.01.01', '@CR','1281-01-01^ChineseTwin::授時暦', '1368-01-01'],
|
42
41
|
['[大統暦]1368.01.01', '@CR','1368-01-01^ChineseTwin::大統暦', '1645-01-01']
|
43
42
|
]]
|
44
43
|
|
45
|
-
# Chinese Solar Calendar Series for
|
46
|
-
|
47
|
-
'
|
48
|
-
'
|
49
|
-
'
|
50
|
-
['[
|
51
|
-
['[
|
52
|
-
['[
|
53
|
-
['[
|
54
|
-
['[
|
55
|
-
['[
|
56
|
-
['[
|
57
|
-
['[
|
58
|
-
['[
|
59
|
-
['[
|
60
|
-
['[
|
61
|
-
['[
|
62
|
-
['[
|
63
|
-
['[
|
64
|
-
['[
|
65
|
-
['[
|
66
|
-
['[
|
67
|
-
['[
|
68
|
-
['[
|
69
|
-
['[
|
70
|
-
['[
|
71
|
-
['[
|
72
|
-
['[
|
73
|
-
['[
|
74
|
-
['[大統暦]1367.12.24', '@CR', '1367-12-24^ChineseTwin::大統暦(節月)','1644-12-24']
|
44
|
+
# Chinese Solar Calendar Series for Chinese Note
|
45
|
+
ChineseSolar = [self, [
|
46
|
+
'locale:[ja=ja:, en=en:]',
|
47
|
+
'area:[中国の節月=, *ChineseSolar=]',
|
48
|
+
['[太初暦]1.01.01', '@CR', '1-01-01^ChineseTwin::太初暦(節月)', '85-01-06'], # 西暦が正になるところから開始(実際は-103.01.15)
|
49
|
+
['[四分暦]85.01.07', '@CR', '85-01-07^ChineseTwin::四分暦(節月)', '264-12-28'],
|
50
|
+
['[乾象暦]221.12.23', '@CR', '221-12-23^ChineseTwin::乾象暦(節月)', '280-12-31'],
|
51
|
+
['[景初暦]237.01.07', '@CR', '237-01-07^ChineseTwin::景初暦(節月)', '451-12-31'],
|
52
|
+
['[元嘉暦]444.12.22', '@CR', '444-12-22^ChineseTwin::元嘉暦(節月)', '509-12-24'],
|
53
|
+
['[大明暦]509.12.23', '@CR', '509-12-23^ChineseTwin::大明暦(節月)', '590-01-08'],
|
54
|
+
['[三紀暦=]384.01.02', '@CR', '384-01-02^ChineseTwin::三紀暦(節月)', '418-01-16'],
|
55
|
+
['[玄始暦=]411.12.26', '@CR', '411-12-26^ChineseTwin::玄始暦(節月)', '440-01-15'],
|
56
|
+
['[玄始暦=]452.01.02', '@CR', '452-01-02^ChineseTwin::玄始暦(節月)', '522-12-29'],
|
57
|
+
['[正光暦=]522.12.29', '@CR', '522-12-29^ChineseTwin::正光暦(節月)', '566-01-05'],
|
58
|
+
['[興和暦=]539.12.22', '@CR', '539-12-22^ChineseTwin::興和暦(節月)', '550-12-20'],
|
59
|
+
['[天保暦=]550.12.19', '@CR', '550-12-19^ChineseTwin::天保暦(節月)', '577-12-21'],
|
60
|
+
['[天和暦=]566.01.05', '@CR', '566-01-05^ChineseTwin::天和暦(節月)', '579-01-11'],
|
61
|
+
['[大象暦=]579.01.11', '@CR', '579-01-11^ChineseTwin::大象暦(節月)', '584-01-15'],
|
62
|
+
['[開皇暦=]584.01.16', '@CR', '584-01-16^ChineseTwin::開皇暦(節月)', '596-12-23'],
|
63
|
+
['[大業暦=]596.12.22', '@CR', '596-12-22^ChineseTwin::大業暦(節月)', '618-12-19'],
|
64
|
+
['[戊寅元暦]618.12.19', '@CR', '618-12-19^ChineseTwin::戊寅元暦(節月)', '664-12-21'],
|
65
|
+
['[麟徳暦]664.12.21', '@CR', '664-12-21^ChineseTwin::麟徳暦(節月)', '729-01-03'],
|
66
|
+
['[大衍暦]729.01.03', '@CR', '729-01-03^ChineseTwin::大衍暦(節月)', '761-12-29'],
|
67
|
+
['[五紀暦]761.12.29', '@CR', '761-12-29^ChineseTwin::五紀暦(節月)', '783-12-26'],
|
68
|
+
['[正元暦=]783.12.26', '@CR', '783-12-26^ChineseTwin::正元暦(節月)', '807-01-11'],
|
69
|
+
['[宣明暦]821.01.01', '@CR', '821-01-01^ChineseTwin::宣明暦(節月)', '892-12-22'], # 年の始めに遡って開始(実際は12.27)
|
70
|
+
['[崇玄暦=]892.12.22', '@CR', '892-12-22^ChineseTwin::崇玄暦(節月)', '956-01-15'],
|
71
|
+
['[授時暦]1280.01.01', '@CR', '1280-01-01^ChineseTwin::授時暦(節月)', '1367-12-24'],
|
72
|
+
['[大統暦]1367.12.24', '@CR', '1367-12-24^ChineseTwin::大統暦(節月)', '1644-12-24']
|
75
73
|
]]
|
76
74
|
end
|
77
75
|
|
@@ -106,7 +104,6 @@ module When
|
|
106
104
|
}
|
107
105
|
|
108
106
|
ChineseTwin = [{}, When::BasicTypes::M17n, ChineseSolar.twin('ChineseTwin', [
|
109
|
-
"namespace:[en=http://en.wikipedia.org/wiki/, ja=http://ja.wikipedia.org/wiki/]",
|
110
107
|
"locale:[=ja:, en=en:, alias]",
|
111
108
|
"area:[中国,China]",
|
112
109
|
|
@@ -223,7 +220,7 @@ module When
|
|
223
220
|
],
|
224
221
|
|
225
222
|
[ChineseLuniSolar,
|
226
|
-
'name:[
|
223
|
+
'name:[戊寅元暦]',
|
227
224
|
'time_basis:+00,+#{P:00}',
|
228
225
|
{'formula'=>['12S', '1L'].map {|f| [
|
229
226
|
Ephemeris::ChineseTrueLunation, {
|
@@ -9,12 +9,13 @@ module When
|
|
9
9
|
|
10
10
|
class BasicTypes::M17n
|
11
11
|
|
12
|
-
|
13
|
-
"namespace:[en=http://en.wikipedia.org/wiki/, ja=http://ja.wikipedia.org/wiki/]",
|
12
|
+
Christian = [self, [
|
14
13
|
"locale:[=en:, ja=ja:, alias]",
|
15
|
-
"names:[
|
16
|
-
"[Julian=en:Julian_calendar,
|
17
|
-
"[Gregorian=en:Gregorian_calendar,
|
14
|
+
"names:[Christian=]",
|
15
|
+
"[Julian=en:Julian_calendar, ユリウス暦 ]",
|
16
|
+
"[Gregorian=en:Gregorian_calendar, グレゴリオ暦 ]",
|
17
|
+
"[RevisedJulian=en:Revised_Julian_calendar, 修正ユリウス暦]",
|
18
|
+
"[Swedish=en:Swedish_calendar, スウェーデン暦]",
|
18
19
|
"[Civil in the West=en:Civil_calendar, 西暦, *alias:Civil]"
|
19
20
|
]]
|
20
21
|
end
|
@@ -22,11 +23,10 @@ module When
|
|
22
23
|
class TM::CalendarEra
|
23
24
|
# Anno Mundi Era
|
24
25
|
Byzantine = [self, [
|
25
|
-
"namespace:[en=http://en.wikipedia.org/wiki/, ja=http://ja.wikipedia.org/wiki/]",
|
26
26
|
"locale:[=en:, ja=ja:, alias]",
|
27
27
|
"period:[Byzantine=en:Byzantine_calendar, ビザンティン暦=ja:%%<世界創造紀元>]",
|
28
28
|
["[AM=en:Anno_Mundi, 世界創造紀元, alias:Anno_Mundi]6497.9.1",
|
29
|
-
"Calendar Epoch", "989-09-01^Julian?border=[-1,9,1]¬e=
|
29
|
+
"Calendar Epoch", "989-09-01^Julian?border=[-1,9,1]¬e=Roman", "1453=5-29"]
|
30
30
|
]]
|
31
31
|
end
|
32
32
|
|
@@ -37,6 +37,11 @@ module When
|
|
37
37
|
#
|
38
38
|
class Christian < When::TM::Calendar
|
39
39
|
|
40
|
+
# デフォルトの改暦日付(ユリウス通日)
|
41
|
+
#
|
42
|
+
# @private
|
43
|
+
DefaultReformDate = 2299161 # 1582-10-15
|
44
|
+
|
40
45
|
# @private
|
41
46
|
#
|
42
47
|
# ::Date オブジェクトに対応する暦法名
|
@@ -52,11 +57,7 @@ module When
|
|
52
57
|
|
53
58
|
# 年月日 -> 通日
|
54
59
|
#
|
55
|
-
# @
|
56
|
-
# @param [Integer] m 月 (0 始まり)
|
57
|
-
# @param [Integer] d 日 (0 始まり)
|
58
|
-
#
|
59
|
-
# @return [Integer] 通日
|
60
|
+
# @see When::CalendarTypes::TableBased#_coordinates_to_number
|
60
61
|
#
|
61
62
|
def _coordinates_to_number(y,m,d)
|
62
63
|
m = (+m + 10) % 12
|
@@ -68,12 +69,7 @@ module When
|
|
68
69
|
|
69
70
|
# 通日 - > 年月日
|
70
71
|
#
|
71
|
-
# @
|
72
|
-
#
|
73
|
-
# @return [Array<Integer>] ( y, m, d )
|
74
|
-
# [ y 年 ]
|
75
|
-
# [ m 月 (0 始まり) ]
|
76
|
-
# [ d 日 (0 始まり) ]
|
72
|
+
# @see When::CalendarTypes::TableBased#_number_to_coordinates
|
77
73
|
#
|
78
74
|
def _number_to_coordinates(jdn)
|
79
75
|
j = jdn.to_i + 1401
|
@@ -88,14 +84,7 @@ module When
|
|
88
84
|
|
89
85
|
# 暦要素数
|
90
86
|
#
|
91
|
-
# @
|
92
|
-
# @param [Array<Integer>] date ( 年 )
|
93
|
-
# @return [Integer] 12 (=その年の月数)
|
94
|
-
#
|
95
|
-
# @overload _length(date)
|
96
|
-
# @param [Array<Integer>] date ( 年, 月 )
|
97
|
-
# @note 月は 0 始まりの通番
|
98
|
-
# @return [Integer] その年月の日数
|
87
|
+
# @see When::CalendarTypes::TableBased#_length
|
99
88
|
#
|
100
89
|
def _length(date)
|
101
90
|
yy, mm = date
|
@@ -104,17 +93,18 @@ module When
|
|
104
93
|
return (((((mm + 10) % 12) % 5) % 2) == 0) ? 31 : 30
|
105
94
|
end
|
106
95
|
|
96
|
+
# 復活祭の遅延日数
|
97
|
+
#
|
98
|
+
# @private
|
99
|
+
def _easter_delay(year)
|
100
|
+
0
|
101
|
+
end
|
102
|
+
|
107
103
|
private
|
108
104
|
|
109
105
|
def _normalize(args=[], options={})
|
110
106
|
raise TypeError, "#{self.class} is abstract class" unless @label
|
111
|
-
@note
|
112
|
-
@indices ||= [
|
113
|
-
Index.new({:unit =>12,
|
114
|
-
:trunk=>m17n('[::_m:CalendarTerms::Month::*]')}),
|
115
|
-
|
116
|
-
DefaultDayIndex
|
117
|
-
]
|
107
|
+
@note = When.CalendarNote(@note || 'Christian')
|
118
108
|
super
|
119
109
|
end
|
120
110
|
end
|
@@ -143,69 +133,127 @@ module When
|
|
143
133
|
private
|
144
134
|
|
145
135
|
def _normalize(args=[], options={})
|
146
|
-
@label ||=
|
136
|
+
@label ||= 'Christian::Julian'
|
147
137
|
super
|
148
138
|
end
|
149
139
|
end
|
150
140
|
|
151
141
|
#
|
152
|
-
#
|
142
|
+
# Swedish Calendar
|
153
143
|
#
|
154
|
-
class
|
144
|
+
class Swedish < Julian
|
155
145
|
|
156
|
-
#
|
146
|
+
# デフォルトの改暦日付(ユリウス通日)
|
147
|
+
#
|
148
|
+
# @private
|
149
|
+
DefaultReformDate = 2361390 # 1753-03-01
|
150
|
+
|
151
|
+
# @private
|
152
|
+
# Julian - 17000229 17120229
|
153
|
+
SwedishCalendarRange = 2342042...2346425
|
154
|
+
|
155
|
+
# @private
|
156
|
+
ExtraDate = [1712,1,29]
|
157
|
+
|
158
|
+
# @private
|
159
|
+
Length = {
|
160
|
+
[1700, nil] => 365,
|
161
|
+
[1700, 1] => 28,
|
162
|
+
[1712, nil] => 367,
|
163
|
+
[1712, 1] => 30
|
164
|
+
}
|
165
|
+
|
166
|
+
# Ref: http://www.ortelius.de/kalender/east_en.php
|
167
|
+
# @private
|
168
|
+
EasterDelay = {
|
169
|
+
1741 => -7,
|
170
|
+
1742 => -35,
|
171
|
+
1744 => -7,
|
172
|
+
1745 => -7,
|
173
|
+
1747 => -28,
|
174
|
+
1748 => -7,
|
175
|
+
1750 => -28,
|
176
|
+
1751 => -7,
|
177
|
+
1752 => -7,
|
178
|
+
1802 => +7,
|
179
|
+
1805 => +7,
|
180
|
+
1818 => +7
|
181
|
+
}
|
182
|
+
|
183
|
+
# 年月日 -> 通日
|
157
184
|
#
|
158
|
-
# @
|
185
|
+
# @see When::CalendarTypes::TableBased#_coordinates_to_number
|
159
186
|
#
|
160
|
-
|
187
|
+
def _coordinates_to_number(y,m,d)
|
188
|
+
jdn = super
|
189
|
+
return SwedishCalendarRange.last if [+y, m, d] == ExtraDate
|
190
|
+
SwedishCalendarRange.include?(jdn-1) ? jdn-1 : jdn
|
191
|
+
end
|
192
|
+
|
193
|
+
# 通日 - > 年月日
|
161
194
|
#
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
195
|
+
# @see When::CalendarTypes::TableBased#_number_to_coordinates
|
196
|
+
#
|
197
|
+
def _number_to_coordinates(jdn)
|
198
|
+
return ExtraDate.dup if jdn == SwedishCalendarRange.last
|
199
|
+
super(SwedishCalendarRange.include?(jdn) ? jdn+1 : jdn)
|
166
200
|
end
|
167
201
|
|
168
|
-
#
|
202
|
+
# 暦要素数
|
203
|
+
#
|
204
|
+
# @see When::CalendarTypes::TableBased#_length
|
169
205
|
#
|
170
|
-
|
171
|
-
|
172
|
-
|
206
|
+
def _length(date)
|
207
|
+
y, m = date
|
208
|
+
Length[[+y,m]] || super
|
209
|
+
end
|
210
|
+
|
211
|
+
# 復活祭の遅延日数
|
212
|
+
#
|
213
|
+
# @private
|
214
|
+
def _easter_delay(year)
|
215
|
+
EasterDelay[year] || 0
|
216
|
+
end
|
217
|
+
|
218
|
+
private
|
219
|
+
|
220
|
+
def _normalize(args=[], options={})
|
221
|
+
@label ||= 'Christian::Swedish'
|
222
|
+
super
|
223
|
+
end
|
224
|
+
end
|
225
|
+
|
226
|
+
#
|
227
|
+
# Variation of Christian Calendar
|
228
|
+
#
|
229
|
+
class ReformVariation < Christian
|
230
|
+
|
231
|
+
# 年月日 -> 通日
|
173
232
|
#
|
174
|
-
# @
|
233
|
+
# @see When::CalendarTypes::TableBased#_coordinates_to_number
|
175
234
|
#
|
176
235
|
def _coordinates_to_number(y,m,d)
|
177
|
-
|
178
|
-
super - ((3*(c-3)).div(4)+1)
|
236
|
+
super - _diff_from_century(((m < 2) ? +y-1 : +y).to_i.div(100))
|
179
237
|
end
|
180
238
|
|
181
239
|
# 通日 - > 年月日
|
182
240
|
#
|
183
|
-
# @
|
184
|
-
#
|
185
|
-
# @return [Array<Integer>] [ y, m, d ]
|
186
|
-
# y 年
|
187
|
-
# m 月 (0 始まり)
|
188
|
-
# d 日 (0 始まり)
|
241
|
+
# @see When::CalendarTypes::TableBased#_number_to_coordinates
|
189
242
|
#
|
190
243
|
def _number_to_coordinates(jdn)
|
191
|
-
super(jdn +
|
244
|
+
super(jdn + _diff_from_century(_century_from_jdn(jdn)))
|
192
245
|
end
|
193
246
|
|
194
247
|
# 暦要素数
|
195
248
|
#
|
196
|
-
# @
|
197
|
-
# @param [Array<Integer>] date ( 年 )
|
198
|
-
# @return [Integer] 12 (=その年の月数)
|
199
|
-
#
|
200
|
-
# @overload _length(date)
|
201
|
-
# @param [Array<Integer>] date ( 年, 月 )
|
202
|
-
# @note 月は 0 始まりの通番
|
203
|
-
# @return [Integer] その年月の日数
|
249
|
+
# @see When::CalendarTypes::TableBased#_length
|
204
250
|
#
|
205
251
|
def _length(date)
|
206
252
|
yy, mm = date
|
207
|
-
return
|
208
|
-
|
253
|
+
return super unless mm == 1 # 2月でなければユリウス暦と同じ
|
254
|
+
cc, yy = yy.divmod(100)
|
255
|
+
return super unless yy == 0 # 100で割り切れない年はユリウス暦と同じ
|
256
|
+
29 - (_diff_from_century(cc) - _diff_from_century(cc-1))
|
209
257
|
end
|
210
258
|
|
211
259
|
# 太陰方程式
|
@@ -216,13 +264,78 @@ module When
|
|
216
264
|
#
|
217
265
|
def _lunar_equation(year)
|
218
266
|
h = +year.div(100)
|
219
|
-
|
267
|
+
(8*(h+11)).div(25) - (_diff_from_century(h) + 5)
|
268
|
+
end
|
269
|
+
end
|
270
|
+
|
271
|
+
#
|
272
|
+
# Gregorian Calendar
|
273
|
+
#
|
274
|
+
class Gregorian < ReformVariation
|
275
|
+
|
276
|
+
# 百年代 - > ユリウス暦とグレゴリオ暦の差
|
277
|
+
#
|
278
|
+
# @param [Integer] century 百年代
|
279
|
+
#
|
280
|
+
# @return [Integer] ユリウス暦とグレゴリオ暦の差
|
281
|
+
#
|
282
|
+
def _diff_from_century(century)
|
283
|
+
(3*(century-3)).div(4)+1
|
284
|
+
end
|
285
|
+
|
286
|
+
# 通日 - > 百年代
|
287
|
+
#
|
288
|
+
# @param [Integer] jdn 通日
|
289
|
+
#
|
290
|
+
# @return [Integer] 百年代
|
291
|
+
#
|
292
|
+
def _century_from_jdn(jdn)
|
293
|
+
(4 * jdn - 6884477).div(146097)
|
220
294
|
end
|
221
295
|
|
222
296
|
private
|
223
297
|
|
224
298
|
def _normalize(args=[], options={})
|
225
|
-
@label ||=
|
299
|
+
@label ||= 'Christian::Gregorian'
|
300
|
+
super
|
301
|
+
end
|
302
|
+
end
|
303
|
+
|
304
|
+
#
|
305
|
+
# Revised Julian Calendar
|
306
|
+
#
|
307
|
+
class RevisedJulian < ReformVariation
|
308
|
+
|
309
|
+
# デフォルトの改暦日付(ユリウス通日)
|
310
|
+
#
|
311
|
+
# @private
|
312
|
+
DefaultReformDate = 2423707 # 1923-10-14
|
313
|
+
|
314
|
+
# 百年代 - > ユリウス暦と修正ユリウス暦の差
|
315
|
+
#
|
316
|
+
# @param [Integer] century 百年代
|
317
|
+
#
|
318
|
+
# @return [Integer] ユリウス暦と修正ユリウス暦の差
|
319
|
+
#
|
320
|
+
def _diff_from_century(century)
|
321
|
+
(7*(century-1)).div(9)-1
|
322
|
+
end
|
323
|
+
|
324
|
+
# 通日 - > 百年代
|
325
|
+
#
|
326
|
+
# @param [Integer] jdn 通日
|
327
|
+
#
|
328
|
+
# @return [Integer] 百年代
|
329
|
+
#
|
330
|
+
def _century_from_jdn(jdn)
|
331
|
+
(9 * jdn - 15490078).div(328718)
|
332
|
+
end
|
333
|
+
|
334
|
+
private
|
335
|
+
|
336
|
+
def _normalize(args=[], options={})
|
337
|
+
@label ||= 'Christian::RevisedJulian'
|
338
|
+
# @diff ||= [-2, -1, -1, 0, 1, 2, 2, 3, 4, 5] # 1~10世紀の各世紀のユリウス暦と差の日数
|
226
339
|
super
|
227
340
|
end
|
228
341
|
end
|
@@ -233,7 +346,7 @@ module When
|
|
233
346
|
class Civil < Gregorian
|
234
347
|
|
235
348
|
#
|
236
|
-
#
|
349
|
+
# 改暦日付
|
237
350
|
#
|
238
351
|
# @return [Integer]
|
239
352
|
#
|
@@ -258,34 +371,25 @@ module When
|
|
258
371
|
|
259
372
|
# 年月日 -> 通日
|
260
373
|
#
|
261
|
-
# @
|
262
|
-
# @param [Integer] m 月 (0 始まり)
|
263
|
-
# @param [Integer] d 日 (0 始まり)
|
264
|
-
#
|
265
|
-
# @return [Integer] 通日
|
374
|
+
# @see When::CalendarTypes::TableBased#_coordinates_to_number
|
266
375
|
#
|
267
376
|
def _coordinates_to_number(y,m,d)
|
268
377
|
skip, limit = @the_length[[y,m]]
|
269
378
|
d += skip if skip && d >= limit
|
270
|
-
jdn =
|
271
|
-
jdn >= @reform_jdn ? jdn : @
|
379
|
+
jdn = @new._coordinates_to_number(y,m,d)
|
380
|
+
jdn >= @reform_jdn ? jdn : @old._coordinates_to_number(y + @origin_of_MSC - @old.origin_of_MSC, m, d)
|
272
381
|
end
|
273
382
|
|
274
383
|
# 通日 - > 年月日
|
275
384
|
#
|
276
|
-
# @
|
277
|
-
#
|
278
|
-
# @return [Array<Integer>] ( y, m, d )
|
279
|
-
# [ y 年 ]
|
280
|
-
# [ m 月 (0 始まり) ]
|
281
|
-
# [ d 日 (0 始まり) ]
|
385
|
+
# @see When::CalendarTypes::TableBased#_number_to_coordinates
|
282
386
|
#
|
283
387
|
def _number_to_coordinates(jdn)
|
284
388
|
if jdn >= @reform_jdn
|
285
|
-
date =
|
389
|
+
date = @new._number_to_coordinates(jdn)
|
286
390
|
else
|
287
|
-
date = @
|
288
|
-
date[0] -= @origin_of_MSC - @
|
391
|
+
date = @old._number_to_coordinates(jdn)
|
392
|
+
date[0] -= @origin_of_MSC - @old.origin_of_MSC
|
289
393
|
end
|
290
394
|
skip, limit = @the_length[date[0..-2]]
|
291
395
|
date[2] -= skip if skip && date[2] >= limit
|
@@ -294,22 +398,15 @@ module When
|
|
294
398
|
|
295
399
|
# 暦要素数
|
296
400
|
#
|
297
|
-
# @
|
298
|
-
# @param [Array<Integer>] date ( 年 )
|
299
|
-
# @return [Integer] 12 (=その年の月数)
|
300
|
-
#
|
301
|
-
# @overload _length(date)
|
302
|
-
# @param [Array<Integer>] date ( 年, 月 )
|
303
|
-
# @note 月は 0 始まりの通番
|
304
|
-
# @return [Integer] その年月の日数
|
401
|
+
# @see When::CalendarTypes::TableBased#_length
|
305
402
|
#
|
306
403
|
def _length(date)
|
307
404
|
return @the_length[date][2] if @the_length[date]
|
308
405
|
yy, mm = date
|
309
406
|
(yy > @reform_date[0]) ||
|
310
407
|
(yy == @reform_date[0] && (!mm || mm >= @reform_date[1])) ?
|
311
|
-
|
312
|
-
@
|
408
|
+
@new._length(date) :
|
409
|
+
@old._length([yy + @origin_of_MSC - @old.origin_of_MSC, mm])
|
313
410
|
end
|
314
411
|
|
315
412
|
# 太陰方程式
|
@@ -319,27 +416,35 @@ module When
|
|
319
416
|
# @note 太陽暦日の補正も、本メソッドで行う
|
320
417
|
#
|
321
418
|
def _lunar_equation(year)
|
322
|
-
year >= @the_easter ?
|
419
|
+
year >= @the_easter ? @new._lunar_equation(year) : @old._lunar_equation(year)
|
420
|
+
end
|
421
|
+
|
422
|
+
# 復活祭の遅延日数
|
423
|
+
#
|
424
|
+
# @private
|
425
|
+
def _easter_delay(year)
|
426
|
+
@old._easter_delay(year)
|
323
427
|
end
|
324
428
|
|
325
429
|
private
|
326
430
|
|
327
431
|
# オブジェクトの正規化
|
328
432
|
#
|
329
|
-
# @
|
433
|
+
# @old = 改暦前の暦法(デフォルトはユリウス暦)
|
434
|
+
# @new = 改暦後の暦法(デフォルトはグレゴリオ暦)
|
330
435
|
# @reform_date = 改暦日付(月日は 1 オリジンで指定し、0 オリジンに直して保持)
|
331
436
|
# @reform_jdn = 改暦日付のユリウス通日
|
332
437
|
# @reform = reform_date か reform_jdn を内容で判別し、どちらかに反映する
|
333
|
-
# @the_easter =
|
438
|
+
# @the_easter = 新暦法の復活祭計算の適用を始める年
|
334
439
|
# @the_length = 通常と異なる日付となる年月の情報({[年,月]=>[スキップした日数, スキップし始める日, 月の日数]})
|
335
440
|
#
|
336
441
|
def _normalize(args=[], options={})
|
337
|
-
@label
|
442
|
+
@label ||= 'Christian::Civil'
|
338
443
|
|
339
444
|
# 前後の暦法
|
340
|
-
@
|
341
|
-
|
342
|
-
@indices
|
445
|
+
@old = When.Calendar(@old || 'Julian')
|
446
|
+
@new = When.Calendar(@new || 'Gregorian')
|
447
|
+
@indices ||= @old.indices
|
343
448
|
|
344
449
|
# 改暦日付 (0 オリジン)
|
345
450
|
@reform = When::Coordinates::Pair._en_pair_date_time(@reform) if @reform.kind_of?(String)
|
@@ -353,27 +458,27 @@ module When
|
|
353
458
|
@reform_date = When::Coordinates::Pair._en_pair_date_time(@reform_date) if @reform_date.kind_of?(String)
|
354
459
|
@reform_date = @reform_date.map {|c| c.to_i}
|
355
460
|
(1..2).each {|i| @reform_date[i] = @reform_date[i] ? @reform_date[i] - 1 : 0 }
|
356
|
-
@reform_jdn =
|
461
|
+
@reform_jdn = @new._coordinates_to_number(*@reform_date)
|
357
462
|
else
|
358
|
-
@reform_jdn ||=
|
463
|
+
@reform_jdn ||= [@old.class::DefaultReformDate, @new.class::DefaultReformDate].max
|
359
464
|
@reform_jdn = @reform_jdn.to_i
|
360
|
-
@reform_date =
|
465
|
+
@reform_date = @new._number_to_coordinates(@reform_jdn)
|
361
466
|
end
|
362
|
-
last_date
|
467
|
+
last_date = @old._number_to_coordinates(@reform_jdn-1)
|
363
468
|
|
364
469
|
# 復活祭との前後関係
|
365
|
-
@the_easter = @reform_jdn > When.CalendarNote('Christian').easter(@reform_date[0],
|
470
|
+
@the_easter = @reform_jdn > When.CalendarNote('Christian').easter(@reform_date[0], @new) ? @reform_date[0]+1 : @reform_date[0]
|
366
471
|
|
367
472
|
# 月の日数
|
368
|
-
this_month
|
369
|
-
|
370
|
-
@the_length
|
473
|
+
this_month = @reform_date[0..1]
|
474
|
+
new_length = @new._length(this_month)
|
475
|
+
@the_length = {}
|
371
476
|
if @reform_date[1] == last_date[1] # 同一月内に閉じた改暦
|
372
477
|
skipped_length = @reform_date[2] - last_date[2] - 1
|
373
|
-
@the_length[this_month] = [skipped_length, last_date[2]+1,
|
478
|
+
@the_length[this_month] = [skipped_length, last_date[2]+1, new_length-skipped_length]
|
374
479
|
else
|
375
480
|
last_month = [(@reform_date[1] > last_date[1] ? @reform_date[0] : @reform_date[0]-1), last_date[1]]
|
376
|
-
@the_length[this_month] = [@reform_date[2], 0,
|
481
|
+
@the_length[this_month] = [@reform_date[2], 0, new_length - @reform_date[2]]
|
377
482
|
@the_length[last_month] = [false, false, last_date[2]+1]
|
378
483
|
end
|
379
484
|
|
@@ -411,7 +516,7 @@ module When
|
|
411
516
|
#
|
412
517
|
# @return [Array<Numeric>] その年の境界
|
413
518
|
#
|
414
|
-
def border(date=[], frame=When
|
519
|
+
def border(date=[], frame=When::Gregorian)
|
415
520
|
frame._encode(frame._number_to_coordinates(frame.note.easter(date[0], frame)), false)
|
416
521
|
end
|
417
522
|
|
@@ -429,8 +534,7 @@ module When
|
|
429
534
|
#
|
430
535
|
class CalendarNote::Christian < CalendarNote
|
431
536
|
|
432
|
-
|
433
|
-
"namespace:[en=http://en.wikipedia.org/wiki/, ja=http://ja.wikipedia.org/wiki/]",
|
537
|
+
Notes = [When::BasicTypes::M17n, [
|
434
538
|
"locale:[=en:, ja=ja:, alias]",
|
435
539
|
"names:[Christian]",
|
436
540
|
|
@@ -515,6 +619,11 @@ module When
|
|
515
619
|
60 => "Corpus Christi",
|
516
620
|
}.update(moveable_feasts)
|
517
621
|
|
622
|
+
#
|
623
|
+
# 暦法によってイベントの動作を変えるか否か
|
624
|
+
#
|
625
|
+
CalendarDepend = true
|
626
|
+
|
518
627
|
# 週日補正フラグ
|
519
628
|
# @return [Integer]
|
520
629
|
attr_reader :w
|
@@ -554,11 +663,11 @@ module When
|
|
554
663
|
# 七曜
|
555
664
|
#
|
556
665
|
# @param [When::TM::TemporalPosition] date
|
557
|
-
# @param [When::TM::
|
666
|
+
# @param [When::TM::CalDate] base (not used)
|
558
667
|
#
|
559
668
|
# @return [When::Coordinates::Residue] 七曜
|
560
669
|
#
|
561
|
-
def week(date,
|
670
|
+
def week(date, base=nil)
|
562
671
|
When.Residue('Week')[date.to_i % 7]
|
563
672
|
end
|
564
673
|
|
@@ -566,7 +675,7 @@ module When
|
|
566
675
|
#
|
567
676
|
# @param [Numeric] date 西暦の年数
|
568
677
|
# @param [When::TM::TemporalPosition] date
|
569
|
-
# @param [When::TM::ReferenceSystem] frame 使用する暦法(デフォルトは When
|
678
|
+
# @param [When::TM::ReferenceSystem] frame 使用する暦法(デフォルトは When::Gregorian)
|
570
679
|
#
|
571
680
|
# @return [Integer] クリスマスのユリウス通日(dateが西暦の年数の場合)
|
572
681
|
# @return [When::TM::CalDate] クリスマスのWhen::TM::CalDate(yearがWhen::TM::TemporalPositionの場合)
|
@@ -581,7 +690,7 @@ module When
|
|
581
690
|
#
|
582
691
|
# @param [Numeric] date 西暦の年数
|
583
692
|
# @param [When::TM::TemporalPosition] date
|
584
|
-
# @param [When::TM::ReferenceSystem] frame 使用する暦法(デフォルトは When
|
693
|
+
# @param [When::TM::ReferenceSystem] frame 使用する暦法(デフォルトは When::Gregorian)
|
585
694
|
#
|
586
695
|
# @return [Integer] 復活祭のユリウス通日(dateが西暦の年数の場合)
|
587
696
|
# @return [When::TM::CalDate] 復活祭のWhen::TM::CalDate(yearがWhen::TM::TemporalPositionの場合)
|
@@ -598,14 +707,14 @@ module When
|
|
598
707
|
end
|
599
708
|
result = frame._coordinates_to_number(year, 2, 0) + @d - 1 - m
|
600
709
|
result += @g - (result-@w) % 7 if @w<7
|
601
|
-
result
|
710
|
+
result + frame._easter_delay(year)
|
602
711
|
end
|
603
712
|
end
|
604
713
|
|
605
714
|
# イベントの標準的な間隔を返す
|
606
715
|
# @private
|
607
716
|
def _delta(parameter=nil)
|
608
|
-
return When::
|
717
|
+
return When::P1Y
|
609
718
|
end
|
610
719
|
|
611
720
|
# @private
|
@@ -617,7 +726,7 @@ module When
|
|
617
726
|
# 固定祝日
|
618
727
|
#
|
619
728
|
# @param [When::TM::TemporalPosition] date
|
620
|
-
# @param [When::TM::ReferenceSystem] frame 使用する暦法(デフォルトは When
|
729
|
+
# @param [When::TM::ReferenceSystem] frame 使用する暦法(デフォルトは When::Gregorian)
|
621
730
|
#
|
622
731
|
# @return [String] 祝日の名称
|
623
732
|
# @return [nil] 祝日に該当しない
|
@@ -630,7 +739,7 @@ module When
|
|
630
739
|
# 移動祝日
|
631
740
|
#
|
632
741
|
# @param [When::TM::TemporalPosition] date
|
633
|
-
# @param [When::TM::ReferenceSystem] frame 使用する暦法(デフォルトは When
|
742
|
+
# @param [When::TM::ReferenceSystem] frame 使用する暦法(デフォルトは When::Gregorian)
|
634
743
|
#
|
635
744
|
# @return [String] 祝日の名称
|
636
745
|
# @return [nil] 祝日に該当しない
|
@@ -675,7 +784,7 @@ module When
|
|
675
784
|
#
|
676
785
|
def _to_date_for_note(date)
|
677
786
|
return When.Calendar(When::CalendarTypes::Christian._default_start(date)) ^ date if ::Object.const_defined?(:Date) && date.kind_of?(::Date)
|
678
|
-
return When
|
787
|
+
return When::Gregorian ^ date if date.kind_of?(::Time)
|
679
788
|
return date if date.frame.kind_of?(When::CalendarTypes::Christian)
|
680
789
|
When.Calendar(date.frame.iri =~ /Coptic/ || date.to_i < 2299161 ? 'Julian' : 'Gregorian') ^ date
|
681
790
|
end
|
@@ -683,7 +792,7 @@ module When
|
|
683
792
|
# 当該年のイベントの日付
|
684
793
|
# date : 西暦の年数 or When::TM::(Temporal)Position
|
685
794
|
# event : イベント名 (String)
|
686
|
-
# frame : 暦法(デフォルトは When
|
795
|
+
# frame : 暦法(デフォルトは When:Gregorian)
|
687
796
|
#
|
688
797
|
# @return [Integer] イベントのユリウス通日(dateが西暦の年数の場合)
|
689
798
|
# @return [When::TM::CalDate] イベントのWhen::TM::CalDate(yearがWhen::TM::(Temporal)Positionの場合)
|
@@ -706,7 +815,7 @@ module When
|
|
706
815
|
else
|
707
816
|
raise TypeError, "Irregal date type: #{date.class}"
|
708
817
|
end
|
709
|
-
frame ||= When
|
818
|
+
frame ||= When::Gregorian
|
710
819
|
result = yield(year, frame)
|
711
820
|
return result if date.kind_of?(Numeric)
|
712
821
|
return frame.jul_trans(result, options)
|