Efairy
介绍
软件架构
环境要求:
thinkphp5.1
php7.0以上
composer
安装教程
git clone 本仓库
composer install
服务器指向 public目录
参与贡献
Fork 本仓库
新建 Feat_xxx 分支
提交代码
新建 Pull Request
文档
本程序主要是对算命核心的一个演示,核心提供下列功能.
1.精确到秒的节气识别
2.新历的八字排盘运算
3.十神运算
4.十二长生运算
5.五行生旺运算
6.常用星煞运算
7.提供合,生,克,三合,半合,对冲,刑穿的检测方法
为帮助您看懂代码,您先阅读下面资料,并熟悉五行及易经的基本内容.推荐先阅读入门的读物
数字化的传统表达
大部分情况下,程序在表达上使用数字替代天干地支和五行.
五行
五行的顺序为 木火土金水,程序上用0到4表示,分别为
0-木,1-火,2-土,3-金,4-火
天干与地支
天干 : '甲', '乙', '丙', '丁', '戊', '己', '庚', '辛', '壬', '癸',分别按顺序用0到9表示
地支:'子', '丑', '寅', '卯', '辰', '巳', '午', '未', '申', '酉', '戌', '亥' 分别按顺序用0到11表示,生肖与之一致
12长生:"生", "沐", "冠", "临", "旺", "衰", "病", "死", "墓", "绝","胎", "养" 分别用0到11表示
十神
与上面不同 十神使用二维数组成对表示
数组如下:
[['比', '劫'], ['食', '伤'], ['财', '才'],[ '杀', '官'], ['枭', '印']]
在记录表达上一般情况只记录索引,
例如比,记录索引为 [0,0],才记录为[2,0],官表示为[3,1];
大部分情况下,调用 Stars::getInfo 方法,即可.
方法: getInfo($gd, $yy, $mm, $dd, $hh, $mt=0, $ss=0){
参数说明:
* @param int $gd 0男1女
* @param int $yy
* @param int $mm
* @param int $dd
* @param int $hh 时间(0-23)
* @param int $mt 分钟数(0-59),在跨节的时辰上会需要,有的排盘忽略了跨节
* @param int $ss 秒数(0-59)
* @return array
返回数组说明:
{
sex: 性别,0为男,1为女,
tg: [//天干
年天干索引,
月天干索引,
日天干索引,
时天干索引
],
dz: [//地支
年地支索引,
月地支索引,
日地支索引,
时地支索引
],
bazi: [//八字的文字表述,对应上面
[
"戊",
"辰",
],
[
`],`
...
],
sc: {//时辰分段,盲派可能用到 把时辰分为3段,
index: [
1,//时辰索引
2,//分段索引,0-头,1-中,2-尾
],
char: "丑时尾",
},
dz_cg: [ //地支藏干,分别是年,月,日,时的藏干
{
index: [ //索引
4,
1,
9,
],
char: [ //索引对应的字符
"戊",
"乙",
"癸",
],
},
{
index: [
x //屏蔽了
x
x
],
char: [
"x",
"x",
"x",
],
},
{
index: [
x //屏蔽了
x
x
],
char: [
"x",
"x",
"x",
],
},
{
index: [
x //屏蔽了
x
x
],
char: [
"x",
"x",
"x",
],
},
],
na_yin: [//4柱的纳音,对应年,月,日,时
[
"大林木",
0,//纳音属性,0为木,1为火,如此类推
],
...//其余3个成员,一共4个成员
],
xw: {//空亡的地支,总会有两个地支空的
index: [
4,
5,
],
char: "辰巳",
},
gong: { 宫
index: [
1,
3,
],
char: "乙卯",
},
tg_cg_god: [ 天干的十神,索引表示参考文档前面内容
{
index: [
2,
1,
],
char: "才",
},
....//其他3个
],
dz_main_god: [//地支的十神
[],[],[],[]
],
day_cs: [//日游走4柱的长生,能让你了解日的能力影响情况
{
index: 2,
char: "冠",
},
{
index: 5,
char: "衰",
},
{
index: 11,
char: "养",
},
{
index: 5,
char: "衰",
},
],
year_cs: [
{
...
},
{
...
},
...
],
big_tg: [ //大运的天干
2,
3,
4,
5,
6,
7,
8,
9,
0,
1,
2,
3,
],
big_dz: [ //大运的地支
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
0,
1,
],
start_desc: "X年X月X天起运",//起运时间描述
start_time: [//起运具体时间点
1989,//年
xx,//月
xx,//日
2,//时
0,//分
24,//苗
],
years: [ ],
big: [//大运的传统字符表示
"丙寅",
"丁卯",
"戊辰",
...
],
big_cs: [//大运的长生情况
{
index: 4,
char: "旺",
},
...//忽略
],
big_god: [
//大运的十神
{
index: [
1,
1,
],
char: "伤",
},
...省略
],
big_start_time: [
[//大运时间卡点
年,
月,
日,
时,
分,
秒
],
[
1999,
2,
11,
2,
3,
24,
],
...
],
xz: "水瓶座",//星座
sx: "龙",//生肖
years_info: [
//大运的卡点年资料
{
year: 1989,//年
index: [
5,//年的天干
5,//年的地支
],
char: "己巳",//传统表达
cg: [ //地支藏干
2,
4,
6,
],
cs: {//那年的长生情况
index: 1,
char: "沐",
},
tg_god: {//年份对应的十神
index: [
2,
0,
],
char: "财",
},
dz_god: [//地支的十神
{
index: [
2,
0,
],
char: "财",
},
{
index: [
4,
0,
],
char: "枭",
},
...
],
[]...//多个类推
],
star: [//星煞 总体4个对象,对应4柱
{
0: ["kongWang","空亡",],
2: ["taiJi","太极",],//星煞索引:[唯一名,传统表达名]
},
{月}
,{日}
,{时}
],
},
],
}