four-pillars 0.1.17 → 0.1.18
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/four-pillars.rb +21 -6
- metadata +3 -6
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 4382511acd1f1368f0521311c524b106d043283e3c49b1493d8bb5dbd0035758
|
|
4
|
+
data.tar.gz: 66fa7174de02c05426e23bfd676deacec29a2fbea287da325e479a0737e608cc
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: fa40e2bdbf9e4ddf6b388fa501adc65e5fb60a2e0a31f9049501a4281d740d044af79a7daae2a72e7b5d20273247fa4e65ea4818b136167d895ff5a9c3de7884
|
|
7
|
+
data.tar.gz: f722c235c243890f782ad347310b790d3a7ed1dc80611516c901753fa7c766e7c49955804a715a261f8390bc3f6d95c11b2b83d4b93d9c6f4215e1d368d9f2a0
|
data/lib/four-pillars.rb
CHANGED
|
@@ -42,6 +42,16 @@ class FourPillarsLogic
|
|
|
42
42
|
end
|
|
43
43
|
KANSHI_HASH = kanshi_hash
|
|
44
44
|
|
|
45
|
+
# 日柱の基準日 (この日が甲子)
|
|
46
|
+
KANSHI_BASE_DATE = Date.new(1863,12,31)
|
|
47
|
+
|
|
48
|
+
# 日付に対応する日柱(その日の干支)
|
|
49
|
+
# FourPillarsLogic.day_pillar_of(Date.new(2026,9,7)) #=> "甲申"
|
|
50
|
+
def self.day_pillar_of(date)
|
|
51
|
+
d = date.respond_to?(:to_date) ? date.to_date : date
|
|
52
|
+
KANSHI_ARRAY[(d - KANSHI_BASE_DATE).to_i % 60]
|
|
53
|
+
end
|
|
54
|
+
|
|
45
55
|
# 陰干通表
|
|
46
56
|
def self.jikkan_in
|
|
47
57
|
j = [nil] * 10
|
|
@@ -96,6 +106,12 @@ class FourPillarsLogic
|
|
|
96
106
|
end
|
|
97
107
|
SETSUIRI_HASH, SETSUIRI_LIST = load_setsuiri
|
|
98
108
|
|
|
109
|
+
# 年月に対応する節入り日時 (注:時 = 時間 x 60 + 分) 登録がない場合は nil
|
|
110
|
+
# FourPillarsLogic.setsuiri_of(2026,9) #=> [7, 1421] (7日 23時41分)
|
|
111
|
+
def self.setsuiri_of(year,month)
|
|
112
|
+
SETSUIRI_HASH[year*100+month]
|
|
113
|
+
end
|
|
114
|
+
|
|
99
115
|
# 通変星
|
|
100
116
|
def self.tsuhensei(j_day,j_src) # 日柱の十干、月柱または年柱の十干
|
|
101
117
|
if plus_jikkan?(j_day) # 陽
|
|
@@ -184,7 +200,7 @@ class FourPillarsLogic
|
|
|
184
200
|
else
|
|
185
201
|
m -= 1
|
|
186
202
|
end
|
|
187
|
-
|
|
203
|
+
self.class.setsuiri_of(y,m) || [0,0]
|
|
188
204
|
end
|
|
189
205
|
|
|
190
206
|
# 翌月の節入日
|
|
@@ -203,13 +219,13 @@ class FourPillarsLogic
|
|
|
203
219
|
# このメソッドがfalseを返す場合、干支、蔵干が仮の節入日で計算されています。
|
|
204
220
|
def know_setsuiri?
|
|
205
221
|
y,m,d,h,i = @birth_dt
|
|
206
|
-
|
|
222
|
+
!self.class.setsuiri_of(y,m).nil?
|
|
207
223
|
end
|
|
208
224
|
|
|
209
225
|
# 生年月に対応する節入り日時 ファイルに登録がない場合は、4日12時を返す
|
|
210
226
|
def setsuiri
|
|
211
227
|
y,m,d,h,i = @birth_dt
|
|
212
|
-
|
|
228
|
+
self.class.setsuiri_of(y,m) || [4,12*60]
|
|
213
229
|
end
|
|
214
230
|
|
|
215
231
|
# 生まれた日が節入日にあたる場合、true
|
|
@@ -232,11 +248,10 @@ class FourPillarsLogic
|
|
|
232
248
|
yd -= 1 if m < 2 || (m == 2 && d < sd) || (m == 2 && d == sd && h*60+i < st)
|
|
233
249
|
md = (y - 1863) * 12 + (m - 12) # (till 1864.01.05) = 甲子
|
|
234
250
|
md -= 1 if d < sd || (d == sd && h*60+i < st)
|
|
235
|
-
|
|
251
|
+
dp = self.class.day_pillar_of(Date.new(y,m,d)) # 日柱
|
|
236
252
|
|
|
237
|
-
return [
|
|
253
|
+
return [dp,KANSHI_ARRAY[md % 60],KANSHI_ARRAY[yd % 60]] unless @with_time
|
|
238
254
|
|
|
239
|
-
dp = KANSHI_ARRAY[dd % 60] # 日柱
|
|
240
255
|
if @know_time
|
|
241
256
|
jyunishi_idx = h == 23 ? 0 : ((h + 1) / 2)
|
|
242
257
|
jikkan_idx = ((JIKKAN.index(dp[0]) % 5) * 2 + jyunishi_idx) % 10
|
metadata
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: four-pillars
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.18
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Yosei Ito
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: bin
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
10
|
+
date: 2026-09-20 00:00:00.000000000 Z
|
|
12
11
|
dependencies: []
|
|
13
12
|
description: A class which tells fortune by Four Pillar astrology(四柱推命).
|
|
14
13
|
email: y-itou@lumber-mill.co.jp
|
|
@@ -22,7 +21,6 @@ homepage: https://github.com/lumbermill/four-pillars
|
|
|
22
21
|
licenses:
|
|
23
22
|
- MIT
|
|
24
23
|
metadata: {}
|
|
25
|
-
post_install_message:
|
|
26
24
|
rdoc_options: []
|
|
27
25
|
require_paths:
|
|
28
26
|
- lib
|
|
@@ -37,8 +35,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
37
35
|
- !ruby/object:Gem::Version
|
|
38
36
|
version: '0'
|
|
39
37
|
requirements: []
|
|
40
|
-
rubygems_version:
|
|
41
|
-
signing_key:
|
|
38
|
+
rubygems_version: 4.0.19
|
|
42
39
|
specification_version: 4
|
|
43
40
|
summary: Four Pillar astrology
|
|
44
41
|
test_files: []
|