八字增强
八字增强
简介
lunisolar.js
本身可能过Lunisolar
实例的char8
属性实现基本的八字查询功能, 但未包括十神和神煞等功能。使用Char8Ex插件后,将会在Lunisolar
实例上添加一个char8ex()
方法, 除了包含原char8的功能外,还加入了十神和神煞的查询。
使用lunisolar().char8ex()
创建一个Char8Ex实例
/**
* @param sex 性别 0:坤造,1: 乾造
* @return 返回一个Char8Ex实例对象
*/
lunisolar().char8ex(sex: 0 | 1): Char8Ex
注意
加载char8ex
插件时,将自动加载takeSound
插件(五行纳音插件),所以请不要再重复加takeSound
快速上手
安装
由于八字增强插件虽要用到五行纳音,所以须同时安装五行纳音插件
pnpm add @lunisolar/plugin-char8ex @lunisolar/plugin-takesound
yarn add @lunisolar/plugin-char8ex @lunisolar/plugin-takesound
npm install @lunisolar/plugin-char8ex @lunisolar/plugin-takesound
注意
使用lunisolar@2.x版本时,lunisolar包已内置有该插件,
可通过 import char8ex from 'lunisolar/plugins/char8ex'
直接导入使用,无需另外安装。
后续版本将 移除 所有内置的插件,用户请按需安装下载使用。
加载
// 引入lunisolar
import lunisolar from 'lunisolar'
// 引入 theGods 插件
import { char8ex } from '@lunisolar/plugin-char8ex'
// lunisolar@v2.x可通下以下方式导入,后续版本会取消,不再推荐使用
// import char8ex from 'lunisolar/plugins/char8ex'
// 加载插件
lunisolar.extend(char8ex)
使用
// --- 使用
// 创建一个Char8Ex实例对象, 该八字为 2023-01-15 12:26出生的男孩
const c8ex = lunisolar('2023-01-15 12:26').char8ex(1)
console.log(c8ex.toString()) // 乾造: 壬寅 癸丑 癸酉 戊午
// Char8Ex实例可通过year,month,day,hour属性取得四柱实例 Pillar
// 而每个四柱实例(Pillar)又包含纳音、天干、地支、天干十神、地支十神、四柱神煞等功能查询
// 取各柱天干十神, 十神和神煞都是以对象形式存在
console.log(c8ex.year.stemTenGod.name) // 劫財
console.log(c8ex.month.stemTenGod.name) // 比肩
// 注:日主实际并不是十神之一,它位于日柱天干,十神以此推算。
console.log(c8ex.day.stemTenGod.name) // 日主
console.log(c8ex.hour.stemTenGod.name) // 正官
// 取各柱地支藏干十神
// 地支十神通过地支所藏天干推算,所以各柱的地支十神可能存在的个数为1至3个,故以数组形式返回
console.log(c8ex.year.branchTenGod.map(i => i.name)) // [ '傷官', '正財', '正官' ]
console.log(c8ex.month.branchTenGod.map(i => i.name)) // ['七殺', '比肩', '梟神']
console.log(c8ex.day.branchTenGod.map(i => i.name)) // ['梟神']
console.log(c8ex.hour.branchTenGod.map(i => i.name)) // ['偏財', '七殺']
//取年柱纳音
console.log(c8ex.year.takeSound) // 金箔金
//空亡地支 missing属性返回一个元组,该元组包含两个地支实例: [Branch, Branch]
// c8ex.missing 等同于 c8ex.day.missing
console.log(c8ex.missing.map(i => i.name)) // [ '戌', '亥' ]
// 取得年柱上的神煞,其它柱类似
console.log(c8ex.year.gods.map(item => item.name)) // ['文昌貴人', '金輿', '天廚貴人', '劫煞']
Tips
char8ex插件默认语言与lunisolar一样为繁体中文,如需要其它语言,须再另外加载
八字对象
// 创建一个Char8Ex实例
const c8 = lunisolar().char8ex(1) // 参数0为坤造,1为乾造
年柱
取得年柱, 返回一个四柱对象 Pillar
/**
* @return {Pillar} 返回一个四柱对对象,功能类似SB类,但扩展了更多方法
*/
c8.year
月柱
取得月柱, 返回一个四柱对象
/**
* @return {Pillar}
*/
c8.month
日柱
取得日柱, 返回一个四柱对象
/**
* @return {Pillar}
*/
c8.day
时柱
取得时柱, 返回一个四柱对象
/**
* @return {SB}
*/
c8.hour
日主
取得日主,即日柱的天干,返回天干对象
/**
* @return {Stem}
*/
c8.me
四柱列表
取得四柱列表
/**
* @return {[Pillar, Pillar, Pillar, Pillar]}
*/
c8.list
胎元
取得胎元, 返回一个SB实例
/**
* @return {SB}
*/
c8.embryo()
命宫
取得命宫, 返回一个SB实例
/**
* @return {SB}
*/
c8.ownSign()
身宫
取得身宫, 返回一个SB实例
/**
* @return {SB}
*/
c8.bodySign()
性别
取得性别字符串,如'乾造' 或 '坤造'
/**
* @return {string}
*/
c8.sex
取得性别值,返回 0 或 1, 0为'坤造', 1为'乾造'
/**
* @return {string}
*/
c8.sexValue
空亡地支
空亡地支, 返回元组 [Branch, Branch]
/**
* @return {[Branch, Branch]}
*/
c8.missing
// 其相当于
c8.day.missing
取天干和地支
上述年月日时四柱返回的四柱实例对象: Pillar
Pillar包含了SB类的所有原型方法,天干地支的相关用法,可以参考SB类的用法,这处不详细论述
// 例如,从年柱取得 Pillar实例
const pillar = lunisolar().char8ex(1).year
// 取天干
pillar.stem
// 取地支
pillar.branch
十神
天干十神
可从四柱实例上取得天干十神,返回一个TenGod实例
/**
* @return {TenGod}
*/
pillar.stemTenGod
地支十神
取得地支十神, 因为是按地支藏干算的, 所以返回TenGod实例列表
/**
* @return {TenGod[]}
*/
pillar.branchTenGod
四柱神煞
四柱对象Pillar上包含一个gods属性,可取得该柱所有神煞,返回 C8God实例列表
/**
* @return {C8God[]}
*/
pillar.gods