when_exe 0.4.6 → 0.5.0
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.
- 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
|
|