npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@lunisolar/plugin-thegods

v0.1.4

Published

lunisolar.js 神煞宜忌插件

Downloads

61

Readme

@lunisolar/plugin-thegods

lunisolar.js的神煞宜忌插件

lunisolar.js文档请进入lunisolar.js.org

1 简介

TheGods作为lunisolar的一个插件,其内容基于中国古代典籍 《协纪纪辨方书》

本库中的所有宜忌词条,除特别说明的外,皆出于《协纪纪辨方书 * 卷十一》。

宜忌的推导,需要先查出当日的所有神煞(卷九),每个神煞都有各自的宜忌(卷十),然后通过宜忌等第表、铺注条例(卷十)对宜忌进行整理,最后跟据(卷十一)用事表格进行排序和筛选。

正因为神煞和宜忌的数据复杂烦琐,为了方便维护和以免影响lunisolar的打包体积,故TheGods作为一个lunisolar的插件开发。


2 快速上手

# 安装
npm install @lunisolar/plugin-thegods

// 引入lunisolar
import lunisolar from 'lunisolar'
// 引入 theGods 插件
import { theGods } from '@lunisolar/plugin-thegods'
// 加载插件
lunisolar.extend(theGods)

// ---  使用
const lsr = lunisolar('2018-10-04')
// 取神煞
lsr.theGods.getGods('M') // 取得当日的月神
lsr.theGods.getGods('D') // 取得当日的日神
lsr.theGods.getGods('MD') // 取得当日的月神和日神
lsr.theGods.getDuty12God() // 取得当日建除十二神(建、除、满....)
lsr.theGods.getLife12God('day') // 取得当日长生十二神 (长生、沐浴、冠帶...)
lsr.theGods.getBy12God('day') // 取得当日串宫十二神(青龍、明堂、天刑...)

// 取宜忌
lsr.theGods.getActs(0) // 取得当日宜忌 {good: string[], bad: string[]}
lsr.theGods.query('this day gods') // 取得当日神煞 (用于取宜忌的神煞)
lsr.theGods.query('good act 1') // 取得当日所宜(通书六十事)
lsr.theGods.query('bad act 1') // 取得当日所忌(通书六十事)
lsr.theGods.query('good act 2') // 取得当日所宜(御用六十七事)
lsr.theGods.query('good act 2') // 取得当日所忌(御用六十七事)
lsr.theGods.query('good act 3') // 取得当日所宜(民三十七事)
lsr.theGods.query('good act 3') // 取得当日所忌(民用三十七事)
lsr.theGods.query('good act') // 取得当日所宜(卷十一的所有词条)
lsr.theGods.query('bad act') // 取得当日所忌(卷十一的所有词条)

// 取得当日所有时辰吉凶
lunisolar('2022-10-21').theGods.getLuckHours() // [-1, -1, 1, 1, -1, 1, -1, -1, 1, -1, 1, 1] 大于0为吉,少于0为凶

// 取得当日吉神所在方位
const [d24, god] = lunisolar('2022-11-25').theGods.getLuckDirection('財神')
d24.direction // 南
d24.sign.toString() // 午
d24.angle // 180


// 更多和详细用法请继续往下阅读

3 建除十二神

建除十二神,又称十二值神。即 “建、除、满、平、定、执、破、危、成、收、开、闭”共十二位神,每日轮值,周而复始,观所值以定吉凶。

《历书》曰:“历家以建、除、满、平、定、执、破、危、成、收、开、闭,凡十二日,周而复始,观所值以定吉凶。每月交节则叠两值日。其法从月建上起,建与斗杓所指相应,如正月建寅则寅日起建,顺行十二辰也。”

  • 方法
theGods.getDuty12God()

4 长生十二神

建除十二神 分别为:长生、沐浴、冠带、临官、帝旺、衰、病、死、墓、绝、胎、养

| | 甲 | 乙 | 丙 | 丁 | 戊 | 己 | 庚 | 辛 | 壬 | 癸 | |----|---|---|---|---|---|---|---|---|---|---| | 長生 | 亥 | 午 | 寅 | 酉 | 寅 | 酉 | 巳 | 子 | 申 | 卯 | | 沐浴 | 子 | 巳 | 卯 | 申 | 卯 | 申 | 午 | 亥 | 酉 | 寅 | | 冠帶 | 丑 | 辰 | 辰 | 未 | 辰 | 未 | 未 | 戌 | 戌 | 丑 | | 臨官 | 寅 | 卯 | 巳 | 午 | 巳 | 午 | 申 | 酉 | 亥 | 子 | | 帝旺 | 卯 | 寅 | 午 | 巳 | 午 | 巳 | 酉 | 申 | 子 | 亥 | | 衰 | 辰 | 丑 | 未 | 辰 | 未 | 辰 | 戌 | 未 | 丑 | 戌 | | 病 | 巳 | 子 | 申 | 卯 | 申 | 卯 | 亥 | 午 | 寅 | 酉 | | 死 | 午 | 亥 | 酉 | 寅 | 酉 | 寅 | 子 | 巳 | 卯 | 申 | | 墓 | 未 | 戌 | 戌 | 丑 | 戌 | 丑 | 丑 | 辰 | 辰 | 未 | | 絕 | 申 | 酉 | 亥 | 子 | 亥 | 子 | 寅 | 卯 | 巳 | 午 | | 胎 | 酉 | 申 | 子 | 亥 | 子 | 亥 | 卯 | 寅 | 午 | 巳 | | 養 | 戌 | 未 | 丑 | 戌 | 丑 | 戌 | 辰 | 丑 | 未 | 辰 |

方法:

theGods.getDuty12God(ymdh: 'year' | 'month' | 'day' | 'hour'): God

参数:

ymdh: 'year' | 'month' | 'day' | 'hour'

指定year,或返回八字年柱的长生十二神,同理 'month'、'day'、'hour'其它各柱亦如是。


5 串宫十二神 (黄道黑道十二神)

青龙、明堂、天刑、朱雀、金匮、天德、白虎、玉堂、天牢、玄武、司命、勾陈

顺序口诀

青龙明堂与天刑,朱雀金匮天德神, 白虎玉堂天牢黑,玄武司命共勾陈。

黄黑道口诀 (有走之底的字为黄道,其它为黑道)

道远几时通达,路遥何日还乡。

方法:

theGods.getBy12God(dh: 'day' | 'hour'): God

方法名 getBy12God,b指black黑道,y指yellow黄道,故取此方法名。

参数:

按《辨方书》黄道黑道十二神分到日神和时神中,故以参数指定是日还是时

dh: 'day' | 'hour'

6 其它神煞(年神,月神,日神,时神)

按《辨方书·卷九》把各类神煞划分为年神、月神、日神、时神

6.1 getGods方法

取得指定年、月、日、时的神煞

theGods.getGods(ymdh: 'Y' | 'M' | 'D' | 'H' | string): God[]

参数:

ymdh?: 'Y' | 'M' | 'D' | 'H' | string
// 默认值为 "MD"

参数ymdh可以指定'Y' | 'M' | 'D' | 'H'其中一个,分别以取当时的年、月、日、时神。

此外可通过组合同时取得组合后的神煞, 例如:

lunisolar().theGods.getGods('YMD') // 同时取得年、月、日神
lunisolar().theGods.getGods('MD') // 同时取得月、日神

6.2 getGoodGods方法

取得指定指定年、月、日、时的吉神

theGods.getGoodGods(ymdh: 'Y' | 'M' | 'D' | 'H' | string): God[]

参数:

参数与getGods方法一致, 默认值为 "MD"


6.3 getGoodGods方法

取得指定指定年、月、日、时的凶神

theGods.getBadGods(ymdh: 'Y' | 'M' | 'D' | 'H' | string): God[]

参数:

参数与getGods方法一致, 默认值为 "MD"


7 宜忌

本库中的所有宜忌词条,除特别说明的外,皆出于《协纪纪辨方书 * 卷十一》。

按《协纪纪辨方书 * 卷十一》宜忌分为 通書六十事、御用六十七事、 民用三十七事。

7.1 getActs() 方法

theGods.getActs(actType?: 0 | 1 | 2 | 3, returnKey?: boolean, replacer?: {}): {good: string[], bad: string[]}

参数说明:

actType: 0 | 1 | 2 | 3
/**
 宜忌类型
 defalut: 0
 0:所有词条,不会按通书、御用、民事里的词条进行筛选
 1:按`通书六十事`的词条进行筛选,不在此60个词条内者,不会出现
 2:按`御用六十七事`的词条进行筛选
 3: 按`民用三十七事`的词条进行筛选
*/

returnKey:boolean
/**
 是否返回宜忌key
 defalut: false
 false: 词条将按国际化翻译后返回
 true: 返回宜忌key,(本库宜忌以繁体中文作为key)
*/

replacer?:  { [key: string]: string }
/**
 宜忌词条替换 
 default: undefined
 例如要把“剃頭”替換成"理髮" 可設定為 {剃頭: "理髮"}
*/

7.2 getGoodActs() 方法

取得本日所宜

theGods.getGoodActs(actType?: 0 | 1 | 2 | 3, returnKey?: boolean, replacer?: {}): string[]

// 參數與getActs相同
// 此方法等同于:
theGods.getActs(actType, returnKey, replacer).good

7.3 getBadActs() 方法

取得本日所忌

theGods.getBadActs(actType?: 0 | 1 | 2 | 3, returnKey?: boolean, replacer?: {}): string[]

// 參數與getActs相同
// 此方法等同于:
theGods.getActs(actType, returnKey, replacer).bad

8 时辰吉凶

8.1 getAllDayHourGods() 方法

取得整日各时辰的神煞

theGods.getAllDayHourGods(): God[][]

// 返回结果为二维数组:
[
  [God, God, ...], // 子时
  [God, God, God, ...], // 丑时
  [God, God, God, ...], // 寅时
  [God, God, ...], // 卯时
  [God, ...], // 辰时
  [God, ...], // 巳时
  ...
  ...
  [God, ...], //亥时
]

8.2 getLuckHours() 方法

取得整日各时辰的吉凶

theGods.getLuckHours(luckType: 0 | 1 = 1): number[]
// 返回数组表示各时辰,数组元素指示吉凶,大于0为吉,小于0为凶
[1, 1, -1, 1, -1, -1, -1, -1, 1, 1, -1, -1]

参数说明

luckeType: 0 | 1
/**
选择吉凶取法
default: 0
0: 按黄黑道十二神(即青龙明堂等)决定吉凶
1:按黄黑道十二神(即青龙明堂等)决定吉凶
*/

9 吉神方

9.1 getAllLuckDirection() 方法

// 示例:
const lsr = lunisolar('2022-11-25')
const allDirections = lsr.theGods.getAllLuckDirection()
for (let i = 0; i < allDirections.length; i++) {
  const [d24, god] = allDirections[i]
  console.log(d24.direction, god.name)
}
// 南 喜神
// 東南 福神
// 南 財神
// 東 陽貴
// 東南 陰貴

取得当日所有神煞吉方

将会返回元素为[二十四山对象, 神煞对象]元组的列表

二十四山对象说明参考本连接


9.2 getLuckDirection(godKeyOrName) 方法

取得指定吉神所在方位

将会返回[二十四山对象, 神煞对象]元组

// 示例:
const lsr = lunisolar('2022-11-25')
const [d24, god] = lsr.theGods.getLuckDirection('財神')
console.log(d24.direction) // 南

参数说明

godKeyOrName:string
/**
吉方神煞名称,一般为 '喜神' | '福神' | '財神' | '陽貴' | '陰貴'
可以是国际化翻译后的名称
不在此范围内者,将返回null
*/

其它方法

query() 方法

通过query方法,传入指定的字符串,可取得对应的神煞或宜忌

theGod.query(queryString): God | God[] | string[] | null

参数说明

queryString 存入的字符串,对应返回的内容参见下表, 其中zh的中文字条取决于你是否使用zh语言名才能使用该字条。故建议使用key中的字条存入存数。

| key | zh | 说明 | 返回类型 | |---| --- | --- | ---- | | year gods | 年神 | 取得年神 | God[] | | month gods | 月神 | 取得月神 | God[] | | day gods | 日神 | 取得日神 | God[] | | hour gods | 時神 | 取得時神 | God[] | | this day gods | 本日神煞 | 取得本日神煞 | God[] | | day of yellow-black god | 本日黃黑十二神 | 取得本日的串宫十二神 | God[] | | hour of yellow-black god | 此時黃黑十二神 | 取得此时辰的串宫十二神 | God[] | | duty god | 建除十二神 | 取得建除 | God | | year of long-life god | 年長生十二神 | 取得年长生十二神 | God | | month of long-life god | 月長生十二神 | 取得月长生十二神 | God | | day of long-life god | 日長生十二神 | 取得日长生十二神 | God | | hour of long-life god | 時長生十二神 | 取得时辰长生十二神 | God | | good act | 宜 | 取得本日所宜 | string[] | | good act 1 | 宜1 | 取得本日通书所宜 | string[] | | good act 2 | 宜2 | 取得本日御用所宜 | string[] | | good act 3 | 宜3 | 取得本日民用所宜 | string[] | | bad act | 忌 | 取得本日所忌 | string[] | | bad act 1 | 忌1 | 取得本日通书所忌 | string[] | | bad act 2 | 忌2 | 取得本日御用所忌 | string[] | | bad act 3 | 忌3 | 取得本日民用所忌 | string[] |


TheGods 类

当lunisolar加载theGods插件后,可通过lunisolar().theGods属性取得TheGos实列

| 属性或方法 | 描述 | 参数 | 返回类型 | | --- | --- | --- | --- | | lsr | 当前Lunisolar对象实例 | | Lunisolar | | getGods(ymdh) | 取得神煞 | 参数默认为"MD", 可以是 "Y","M": "D": "H"的任一个或多个字符的组合,返回其对应的年神、月神、日神、时神或其组合 | God[] | | getGoodGods(ymdh) | 取得吉神 | 参数默认为"MD", 参数同上 | God[] | | getBadGods(ymdh) | 取得凶神 | 参数默认为"MD", 参数同上 | God[] | | getDuty12God() | 取得当日建除十二神(建、除、满...) | | God | | getLife12God(ymdh) | 取得长生十二神(长生、沐浴、冠帶...) | 参数可以是 "year"、"month"、"day"、 "hour"的其中一个 | God | | getActs(actType, returnKey, replacer) | 取得当日宜忌 | actType: 0 | 1 | 2 | 3 指返回宜忌的分类 returnKey: boolean 是否返回宜忌的key,默认为false, 即返回国际化翻译后的宜忌 replacer: { [key: string]: string } 用于替换宜忌词条的字典对象| {good: string[], bad: string[]} | | getGoodActs(actType, returnKey, replacer) | 取得当日所宜 | 参数与 getActs 方法一致 | string[] | | getBadActs(actType, returnKey, replacer) | 取得当日所忌 | 参数与 getActs 方法一致 | string[] | | getAllDayHourGods() | 取得整日各时辰的神煞 | | God[][] | | getLuckHours(luckType) | 取得整日各时辰的吉凶 | luckeType: 0 | 1 0: 按黄黑道十二神(即青龙明堂等)决定吉凶 1:根据时辰的吉神凶神个数决定吉凶 | number[] | |getAllLuckDirection() | 取得当日所有神煞吉方,将会返回元素为 **[二十四山对象, 神煞对象]**元组的列表 || [Direction24, God][] | |getLuckDirection(godKeyOrName) | 取得指定吉神所在方位,将会返回 **[二十四山对象, 神煞对象]**元组 | godKeyOrName: string吉方神煞名称,一般为 '喜神' | '福神' | '財神' | '陽貴' | '陰貴' | [Direction24, God] | | query(queryString) | 通过输入查询语句进行通用查询 | query: string | God | God[] | string[] | null |


God 类

通过theGods对象所取得的神煞,都是一个God对象,其包含以下属性:

| 属性或方法 | 描述 | 参数 | 返回类型 | | --- | --- | --- | --- | | key | 取得神煞key,一般為其繁体中文名称 | | string | | name | 取得神煞国际化翻译后的名称, | |string | | good | 神煞所宜 | | string[] | | bad | 神煞所忌 | | string[] | | cate | 神煞分类 | | 'year' | 'month' | 'day' | 'hour' | null | | luckLevel | 神煞吉凶, 大于0为吉,小于0为凶 | | number |