八字增强

WaterbesideAbout 4 min

八字增强

简介

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

注意

使用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