when_exe 0.4.6 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/LICENSE.ja.txt +8 -21
- data/LICENSE.txt +5 -27
- data/README.md +8 -63
- data/bin/make_ttl.rb +3 -2
- data/bin/make_ttl.rb.config +3 -3
- data/lib/when_exe.rb +8 -3
- data/lib/when_exe/basictypes.rb +1 -2
- data/lib/when_exe/calendarnote.rb +9 -5
- data/lib/when_exe/calendartypes.rb +4 -4
- data/lib/when_exe/coordinates.rb +14 -18
- data/lib/when_exe/ephemeris.rb +5 -6
- data/lib/when_exe/events.rb +7 -7
- data/lib/when_exe/google_api.rb +26 -31
- data/lib/when_exe/icalendar.rb +8 -8
- data/lib/when_exe/inspect.rb +3 -3
- data/lib/when_exe/linkeddata.rb +10 -2
- data/lib/when_exe/locales/locale.rb +2 -2
- data/lib/when_exe/parts/enumerator.rb +3 -3
- data/lib/when_exe/parts/geometric_complex.rb +2 -2
- data/lib/when_exe/parts/resource.rb +2 -2
- data/lib/when_exe/parts/timezone.rb +17 -29
- data/lib/when_exe/region/balinese.rb +5 -3
- data/lib/when_exe/region/chinese.rb +25 -3
- data/lib/when_exe/region/chinese/twins.rb +128 -5
- data/lib/when_exe/region/dee.rb +4 -4
- data/lib/when_exe/region/geologicalage.rb +137 -126
- data/lib/when_exe/region/hanke_henry.rb +4 -4
- data/lib/when_exe/region/indian.rb +73 -4
- data/lib/when_exe/region/international_fixed.rb +3 -3
- data/lib/when_exe/region/japanese.rb +9 -5
- data/lib/when_exe/region/japanese/epochs.rb +8 -4
- data/lib/when_exe/region/japanese/notes.rb +25 -7
- data/lib/when_exe/region/japanese/residues.rb +32 -10
- data/lib/when_exe/region/japanese/weeks.rb +7 -7
- data/lib/when_exe/region/korean.rb +17 -17
- data/lib/when_exe/region/saudi_arabian.rb +57 -0
- data/lib/when_exe/region/world.rb +3 -3
- data/lib/when_exe/timestandard.rb +7 -5
- data/lib/when_exe/tmobjects.rb +2 -2
- data/lib/when_exe/tmposition.rb +6 -4
- data/lib/when_exe/tmreference.rb +3 -3
- data/lib/when_exe/version.rb +3 -3
- data/test/events/example-datasets +0 -1
- data/test/events/japanese-holiday.csv +23 -6
- data/test/events/japanese-holiday.ttl +321 -151
- data/test/test/basictypes.rb +2 -2
- data/test/test/calendarnote.rb +2 -2
- data/test/test/coordinates.rb +6 -4
- data/test/test/ephemeris.rb +2 -2
- data/test/test/google_api.rb +45 -32
- data/test/test/inspect.rb +2 -2
- data/test/test/parts.rb +5 -5
- data/test/test/region/christian.rb +7 -7
- data/test/test/region/indian.rb +14 -1
- data/test/test/region/islamic.rb +11 -1
- data/test/test/region/japanese.rb +3 -3
- data/test/test/region/m17n.rb +2 -2
- data/test/test/region/reforms.rb +2 -2
- data/test/test/tmposition.rb +7 -7
- metadata +7 -8
@@ -1,6 +1,6 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
=begin
|
3
|
-
Copyright (C) 2014-
|
3
|
+
Copyright (C) 2014-2021 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
|
@@ -40,7 +40,7 @@ module When
|
|
40
40
|
#
|
41
41
|
HankeHenry = [CyclicTableBased, {
|
42
42
|
'label' => 'HankeHenry::HankeHenry',
|
43
|
-
'origin_of_LSC' => 1721061
|
43
|
+
'origin_of_LSC' => 1721062, # 1721061(Sun) -> 1721062(Mon)
|
44
44
|
'indices' => [
|
45
45
|
When.Index('HankeHenry::Month'),
|
46
46
|
When::Coordinates::DefaultDayIndex
|
@@ -49,8 +49,8 @@ module When
|
|
49
49
|
'T' => {'Rule' =>(2000...2400).to_a.map {|year|
|
50
50
|
[When.tm_pos(year,1,1), When.tm_pos(year,12,31)].map {|date| date.to_i % 7}.include?(3) ? 371 : 364
|
51
51
|
}},
|
52
|
-
364 => {'Length'=>[30,30,31]*4},
|
53
|
-
371 => {'Length'=>[30,30,31]*4 +[7]}
|
52
|
+
364 => {'Length'=>[30,30,31] * 4},
|
53
|
+
371 => {'Length'=>[30,30,31] * 4 + [7]}
|
54
54
|
}
|
55
55
|
}]
|
56
56
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
=begin
|
3
|
-
Copyright (C) 2011-
|
3
|
+
Copyright (C) 2011-2019 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
|
@@ -16,6 +16,7 @@ module When
|
|
16
16
|
"[IndianNationalSolar=en:Indian_national_calendar, インド国定暦, 印度國定曆, era:SE=]",
|
17
17
|
"[Nanakshahi=en:Nanakshahi_calendar, ナーナク暦=, 拿那克曆=]",
|
18
18
|
"[RevisedBengali=en:Bengali_calendar, 改訂ベンガル暦=, 改变孟加拉曆=]",
|
19
|
+
"[VikramSamvat=en:Vikram_Samvat, ヴィクラマ暦, 维克拉姆历]",
|
19
20
|
"[HinduSolar=en:Hindu_calendar, インド太陽暦=ja:%%<ヒンドゥー暦>, 印度陽曆=]",
|
20
21
|
"[HinduLuniSolar=en:Hindu_calendar, インド太陰太陽暦=ja:%%<ヒンドゥー暦>, 印度陰陽曆=]",
|
21
22
|
|
@@ -619,6 +620,74 @@ module When
|
|
619
620
|
}
|
620
621
|
}]
|
621
622
|
|
623
|
+
#
|
624
|
+
# Vikram Sambat Solar Calendar defined by Table
|
625
|
+
#
|
626
|
+
VikramSambatSolar = [PatternTableBasedSolar, {
|
627
|
+
'label' => 'Indian::VikramSamvat',
|
628
|
+
'indices' => [
|
629
|
+
When.Index('Indian::SolarMonth'),
|
630
|
+
When::Coordinates::DefaultDayIndex
|
631
|
+
],
|
632
|
+
'origin_of_MSC' => 2002,
|
633
|
+
'origin_of_LSC' => 2431559,
|
634
|
+
'epoch_in_CE' => 1945,
|
635
|
+
'before' => 'VikramSamvatSolar',
|
636
|
+
'after' => 'VikramSamvatSolar',
|
637
|
+
'rule_table' => %w(112210900900)
|
638
|
+
}]
|
639
|
+
|
640
|
+
#
|
641
|
+
# Vikram Samvat Solar Calendar defined by Epehmeris
|
642
|
+
#
|
643
|
+
class VikramSamvatSolar < EphemerisBased
|
644
|
+
|
645
|
+
# see https://en.wikipedia.org/wiki/Vikram_Samvat
|
646
|
+
|
647
|
+
MonthLength = [30.950, 31.429, 31.638, 31.463, 31.012, 30.428, 29.879, 29.475, 29.310, 29.457, 29.841, 30.377] # unit : day
|
648
|
+
MonthDiff = [-0.5, -1.2, -1.0, -6.6, -0.7, -0.2, 0.0, +0.5, +0.7, +8.0, +0.3, -0.1] # unit : hour
|
649
|
+
year_length = MonthLength.inject(:+)
|
650
|
+
YearLength = (1_582_237_828 - 4_320_000) / (4_320_000.0)
|
651
|
+
MonthOffset = [0.0] + (0...11).to_a.map {|i| MonthLength[0..i].inject(:+) / year_length * YearLength}
|
652
|
+
YearOffset = 2430463.78
|
653
|
+
|
654
|
+
# protected
|
655
|
+
|
656
|
+
# 月初の通日
|
657
|
+
#
|
658
|
+
# @param [Integer] m 通月
|
659
|
+
#
|
660
|
+
# @return [Integer] 月初の通日
|
661
|
+
#
|
662
|
+
def _new_month_(m)
|
663
|
+
yy, mm = m.divmod(12)
|
664
|
+
(YearOffset + (yy - 1999) * YearLength + @month_offset[mm]).floor
|
665
|
+
end
|
666
|
+
|
667
|
+
private
|
668
|
+
|
669
|
+
# オブジェクトの正規化
|
670
|
+
#
|
671
|
+
# @month_offset = 月初の日時の補正値の配列 / hour
|
672
|
+
#
|
673
|
+
def _normalize(args=[], options={})
|
674
|
+
@label ||= 'Indian::VikramSamvat'
|
675
|
+
@month_offset = (0...12).to_a.map {|mm| MonthOffset[mm] + ((
|
676
|
+
case @month_offset
|
677
|
+
when nil ; MonthDiff
|
678
|
+
when /,/ ; @month_offset.split(',').map {|offset| offset.to_f}
|
679
|
+
else ; [@month_offset.to_f] * 12
|
680
|
+
end
|
681
|
+
)[mm] || 0) / 24.0
|
682
|
+
}
|
683
|
+
@indices ||= [
|
684
|
+
When.Index('Indian::SolarMonth'),
|
685
|
+
When::Coordinates::DefaultDayIndex
|
686
|
+
]
|
687
|
+
super
|
688
|
+
end
|
689
|
+
end
|
690
|
+
|
622
691
|
#
|
623
692
|
# Hindu Solar Calendar
|
624
693
|
#
|
@@ -650,7 +719,7 @@ module When
|
|
650
719
|
def _normalize(args=[], options={})
|
651
720
|
@label ||= 'Indian::HinduSolar'
|
652
721
|
@type ||= 'SBS'
|
653
|
-
raise ArgumentError, "Irregal formula: #{@formula}" unless @type.upcase =~ /\A(M|SS|SB)(V|S|B|H|VZ|SZ|BZ|HZ)\z/
|
722
|
+
raise ArgumentError, "Irregal formula: #{@formula}" unless @type.upcase =~ /\A(M|SS|SB)(V|S|B|H|G|N|K|VZ|SZ|BZ|HZ|GZ|NZ|KZ)\z/
|
654
723
|
|
655
724
|
@location ||= HinduLuniSolar::Location_E[$2] || HinduLuniSolar::Location_F[$1]
|
656
725
|
@cycle_offset ||= HinduLuniSolar::CycleOffset[$1]
|
@@ -684,7 +753,7 @@ module When
|
|
684
753
|
Location_E = {'B'=>'_co:Indian::Dacca', 'BZ'=>'_co:Indian::Dacca', 'H'=>'_co:Iranian::Tehran', 'HZ'=>'_co:Iranian::Tehran'}
|
685
754
|
CycleOffset = {'M'=>+23.25/30, 'SS'=>0.0, 'SB'=>0.0}
|
686
755
|
HinduStyle = {'A'=>0, 'P'=>1, 'PX'=>2}
|
687
|
-
YearEpoch = {'V'=>-58,'VZ'=>-57,'S'=>78, 'SZ'=>79, 'B'=> 593, 'BZ'=>594, 'H'=> 621, 'HZ'=> 622}
|
756
|
+
YearEpoch = {'V'=>-58,'VZ'=>-57,'S'=>78, 'SZ'=>79, 'G'=>318, 'GZ'=>319, 'B'=> 593, 'BZ'=>594, 'H'=> 621, 'HZ'=> 622, 'N'=>801, 'NZ'=>802, 'K'=>824, 'KZ'=>825}
|
688
757
|
|
689
758
|
# White / black month and leap month identification table
|
690
759
|
|
@@ -793,7 +862,7 @@ module When
|
|
793
862
|
def _normalize(args=[], options={})
|
794
863
|
@label ||= 'Indian::HinduLuniSolar'
|
795
864
|
@type ||= 'SBSA'
|
796
|
-
raise ArgumentError, "Irregal formula: #{@formula}" unless @type.upcase =~ /\A(M|SS|SB)(V|S|B|H|VZ|SZ|BZ|HZ)(A|P|PX)\z/
|
865
|
+
raise ArgumentError, "Irregal formula: #{@formula}" unless @type.upcase =~ /\A(M|SS|SB)(V|S|B|H|G|N|K|VZ|SZ|BZ|HZ|GZ|NZ|KZ)(A|P|PX)\z/
|
797
866
|
|
798
867
|
@location ||= Location_E[$2] || Location_F[$1]
|
799
868
|
@cycle_offset ||= CycleOffset[$1]
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
=begin
|
3
|
-
Copyright (C) 2014-
|
3
|
+
Copyright (C) 2014-2021 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
|
@@ -87,8 +87,8 @@ module When
|
|
87
87
|
When::Coordinates::DefaultDayIndex
|
88
88
|
],
|
89
89
|
'rule_table' => {
|
90
|
-
365 => {'Length'=>[28]*12 + [29]},
|
91
|
-
366 => {'Length'=>[28]*
|
90
|
+
365 => {'Length'=>[28] * 12 + [29]},
|
91
|
+
366 => {'Length'=>[28] * 5 + [29] + [28] * 6 + [29]}
|
92
92
|
},
|
93
93
|
'note' => 'InternationalFixedWeek'
|
94
94
|
}]
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
=begin
|
3
|
-
Copyright (C) 2011-
|
3
|
+
Copyright (C) 2011-2019 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
|
@@ -107,6 +107,8 @@ module When
|
|
107
107
|
"[天皇誕生日, The Emperor's Birthday ]",
|
108
108
|
"[みどりの日, Greenery Day ]",
|
109
109
|
"[昭和の日, Shōwa Day ]",
|
110
|
+
"[退位の日=, Day of Abdication=]",
|
111
|
+
"[即位の日=, Coronation Day of the new Emperor=]",
|
110
112
|
"[憲法記念日, Constitution Memorial Day ]",
|
111
113
|
"[こどもの日, Children's Day (Japan) ]",
|
112
114
|
"[七夕節句=ja:%%<七夕>, Qixi Festival ]",
|
@@ -117,20 +119,21 @@ module When
|
|
117
119
|
"[敬老の日, Respect for the Aged Day ]",
|
118
120
|
"[神嘗祭, Kan'namesai= ]",
|
119
121
|
"[体育の日, Health and Sports Day ]",
|
122
|
+
"[スポーツの日, Sports Day ]",
|
120
123
|
"[春季皇霊祭, Vernal Kōreisai=en:K%C5%8Dreisai ]",
|
121
124
|
"[春分の日, Vernal Equinox Day ]",
|
122
125
|
"[秋季皇霊祭, Autumnal Kōreisai=en:K%C5%8Dreisai ]",
|
123
126
|
"[秋分の日, Autumnal Equinox Day ]",
|
124
127
|
"[明治節, The emperor Maiji's Birthday=en:Culture_Day]",
|
125
128
|
"[文化の日, Culture Day ]",
|
126
|
-
"[大嘗祭, Enthronement of the Japanese Emperor
|
127
|
-
"[大饗第1日, Enthronement of the Japanese Emperor
|
129
|
+
"[大嘗祭, Enthronement of the Japanese Emperor= ]",
|
130
|
+
"[大饗第1日, Enthronement of the Japanese Emperor= ]",
|
128
131
|
"[新嘗祭, Labor Thanksgiving Day ]",
|
129
132
|
"[勤労感謝の日, Labor Thanksgiving Day ]",
|
130
133
|
"[振替休日, Substitute holiday ]",
|
131
134
|
"[国民の休日, National Day Off= ]",
|
132
|
-
"[即位の礼, Enthronement of the Japanese Emperor
|
133
|
-
"[
|
135
|
+
"[即位の礼, Enthronement of the Japanese Emperor= ]",
|
136
|
+
"[即位礼正殿の儀, Enthronement of the Japanese Emperor=]",
|
134
137
|
"[神武天皇祭, EmperorJimmu's Death anniversary= ]",
|
135
138
|
"[孝明天皇祭=ja:%%<先帝祭>, Emperor Kōmei's Death anniversary= ]",
|
136
139
|
"[明治天皇祭=ja:%%<先帝祭>, Emperor Meiji's Death anniversary= ]",
|
@@ -139,6 +142,7 @@ module When
|
|
139
142
|
"[弥生節句=ja:%%<上巳>, Double Third Festival= ]",
|
140
143
|
"[端午節句=ja:%%<端午>, Double Fifth Festival= ]",
|
141
144
|
"[田実節句=ja:%%<八朔>, Hassaku= ]",
|
145
|
+
"[皇大神宮遷御当日=ja:%%<神宮式年遷宮>, Rebuilding the Ise Grand Shrine= ]",
|
142
146
|
"[皇太子明仁親王の結婚の儀=ja:%%<結婚の儀>, Prince Akihito's wedding= ]",
|
143
147
|
"[皇太子徳仁親王の結婚の儀=ja:%%<結婚の儀>, Prince Naruhito's wedding= ]",
|
144
148
|
"[天長節祝日=ja:%%<天皇誕生日>#%.<近世・現代>, Emperor Taishō's Birth holiday= ]",
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
=begin
|
3
|
-
Copyright (C) 2011-
|
3
|
+
Copyright (C) 2011-2021 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
|
@@ -335,7 +335,9 @@ module When
|
|
335
335
|
["[昭和,Shōwa=en:Sh%C5%8Dwa_period,S]1.12.25", "@A",
|
336
336
|
"name=[昭和天皇,Emperor_Shōwa];1926-12-25"],
|
337
337
|
["[平成,Heisei=en:Heisei_period,H]1.01.08", "@A",
|
338
|
-
"name=[
|
338
|
+
"name=[上皇明仁,Emperor_Emeritus_of_Japan=en:Akihito];1989-01-08"],
|
339
|
+
["[令和,Reiwa,R]1.05.01", "@A",
|
340
|
+
"name=[今上天皇=ja:%%<徳仁>,Emperor_Kinjō=en:Naruhito];2019-05-01"]
|
339
341
|
]]
|
340
342
|
|
341
343
|
#
|
@@ -403,7 +405,7 @@ module When
|
|
403
405
|
["[鈴木善幸]1.07.17", "@A", "1980-07-17"],
|
404
406
|
["[中曽根康弘]1.11.27", "@A", "1982-11-27"],
|
405
407
|
["[竹下登]1.11.06", "@A", "1987-11-06",
|
406
|
-
"name=[
|
408
|
+
"name=[上皇明仁,Emperor_Emeritus_of_Japan=en:Akihito];1989-01-08", ""],
|
407
409
|
["[宇野宗佑]1.06.03", "@A", "1989-06-03"],
|
408
410
|
["[海部俊樹]1.08.10", "@A", "1989-08-10"],
|
409
411
|
["[宮沢喜一]1.11.05", "@A", "1991-11-05"],
|
@@ -420,7 +422,9 @@ module When
|
|
420
422
|
["[鳩山由紀夫]1.09.16", "@A", "2009-09-16"],
|
421
423
|
["[菅直人]1.06.08", "@A", "2010-06-08"],
|
422
424
|
["[野田佳彦]1.09.02", "@A", "2011-09-02"],
|
423
|
-
["[安倍晋三・再=ja:%%<安倍晋三>]1.12.26", "@A", "2012-12-26"
|
425
|
+
["[安倍晋三・再=ja:%%<安倍晋三>]1.12.26", "@A", "2012-12-26",
|
426
|
+
"name=[今上天皇=ja:%%<徳仁>,Emperor_Kinjō=en:Naruhito];2019-05-01", ""],
|
427
|
+
["[菅義偉]1.09.16", "@A", "2020-09-16"]
|
424
428
|
]]
|
425
429
|
end
|
426
430
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
=begin
|
3
|
-
Copyright (C) 2012-
|
3
|
+
Copyright (C) 2012-2021 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
|
@@ -798,6 +798,7 @@ class When::CalendarNote
|
|
798
798
|
[ 1,29] => [[1873..1873, When.M17n('JapaneseHoliday::神武天皇即位日')]],
|
799
799
|
[ 1,30] => [[1874..1912, When.M17n('JapaneseHoliday::孝明天皇祭')]],
|
800
800
|
[ 2,11] => [[1874..1948, When.M17n('JapaneseHoliday::紀元節')], [1967..2100, When.M17n('JapaneseHoliday::建国記念の日')]],
|
801
|
+
[ 2,23] => [[2020..2100, When.M17n('JapaneseHoliday::天皇誕生日')]],
|
801
802
|
[ 2,24] => [[1989..1989, When.M17n('JapaneseHoliday::昭和天皇の大喪の礼')]],
|
802
803
|
[ 3, 3] => [[1868..1872, When.M17n('JapaneseHoliday::弥生節句')]],
|
803
804
|
[ 3, 0] => [[1879..1948, When.M17n('JapaneseHoliday::春季皇霊祭')], [1949..2100, When.M17n('JapaneseHoliday::春分の日')]],
|
@@ -805,6 +806,7 @@ class When::CalendarNote
|
|
805
806
|
[ 4,10] => [[1959..1959, When.M17n('JapaneseHoliday::皇太子明仁親王の結婚の儀')]],
|
806
807
|
[ 4,29] => [[1927..1948, When.M17n('JapaneseHoliday::天長節')], [1949..1988, When.M17n('JapaneseHoliday::天皇誕生日')],
|
807
808
|
[1989..2006, When.M17n('JapaneseHoliday::みどりの日')], [2007..2100, When.M17n('JapaneseHoliday::昭和の日')]],
|
809
|
+
[ 5, 1] => [[2019..2019, When.M17n('JapaneseHoliday::即位の日')]],
|
808
810
|
[ 5, 3] => [[1949..2100, When.M17n('JapaneseHoliday::憲法記念日')]],
|
809
811
|
[ 5, 4] => [[2007..2100, When.M17n('JapaneseHoliday::みどりの日')]],
|
810
812
|
[ 5, 5] => [[1868..1872, When.M17n('JapaneseHoliday::端午節句')], [1949..2100, When.M17n('JapaneseHoliday::こどもの日')]],
|
@@ -812,28 +814,35 @@ class When::CalendarNote
|
|
812
814
|
[ 7, 7] => [[1868..1872, When.M17n('JapaneseHoliday::七夕節句')]],
|
813
815
|
[ 7,15] => [[1868..1872, When.M17n('JapaneseHoliday::お盆')]],
|
814
816
|
[ 7,20] => [[1996..2002, When.M17n('JapaneseHoliday::海の日')]],
|
815
|
-
[ 7
|
817
|
+
[ 7,22] => [[2021..2021, When.M17n('JapaneseHoliday::海の日')]],
|
818
|
+
[ 7,23] => [[2020..2020, When.M17n('JapaneseHoliday::海の日')],[2021..2021, When.M17n('JapaneseHoliday::スポーツの日')]],
|
819
|
+
[ 7,-3] => [[2003..2019, When.M17n('JapaneseHoliday::海の日')],[2022..2100, When.M17n('JapaneseHoliday::海の日')]],
|
820
|
+
[ 7,24] => [[2020..2020, When.M17n('JapaneseHoliday::スポーツの日')]],
|
816
821
|
[ 7,30] => [[1913..1926, When.M17n('JapaneseHoliday::明治天皇祭')]],
|
817
822
|
[ 8, 1] => [[1868..1872, When.M17n('JapaneseHoliday::田実節句')]],
|
818
|
-
[ 8,
|
823
|
+
[ 8, 8] => [[2021..2021, When.M17n('JapaneseHoliday::山の日')]],
|
824
|
+
[ 8,10] => [[2020..2020, When.M17n('JapaneseHoliday::山の日')]],
|
825
|
+
[ 8,11] => [[2016..2019, When.M17n('JapaneseHoliday::山の日')],[2022..2100, When.M17n('JapaneseHoliday::山の日')]],
|
819
826
|
[ 8,31] => [[1913..1926, When.M17n('JapaneseHoliday::天長節')]],
|
820
827
|
[ 9, 9] => [[1868..1872, When.M17n('JapaneseHoliday::重陽節句')]],
|
821
828
|
[ 9,15] => [[1966..2002, When.M17n('JapaneseHoliday::敬老の日')]],
|
822
829
|
[ 9,-3] => [[2003..2100, When.M17n('JapaneseHoliday::敬老の日')]],
|
823
830
|
[ 9,17] => [[1874..1878, When.M17n('JapaneseHoliday::神嘗祭')]],
|
824
831
|
[ 9, 0] => [[1878..1947, When.M17n('JapaneseHoliday::秋季皇霊祭')], [1948..2100, When.M17n('JapaneseHoliday::秋分の日')]],
|
832
|
+
[10, 2] => [[1929..1929, When.M17n('JapaneseHoliday::皇大神宮遷御当日')]],
|
825
833
|
[10,10] => [[1966..1999, When.M17n('JapaneseHoliday::体育の日')]],
|
826
|
-
[10,-2] => [[2000..
|
834
|
+
[10,-2] => [[2000..2019, When.M17n('JapaneseHoliday::体育の日')],[2022..2100, When.M17n('JapaneseHoliday::スポーツの日')]],
|
827
835
|
[10,17] => [[1879..1947, When.M17n('JapaneseHoliday::神嘗祭')]],
|
836
|
+
[10,22] => [[2019..2019, When.M17n('JapaneseHoliday::即位礼正殿の儀')]],
|
828
837
|
[10,31] => [[1913..1926, When.M17n('JapaneseHoliday::天長節祝日')]],
|
829
838
|
[11, 3] => [[1873..1911, When.M17n('JapaneseHoliday::天長節')], [1927..1947, When.M17n('JapaneseHoliday::明治節')],
|
830
839
|
[1948..2100, When.M17n('JapaneseHoliday::文化の日')]],
|
831
840
|
[11,10] => [[1915..1915, When.M17n('JapaneseHoliday::即位の礼')], [1928..1928, When.M17n('JapaneseHoliday::即位の礼')]],
|
832
|
-
[11,12] => [[1990..1990, When.M17n('JapaneseHoliday
|
841
|
+
[11,12] => [[1990..1990, When.M17n('JapaneseHoliday::即位礼正殿の儀')]],
|
833
842
|
[11,14] => [[1915..1915, When.M17n('JapaneseHoliday::大嘗祭')], [1928..1928, When.M17n('JapaneseHoliday::大嘗祭')]],
|
834
843
|
[11,16] => [[1915..1915, When.M17n('JapaneseHoliday::大饗第1日')], [1928..1928, When.M17n('JapaneseHoliday::大饗第1日')]],
|
835
844
|
[11,23] => [[1873..1947, When.M17n('JapaneseHoliday::新嘗祭')], [1948..2100, When.M17n('JapaneseHoliday::勤労感謝の日')]],
|
836
|
-
[12,23] => [[1989..
|
845
|
+
[12,23] => [[1989..2018, When.M17n('JapaneseHoliday::天皇誕生日')]],
|
837
846
|
[12,25] => [[1927..1947, When.M17n('JapaneseHoliday::大正天皇祭')]]
|
838
847
|
}
|
839
848
|
|
@@ -1274,7 +1283,16 @@ class When::CalendarNote
|
|
1274
1283
|
2397584 => [ 16.0, 0], # 嘉永05(1852).02=16 [ 15.0, 1] 清明 (計算誤差の補正)
|
1275
1284
|
|
1276
1285
|
2451110 => [210.0, 1], # 平成10(1998).10.23 [209.0, 0] 没
|
1277
|
-
2451111 => [211.0, 0]
|
1286
|
+
2451111 => [211.0, 0], # 平成10(1998).10.24 [210.0, 1] 霜降 (計算誤差の補正)
|
1287
|
+
|
1288
|
+
2459950 => [284.0, 0], # 令和05(2023).01.05 [285.0, 1] 小寒 (計算誤差の補正)
|
1289
|
+
2459951 => [285.0, 1], # 令和05(2023).01.06 [285.0, 0] 没
|
1290
|
+
|
1291
|
+
2460651 => [254.0, 0], # 令和06(2024).12.06 [255.0, 1] 大雪 (計算誤差の補正)
|
1292
|
+
2460652 => [255.0, 1], # 令和06(2024).12.07 [255.0, 0] 没
|
1293
|
+
|
1294
|
+
2461031 => [269.0, 0], # 令和07(2025).12.21 [270.0, 1] 冬至 (計算誤差の補正)
|
1295
|
+
2461032 => [270.0, 1] # 令和07(2025).12.22 [270.0, 0] 没
|
1278
1296
|
}
|
1279
1297
|
|
1280
1298
|
class << self
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
=begin
|
3
|
-
Copyright (C) 2012-
|
3
|
+
Copyright (C) 2012-2016 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
|
@@ -14,6 +14,8 @@ module When::Coordinates
|
|
14
14
|
|
15
15
|
StartOfSequence = {-1=>'九星陽遁始め', +1=>'九星陰遁始め'}
|
16
16
|
|
17
|
+
Patch = {2421371=>2421431, 2429771=>2429831, 2463251=>2463191, 2475851=>2475791}
|
18
|
+
|
17
19
|
class << self
|
18
20
|
|
19
21
|
#
|
@@ -48,6 +50,7 @@ module When::Coordinates
|
|
48
50
|
#
|
49
51
|
def day(date, s_terms)
|
50
52
|
thres, delta, sign = _parameters(date, s_terms)
|
53
|
+
delta += 3 if thres == 30
|
51
54
|
delta = 8 - delta if sign < 0
|
52
55
|
return delta % 9
|
53
56
|
end
|
@@ -79,15 +82,34 @@ module When::Coordinates
|
|
79
82
|
def _parameters(date, s_terms)
|
80
83
|
date = When.when?(date.to_cal_date.to_s, {:frame=>date.frame, :clock=>date.frame.time_basis})
|
81
84
|
|
82
|
-
[+90,-90,-270].
|
83
|
-
prev = s_terms.term(date, [deg,180])
|
84
|
-
sign = s_terms.position(prev)[0] == 270 ? -1 : +1
|
85
|
-
base = prev.to_i
|
86
|
-
kanshi = (base + 17) % 60 - 28
|
87
|
-
base -= kanshi
|
88
|
-
|
89
|
-
|
90
|
-
|
85
|
+
bases = [+450,+270,+90,-90,-270,-450].map { |deg|
|
86
|
+
prev = s_terms.term(date, [deg,180]) # 直後および直前の冬至または夏至
|
87
|
+
sign = s_terms.position(prev)[0] == 270 ? -1 : +1 # 陽遁か?(冬至:-1, 夏至:+1)
|
88
|
+
base = prev.to_i # 当該の冬至または夏至のユリウス日
|
89
|
+
kanshi = (base + 17) % 60 - 28 # 最も近い甲子との日数差
|
90
|
+
base -= kanshi # 当該陰陽遁の始めの甲子
|
91
|
+
[(Patch[base] || base), sign] # 『暦日大鑑』に合わせる
|
92
|
+
}
|
93
|
+
|
94
|
+
(1...bases.size).each do |i| # 区間が短くなりすぎる場合は次と繋げる
|
95
|
+
next unless bases[i-1][0] - bases[i][0] == 120
|
96
|
+
bases[i-1][0] += 60
|
97
|
+
break
|
98
|
+
end
|
99
|
+
|
100
|
+
bases.size.times do |i|
|
101
|
+
base, sign = bases[i]
|
102
|
+
delta = date.to_i - base # 始めからの日数
|
103
|
+
next if delta < 0
|
104
|
+
case (bases[i-1][0] - base)
|
105
|
+
when 180
|
106
|
+
return [ 0, delta, sign] # 通常
|
107
|
+
when 240
|
108
|
+
return [30, delta, sign] if delta >= 30 # 甲午以降
|
109
|
+
return [ 0, delta+180, -sign] # 甲午より前
|
110
|
+
else
|
111
|
+
raise ArgumentError, "Invalid solstice interval: #{bases[i-1][0] - base}"
|
112
|
+
end
|
91
113
|
end
|
92
114
|
raise ArgumentError, "can't find any solstice."
|
93
115
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
=begin
|
3
|
-
Copyright (C) 2014 Takashi SUGA
|
3
|
+
Copyright (C) 2014-2017 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
|
@@ -29,12 +29,12 @@ class When::CalendarNote
|
|
29
29
|
"names:[day]",
|
30
30
|
[When::BasicTypes::M17n,
|
31
31
|
"names:[Rokuyo=, 六曜, 六曜=zh:%%<六曜>]",
|
32
|
-
[DayOfWeek, "label:[Taian=,
|
33
|
-
[DayOfWeek, "label:[Shakko=,
|
34
|
-
[DayOfWeek, "label:[Sensho=,
|
35
|
-
[DayOfWeek, "label:[Tomobiki=,
|
36
|
-
[DayOfWeek, "label:[Sembu=,
|
37
|
-
[DayOfWeek, "label:[Butsumetsu=,
|
32
|
+
[DayOfWeek, "label:[Taian=, *大安=ja:%%<六曜>#%.<大安>, 大安=ja:%%<六曜>#%.<大安>]", {'delta'=>6}],
|
33
|
+
[DayOfWeek, "label:[Shakko=, *赤口=ja:%%<六曜>#%.<赤口>, 赤口=ja:%%<六曜>#%.<赤口>]", {'delta'=>6}],
|
34
|
+
[DayOfWeek, "label:[Sensho=, *先勝=ja:%%<六曜>#%.<先勝>, 先勝=ja:%%<六曜>#%.<先勝>]", {'delta'=>6}],
|
35
|
+
[DayOfWeek, "label:[Tomobiki=, *友引=ja:%%<六曜>#%.<友引>, 友引=ja:%%<六曜>#%.<友引>]", {'delta'=>6}],
|
36
|
+
[DayOfWeek, "label:[Sembu=, *先負=ja:%%<六曜>#%.<先負>, 先負=ja:%%<六曜>#%.<先負>]", {'delta'=>6}],
|
37
|
+
[DayOfWeek, "label:[Butsumetsu=, *仏滅=ja:%%<六曜>#%.<仏滅>, 仏滅=zh:%%<佛滅日>]", {'delta'=>6}]
|
38
38
|
]
|
39
39
|
]
|
40
40
|
]]
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
=begin
|
3
|
-
Copyright (C) 2013-
|
3
|
+
Copyright (C) 2013-2021 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
|
@@ -35,22 +35,22 @@ module When
|
|
35
35
|
# #- は『韓國年暦大典』(1987年版)の中国-朝鮮差分が取り消されたもの
|
36
36
|
# #! は全勇勳「朝鮮における時憲曆の受容過程とその思想的背景」で言及された年(最終的には差分でない)
|
37
37
|
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
38
|
+
Korean = PatternTableBasedLuniSolar.join([
|
39
|
+
PatternTableBasedLuniSolar,
|
40
|
+
{
|
41
|
+
'indices'=> ChineseIndices,
|
42
|
+
'before' => 'ChineseTwin::太初暦',
|
43
|
+
'after' => 'ChineseLuniSolar?time_basis=+09',
|
44
|
+
'note' => 'Chinese',
|
45
|
+
},
|
46
|
+
['Chinese_103', -60.. 263], # 前漢~蜀漢(太初暦・四分暦)
|
47
|
+
['Chinese0239', 264.. 444], # 三国・南朝(景初暦)
|
48
|
+
['Chinese0445', 445.. 589], # 南朝(元嘉暦・大明暦)
|
49
|
+
['Chinese0523', 590.. 946], # 隋・唐~五代前期(大業暦~調元暦)
|
50
|
+
['Chinese0956', 947..1279], # 五代後期~南宋(調元暦~本天暦)
|
51
|
+
['Chinese0939', 1280..1653], # 元・明・南明(重修大明暦・授時暦・大統暦)
|
52
|
+
['Chinese1645', 1654..1911]], # 清(時憲暦)
|
53
|
+
{
|
54
54
|
-26 => {'aB' => 'Ab' }, # ベースとする中国暦日表の違い
|
55
55
|
240 => {'Hi' => 'hI' }, # 四分・景初・乾象暦いずれにも不一致
|
56
56
|
|