-
Notifications
You must be signed in to change notification settings - Fork 10
Expand file tree
/
Copy pathyi.go
More file actions
328 lines (246 loc) · 7.41 KB
/
Copy pathyi.go
File metadata and controls
328 lines (246 loc) · 7.41 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
package yi
import (
"time"
"github.com/godcong/yi/core"
"github.com/godcong/yi/internal/gua"
"github.com/godcong/yi/internal/i18n"
"github.com/godcong/yi/internal/jiegua"
"github.com/godcong/yi/internal/numerology"
"github.com/godcong/yi/internal/qigua"
"github.com/godcong/yi/internal/shiying"
"github.com/godcong/yi/internal/wenyan"
"github.com/godcong/yi/internal/wuxing"
)
type Gua = core.Gua
type Yao = core.Yao
type ZhouYi = core.ZhouYi
type Bagua = core.Bagua
type YaoPosition = core.YaoPosition
type Sex = core.Sex
type YinYang = core.YinYang
type WuXing = core.WuXing
type GuaPosition = core.GuaPosition
type ShiYingInfo = core.ShiYingInfo
type LiuQin = core.LiuQin
type CoinResult = core.CoinResult
type DayanStep = core.DayanStep
type DayanResult = core.DayanResult
type Dayan = core.Dayan
type TimeGuaParams = core.TimeGuaParams
type BirthdayParams = core.BirthdayParams
type WenYanData = core.WenYanData
type WenYanEntry = core.WenYanEntry
type JiaZiInfo = core.JiaZiInfo
type TianGan = core.TianGan
type DiZhi = core.DiZhi
type JieGuaResult = core.JieGuaResult
type GuaInfo = core.GuaInfo
type GuaFenXi = core.GuaFenXi
type FenXiCategory = core.FenXiCategory
type GuaJieDu = core.GuaJieDu
type JieDuCategory = core.JieDuCategory
type WuXingInfo = core.WuXingInfo
type Language = i18n.Language
type Hexagram = core.Gua
type Line = core.Yao
type IChing = core.ZhouYi
type Trigram = core.Bagua
const (
Ben = core.Ben
Bian = core.Bian
Hu = core.Hu
Cuo = core.Cuo
Zong = core.Zong
GuaTypeMax = core.GuaTypeMax
)
const (
Chu YaoPosition = core.Chu
Er YaoPosition = core.Er
San YaoPosition = core.San
Si YaoPosition = core.Si
Wu YaoPosition = core.Wu
Shang YaoPosition = core.Shang
YaoCount = core.YaoCount
)
const (
Qian Bagua = core.Qian
Dui Bagua = core.Dui
Li Bagua = core.Li
Zhen Bagua = core.Zhen
Xun Bagua = core.Xun
Kan Bagua = core.Kan
Gen Bagua = core.Gen
Kun Bagua = core.Kun
)
const (
Male Sex = core.Male
Female Sex = core.Female
)
const (
Yang YinYang = core.Yang
Yin YinYang = core.Yin
)
const (
Wood WuXing = core.Wood
Fire WuXing = core.Fire
Earth WuXing = core.Earth
Metal WuXing = core.Metal
Water WuXing = core.Water
)
const (
BenGong GuaPosition = core.BenGong
YiShi GuaPosition = core.YiShi
ErShi GuaPosition = core.ErShi
SanShi GuaPosition = core.SanShi
SiShi GuaPosition = core.SiShi
WuShi GuaPosition = core.WuShi
YouHun GuaPosition = core.YouHun
GuiHun GuaPosition = core.GuiHun
)
const (
LQFuMu LiuQin = core.LQFuMu
LQXiongDi LiuQin = core.LQXiongDi
LQQiCai LiuQin = core.LQQiCai
LQZiSun LiuQin = core.LQZiSun
LQGuanGui LiuQin = core.LQGuanGui
)
const (
CoinYinYinYin CoinResult = core.CoinYinYinYin
CoinYinYinYang CoinResult = core.CoinYinYinYang
CoinYinYangYang CoinResult = core.CoinYinYangYang
CoinYangYangYang CoinResult = core.CoinYangYangYang
)
const (
LangZH Language = i18n.LangZH
LangEN Language = i18n.LangEN
)
const (
FenXiShiYe FenXiCategory = core.FenXiShiYe
FenXiAiQing FenXiCategory = core.FenXiAiQing
FenXiCaiYun FenXiCategory = core.FenXiCaiYun
FenXiKaoShi FenXiCategory = core.FenXiKaoShi
FenXiJianKang FenXiCategory = core.FenXiJianKang
FenXiChuXing FenXiCategory = core.FenXiChuXing
FenXiGuanSi FenXiCategory = core.FenXiGuanSi
FenXiJiaZhai FenXiCategory = core.FenXiJiaZhai
)
const (
JieDuShiYe JieDuCategory = core.JieDuShiYe
JieDuAiQing JieDuCategory = core.JieDuAiQing
JieDuCaiYun JieDuCategory = core.JieDuCaiYun
JieDuKaoShi JieDuCategory = core.JieDuKaoShi
JieDuJianKang JieDuCategory = core.JieDuJianKang
JieDuChuXing JieDuCategory = core.JieDuChuXing
JieDuGuanSi JieDuCategory = core.JieDuGuanSi
JieDuJiaZhai JieDuCategory = core.JieDuJiaZhai
)
var (
ErrInvalidGuaIndex = core.ErrInvalidGuaIndex
ErrInvalidYaoIndex = core.ErrInvalidYaoIndex
ErrInvalidDayanIdx = core.ErrInvalidDayanIdx
ErrGuaNotFound = core.ErrGuaNotFound
ErrInvalidDayanNumber = core.ErrInvalidDayanNumber
ErrInvalidJiaZiIndex = core.ErrInvalidJiaZiIndex
ErrInvalidTianGan = core.ErrInvalidTianGan
ErrInvalidDiZhi = core.ErrInvalidDiZhi
ErrInvalidJiaZiCombo = core.ErrInvalidJiaZiCombo
)
func Divine(shang, xia Bagua, bianYao ...int) *ZhouYi {
return gua.Divine(shang, xia, bianYao...)
}
func DivineByNumber(shang, xia int, bianYao ...int) *ZhouYi {
return gua.DivineByNumber(shang, xia, bianYao...)
}
func DivineByTime(year, month, day, hour int, seed ...string) *ZhouYi {
return gua.DivineByTime(year, month, day, hour, seed...)
}
func DivineByTimeGua(params TimeGuaParams, seed ...string) *ZhouYi {
return qigua.DivineByTimeGua(params, seed...)
}
func DivineByCurrentTime(seed ...string) *ZhouYi {
return qigua.DivineByCurrentTime(seed...)
}
func DivineByCoins(seed int64) (*ZhouYi, [6]CoinResult) {
return qigua.DivineByCoins(seed)
}
func DivineByDayan(seed int64) (*ZhouYi, [6]DayanResult) {
return qigua.DivineByDayan(seed)
}
func DivineByMeihua(upperNum, lowerNum, dongYao int) *ZhouYi {
return qigua.DivineByMeihua(upperNum, lowerNum, dongYao)
}
func DivineByMeihuaTime(t time.Time, seeds ...string) (*ZhouYi, int, int, int, int) {
return qigua.DivineByMeihuaTime(t, seeds...)
}
func DivineByDailyHexagram(year, month, day int, personalSeed string) *ZhouYi {
return qigua.DivineByDailyHexagram(year, month, day, personalSeed)
}
func DivineByLunarTime(lunarYear, lunarMonth, lunarDay, shichenNum int) *ZhouYi {
return qigua.DivineByLunarTime(lunarYear, lunarMonth, lunarDay, shichenNum)
}
func DivineByBirthday(params BirthdayParams) *ZhouYi {
return qigua.DivineByBirthday(params)
}
func JieGua(zy *ZhouYi, sex Sex) *JieGuaResult {
return jiegua.JieGua(zy, sex)
}
func JieGuaWithLang(zy *ZhouYi, sex Sex, lang Language) *JieGuaResult {
return jiegua.JieGuaWithLang(zy, sex, lang)
}
func FormatJieGua(result *JieGuaResult) string {
return jiegua.FormatJieGua(result)
}
func FormatJieGuaWithLang(result *JieGuaResult, lang Language) string {
return jiegua.FormatJieGuaWithLang(result, lang)
}
func GetDayan(number int) (*Dayan, error) {
return numerology.GetDayan(number)
}
func MustGetDayan(number int) Dayan {
return numerology.MustGetDayan(number)
}
func GetWenYan(g *Gua) *WenYanData {
return wenyan.GetWenYan(g)
}
func HasWenYan(g *Gua) bool {
return wenyan.HasWenYan(g)
}
func GetWuXingByBagua(bagua Bagua) WuXing {
return wuxing.GetWuXingByBagua(bagua)
}
func TranslateJiXiong(jx string, lang Language) string {
return i18n.TranslateJiXiong(jx, lang)
}
func TranslateCategory(cat string, lang Language) string {
return i18n.TranslateCategory(cat, lang)
}
func TranslateYaoPos(pos string, lang Language) string {
return i18n.TranslateYaoPos(pos, lang)
}
func TranslateBaguaName(name string, lang Language) string {
return i18n.TranslateBaguaName(name, lang)
}
func TranslateWuXing(name string, lang Language) string {
return i18n.TranslateWuXing(name, lang)
}
func GetGuaByIndex(index string) (*Gua, error) {
return gua.GetGuaByIndex(index)
}
func GetGuaByXu(xu int) (*Gua, error) {
return gua.GetGuaByXu(xu)
}
func GetShiYing(g *Gua) *ShiYingInfo {
return shiying.GetShiYing(g)
}
func GetGuaGong(g *Gua) Bagua {
return shiying.GetGuaGong(g)
}
func GetGuaPosition(g *Gua) GuaPosition {
return shiying.GetGuaPosition(g)
}
func IsJi(zy *ZhouYi, sex Sex) bool {
return gua.IsJi(zy, sex)
}
func FilterYao(zy *ZhouYi, sex Sex, filters ...string) bool {
return gua.FilterYao(zy, sex, filters...)
}