-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathguayao.go
52 lines (43 loc) · 906 Bytes
/
guayao.go
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
package yi
import "strings"
// GuaYao ...
type GuaYao struct {
Yao string //二爻
JiXiong string //二爻吉凶
NvMing string //女命
}
func getGuaYao(xiang *GuaXiang, yao int) GuaYao {
if yao < 0 || yao > 5 {
panic("wrong yao")
}
return *xiang.GuaYaos[yao]
}
//FilterYao 过滤爻
func (y *Yi) FilterYao(sex Sex, fs ...string) bool {
yao := getGuaYao(y.Get(BianGua), y.BianYao())
for _, s := range fs {
if sex == SexGirl && yao.NvMing != "" {
if yao.NvMing == s {
return false
} else {
return true
}
}
if yao.JiXiong == s {
return false
}
}
return true
}
//IsLucky 是否为吉
func (y *Yi) IsLucky(sex Sex) bool {
yao := getGuaYao(y.Get(BianGua), y.BianYao())
if sex == SexGirl && yao.NvMing != "" {
if strings.Contains(yao.NvMing, "凶") {
return false
}
} else if strings.Contains(yao.JiXiong, "凶") {
return false
}
return true
}