mk_cal_jpl 0.2.4 → 0.2.5
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 +4 -4
- data/lib/mk_cal_jpl/compute.rb +47 -26
- data/lib/mk_cal_jpl/const.rb +2 -2
- data/lib/mk_cal_jpl/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1e30bc3dde183fcd292276e2c5bc490e10e5e3fb1924d13b62b9ef151e6ffdbd
|
4
|
+
data.tar.gz: 2f86b74f9f21ded36a21d22181bf1b96370bfe712d0abea466ec30fdffc242c4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c6e5f29ad7be9e145c382e5d8f4108f7bc93e72fee5a58a1fdade8ae328838b876254956e1994e12f664157e5bfe40b6b97758816d7806d5058a1e98a2cc11f6
|
7
|
+
data.tar.gz: 706f98e2cdb465eba1ce947af70ea3cd9557f02a40e9cbe1a8d1ec9c6b6c891d8086ecf63e62f92c8e36259e6311a065464ba62a3f1d25e838f6e7ab3ff58f79
|
data/lib/mk_cal_jpl/compute.rb
CHANGED
@@ -10,7 +10,7 @@ module MkCalJpl
|
|
10
10
|
# @param: year
|
11
11
|
# @param: month
|
12
12
|
# @param: day
|
13
|
-
# @return: holiday (
|
13
|
+
# @return: holiday (漢字)
|
14
14
|
#=========================================================================
|
15
15
|
def compute_holiday(year, month, day)
|
16
16
|
holidays = get_holidays(year)
|
@@ -35,8 +35,8 @@ module MkCalJpl
|
|
35
35
|
#=========================================================================
|
36
36
|
def get_holidays(year)
|
37
37
|
holiday_0 = Array.new # 変動の祝日用
|
38
|
-
holiday_1 = Array.new #
|
39
|
-
holiday_2 = Array.new #
|
38
|
+
holiday_1 = Array.new # 振替休日用
|
39
|
+
holiday_2 = Array.new # 国民の休日用
|
40
40
|
|
41
41
|
# 変動の祝日の日付・曜日を計算 ( 振替休日,国民の休日を除く )
|
42
42
|
Const::HOLIDAY.each do |id, month, day, kbn, year_s, year_e, name|
|
@@ -77,34 +77,17 @@ module MkCalJpl
|
|
77
77
|
end
|
78
78
|
end
|
79
79
|
|
80
|
-
# 国民の休日計算
|
81
|
-
# ( 「国民の祝日」で前後を挟まれた「国民の祝日」でない日 )
|
82
|
-
# ( 年またぎは考慮していない(今のところ不要) )
|
83
|
-
year_s_k = Const::HOLIDAY.select { |a| a[0] == 90 }[0][4]
|
84
|
-
0.upto(holiday_0.length - 2) do |i|
|
85
|
-
m_0, d_0 = holiday_0[i ][0, 2]
|
86
|
-
m_1, d_1 = holiday_0[i + 1][0, 2]
|
87
|
-
jd_0 = gc2jd(year, m_0, d_0)
|
88
|
-
jd_1 = gc2jd(year, m_1, d_1)
|
89
|
-
if jd_0 + 2 == jd_1
|
90
|
-
jd = jd_0 + 1
|
91
|
-
m, d = jd2ymd(jd)[1, 2]
|
92
|
-
yobi = Const::YOBI[Const::YOBI.index(holiday_0[i][4]) + 1]
|
93
|
-
holiday_1 << [m, d, 90, jd, yobi]
|
94
|
-
end
|
95
|
-
end if year < year_s_k
|
96
|
-
|
97
80
|
# 振替休日計算
|
98
81
|
# ( 「国民の祝日」が日曜日に当たるときは、
|
99
82
|
# その日後においてその日に最も近い「国民の祝日」でない日 )
|
100
|
-
year_s_f = Const::HOLIDAY.select { |a| a[0] ==
|
83
|
+
year_s_f = Const::HOLIDAY.select { |a| a[0] == 90 }[0][4]
|
101
84
|
0.upto(holiday_0.length - 1) do |i|
|
102
85
|
if holiday_0[i][4] == "日"
|
103
86
|
next_jd = holiday_0[i][3] + 1
|
104
87
|
next_yobi = Const::YOBI[Const::YOBI.index(holiday_0[i][4]) + 1]
|
105
88
|
if i == holiday_0.length - 1
|
106
89
|
wk_ymd = jd2ymd(next_jd)
|
107
|
-
wk_ary = [wk_ymd[1], wk_ymd[2],
|
90
|
+
wk_ary = [wk_ymd[1], wk_ymd[2], 90, next_jd, next_yobi]
|
108
91
|
else
|
109
92
|
flg_furikae = 0
|
110
93
|
plus_day = 1
|
@@ -118,15 +101,32 @@ module MkCalJpl
|
|
118
101
|
else
|
119
102
|
flg_furikae = 1
|
120
103
|
wk_ymd = jd2ymd(next_jd)
|
121
|
-
wk_ary =[wk_ymd[1], wk_ymd[2],
|
104
|
+
wk_ary =[wk_ymd[1], wk_ymd[2], 90, next_jd, next_yobi]
|
122
105
|
end
|
123
106
|
end
|
124
107
|
end
|
125
108
|
end
|
126
|
-
|
109
|
+
holiday_1 << wk_ary
|
110
|
+
end
|
111
|
+
end if year >= year_s_f
|
112
|
+
|
113
|
+
# 国民の休日計算
|
114
|
+
# ( 「国民の祝日」で前後を挟まれた「国民の祝日」でない日 )
|
115
|
+
# ( 年またぎは考慮していない(今のところ不要) )
|
116
|
+
year_s_k = Const::HOLIDAY.select { |a| a[0] == 91 }[0][4]
|
117
|
+
0.upto(holiday_0.length - 2) do |i|
|
118
|
+
m_0, d_0 = holiday_0[i ][0, 2]
|
119
|
+
m_1, d_1 = holiday_0[i + 1][0, 2]
|
120
|
+
jd_0 = gc2jd(year, m_0, d_0)
|
121
|
+
jd_1 = gc2jd(year, m_1, d_1)
|
122
|
+
if jd_0 + 2 == jd_1
|
123
|
+
jd = jd_0 + 1
|
124
|
+
m, d = jd2ymd(jd)[1, 2]
|
125
|
+
yobi = Const::YOBI[Const::YOBI.index(holiday_0[i][4]) + 1]
|
126
|
+
holiday_2 << [m, d, 91, jd, yobi]
|
127
127
|
end
|
128
|
-
end if year
|
129
|
-
return (holiday_0
|
128
|
+
end if year >= year_s_k
|
129
|
+
return merge_sort(holiday_0, holiday_1, holiday_2)
|
130
130
|
end
|
131
131
|
|
132
132
|
#=========================================================================
|
@@ -661,6 +661,27 @@ module MkCalJpl
|
|
661
661
|
lmd = a.moon[1][0] * 180.0 / Math::PI
|
662
662
|
return lmd
|
663
663
|
end
|
664
|
+
|
665
|
+
private
|
666
|
+
|
667
|
+
# マージ&ソート
|
668
|
+
# * さらに、「振替休日」と「国民の休日」がダブる場合は、
|
669
|
+
# 「振替休日」を優先
|
670
|
+
def merge_sort(hol_0, hol_1, hol_2)
|
671
|
+
data = Array.new
|
672
|
+
data_src = (hol_0 + hol_1 + hol_2).sort
|
673
|
+
data_src.each_with_index do |d, i|
|
674
|
+
if i == 0
|
675
|
+
data << d
|
676
|
+
next
|
677
|
+
end
|
678
|
+
if data_src[i - 1][0..2] == d[0..2]
|
679
|
+
next if data_src[i - 1][3] == 90 && d[3] == 91
|
680
|
+
end
|
681
|
+
data << d
|
682
|
+
end
|
683
|
+
return data
|
684
|
+
end
|
664
685
|
end
|
665
686
|
end
|
666
687
|
|
data/lib/mk_cal_jpl/const.rb
CHANGED
@@ -69,8 +69,8 @@ module MkCalJpl
|
|
69
69
|
[29, 2, 24, 0, 1989, 1989, "昭和天皇の大喪の礼"],
|
70
70
|
[30, 11, 12, 0, 1990, 1990, "即位礼正殿の儀" ],
|
71
71
|
[31, 6, 9, 0, 1993, 1993, "徳仁親王の結婚の儀"],
|
72
|
-
[90, 0, 0, 8,
|
73
|
-
[91, 0, 0, 9,
|
72
|
+
[90, 0, 0, 8, 1973, 9999, "振替休日" ], # 1973-04-12 以降
|
73
|
+
[91, 0, 0, 9, 1986, 9999, "国民の休日" ]
|
74
74
|
]
|
75
75
|
end
|
76
76
|
end
|
data/lib/mk_cal_jpl/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mk_cal_jpl
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- komasaru
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-11-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: mk_apos
|