Awesome Bazi Calculator - Cantian AI
/install cantian-bazi
八字排盘、黄历与大运流年查询 (Bazi, Calendar & Fortune Range)
何时使用 / When to Use
- 用户要根据阳历出生时间计算四柱八字。 / User wants Four Pillars from Gregorian birth datetime.
- 用户要根据农历出生时间计算四柱八字。 / User wants Four Pillars from lunar birth datetime.
- 用户要查询某一天对应的农历、干支、宜忌等信息。 / User wants Chinese calendar info for a specific date.
- 用户要“查黄历”或看某天宜忌。 / User wants almanac-style daily auspicious/inauspicious info.
- 用户要查询一段时间内的大运、流年、流月、流日或流时。 / User wants decade/annual/monthly/daily/hourly fortune cycles in a time range.
前置依赖 / Prerequisites
- 推荐运行环境:Node 24(可直接运行 TypeScript 源码)。 / Recommended runtime: Node 24 (can run TypeScript source directly).
- 兼容方案:若 Node 版本较低,使用
tsx执行。 / Fallback: usetsxon lower Node versions. - 执行目录:在 skill 根目录(
SKILL.md所在目录)执行以下命令。 / Run commands in the skill root (whereSKILL.mdis located).
npm i
# 仅在需要兼容运行时安装
# Install only for fallback mode
npm i -D tsx
脚本清单 / Script Index
scripts/buildBaziFromSolar.ts:根据阳历时间生成八字 Markdown。 / Build Bazi from solar datetime.scripts/buildBaziFromLunar.ts:根据农历时间生成八字 Markdown。 / Build Bazi from lunar datetime.scripts/convertToTrueSolarTime.ts:将北京时间按经度换算为真太阳时(输出可直接给其它脚本使用)。 / Convert Beijing time to true solar time by longitude.scripts/getChineseCalendar.ts:查询指定日期(默认今天)的农历与干支信息。 / Get Chinese calendar for a given date (defaults to today).scripts/queryFortuneRange.ts:按时间区间查询大运与流年/流月/流日/流时(流时按时辰段合并)。 / Query decade fortune and annual/monthly/daily/hourly cycles in a time range.
脚本与参数 / Scripts & Parameters
scripts/buildBaziFromSolar.ts
# 推荐方式
node scripts/buildBaziFromSolar.ts \x3CsolarTime> [gender] [sect]
# 兼容方式(fallback)
tsx scripts/buildBaziFromSolar.ts \x3CsolarTime> [gender] [sect]
参数定义 / Parameters:
solarTime(必填 / required)- 格式:ISO 8601 日期时间(不带时区),如
1990-05-15T14:30:00 - 默认值:无
- 非法输入:格式不合法或为空时,由底层解析失败并报错
- 格式:ISO 8601 日期时间(不带时区),如
gender(可选 / optional)- 取值范围:
1(男 / male)、0(女 / female) - 默认值:
1 - 非法输入:抛错
性别参数无效。男性传 1,女性传 0。
- 取值范围:
sect(可选 / optional)- 取值范围:
1(23:00-23:59 视为明天)、2(23:00-23:59 视为当天) - 默认值:
2 - 非法输入:抛错
早晚子时配置参数无效。传 1 表示 23:00-23:59 日干支为明天,传 2 表示 23:00-23:59 日干支为当天。
- 取值范围:
scripts/buildBaziFromLunar.ts
# 推荐方式
node scripts/buildBaziFromLunar.ts \x3ClunarTime> [gender] [sect]
# 兼容方式(fallback)
tsx scripts/buildBaziFromLunar.ts \x3ClunarTime> [gender] [sect]
参数定义 / Parameters:
lunarTime(必填 / required)- 格式:ISO 8601 日期时间(不带时区),如
1990-04-21T14:30:00 - 默认值:无
- 非法输入:格式不合法或为空时,由底层解析失败并报错
- 格式:ISO 8601 日期时间(不带时区),如
gender(可选 / optional)- 取值范围:
1(男 / male)、0(女 / female) - 默认值:
1 - 非法输入:抛错
性别参数无效。男性传 1,女性传 0。
- 取值范围:
sect(可选 / optional)- 取值范围:
1(23:00-23:59 视为明天)、2(23:00-23:59 视为当天) - 默认值:
2 - 非法输入:抛错
早晚子时配置参数无效。传 1 表示 23:00-23:59 日干支为明天,传 2 表示 23:00-23:59 日干支为当天。
- 取值范围:
scripts/convertToTrueSolarTime.ts(真太阳时换算)
# 推荐方式
node scripts/convertToTrueSolarTime.ts \x3CbeijingTime> \x3ClongitudeOrCity> [standardLongitude]
# 兼容方式(fallback)
tsx scripts/convertToTrueSolarTime.ts \x3CbeijingTime> \x3ClongitudeOrCity> [standardLongitude]
参数定义 / Parameters:
beijingTime(必填 / required)- 含义:北京时间(东八区标准时)输入时间
- 格式:
YYYY-MM-DDTHH:mm[:ss](不带时区),如1990-05-15T14:30:00 - 默认值:无
- 非法输入:抛错
时间格式无效...请使用不带时区的 YYYY-MM-DDTHH:mm[:ss]...
longitudeOrCity(必填 / required)- 含义:可直接传经度,或传城市名由脚本自动匹配经度
- 经度格式:十进制度数,范围
-180到180(如武汉114.17) - 城市格式:城市名(支持常见后缀,如
武汉、武汉市) - 默认值:无
- 非法输入:地点无法识别时抛错
无法识别地点...请传经度或城市名...
standardLongitude(可选 / optional)- 含义:标准经度,默认
120(北京时间基准经线) - 取值范围:
-180到180 - 默认值:
120 - 非法输入:抛错
standardLongitude 无效...或standardLongitude 超出范围...
- 含义:标准经度,默认
输出 / Output:
- 标准输出仅返回 1 行真太阳时时间字符串(
YYYY-MM-DDTHH:mm:ss),可直接作为buildBaziFromSolar.ts与queryFortuneRange.ts的solar时间参数。
scripts/getChineseCalendar.ts(黄历/农历查询)
# 推荐方式(不传参默认今天)
node scripts/getChineseCalendar.ts [date]
# 兼容方式(fallback)
tsx scripts/getChineseCalendar.ts [date]
参数定义 / Parameters:
date(可选 / optional)- 格式:
YYYY-MM-DD(兼容YYYY/MM/DD),如2024-02-10 - 默认值:当天日期
- 取值范围:有效公历日期
- 非法输入:
- 格式错误时抛错
日期格式无效。请传入 YYYY-MM-DD(也兼容 YYYY/MM/DD)。 - 日期不存在时抛错
日期值无效。请确认年月日是实际存在的日期。
- 格式错误时抛错
- 格式:
scripts/queryFortuneRange.ts(大运/流年/流月/流日/流时区间查询)
# 推荐方式
node scripts/queryFortuneRange.ts '\x3Cjson>'
# 兼容方式(fallback)
tsx scripts/queryFortuneRange.ts '\x3Cjson>'
参数定义 / Parameters:
json(必填 / required)- 格式:JSON 字符串,结构如下:
birth.calendar(必填):solar或lunarbirth.time(必填):出生时间(不带时区),如1990-05-15T14:30:00birth.gender(可选):1男,0女,默认1birth.sect(可选):1或2,默认2query.startDateTime(必填):YYYY-MM-DD或YYYY-MM-DDTHHquery.endDateTime(必填):YYYY-MM-DD或YYYY-MM-DDTHHquery.level(可选):year、month、day、hour,默认year
- 自动补全规则:
startDateTime传YYYY-MM-DD时补为T00endDateTime传YYYY-MM-DD时补为T23
- 结果规则:
level采用层级语义:year \x3C month \x3C day \x3C hour- 自动补父级:查
day自动包含year+month;查hour自动包含year+month+day level=hour时返回流时,输出会将连续相同流时合并为时辰段(2 小时语义)- 查询层级达到
month时返回按连续干支月分段的流月区间 - 流年/流月/流日/流时结果均包含:干支、十神、神煞、与原命盘的刑冲合会关系
- 输出固定为完整 Markdown(按层级标题展开全部字段,不使用代码块),不做省略与去重
- 非法输入:
- JSON 非法时抛错
参数 JSON 解析失败。请传入合法 JSON。 - 时间格式错误时抛错
时间格式无效...请使用 YYYY-MM-DD 或 YYYY-MM-DDTHH... startDateTime晚于endDateTime时抛错时间范围无效:startDateTime 不能晚于 endDateTime。level=hour且范围超过 62 天时抛错hour 查询区间过大...
- JSON 非法时抛错
- 格式:JSON 字符串,结构如下:
示例 / Examples
# buildBaziFromSolar.ts 最小可用示例
node scripts/buildBaziFromSolar.ts "1990-05-15T14:30:00"
# buildBaziFromLunar.ts 最小可用示例
node scripts/buildBaziFromLunar.ts "1990-04-21T14:30:00"
# convertToTrueSolarTime.ts 最小可用示例(武汉经度)
node scripts/convertToTrueSolarTime.ts "1990-05-15T14:30:00" 114.17
# convertToTrueSolarTime.ts 城市名示例(无需手查经度)
node scripts/convertToTrueSolarTime.ts "1990-05-15T14:30:00" 武汉
# getChineseCalendar.ts 最小可用示例(默认今天)
node scripts/getChineseCalendar.ts
# getChineseCalendar.ts 指定日期
node scripts/getChineseCalendar.ts 2024-02-10
# queryFortuneRange.ts: 查询 2026-2028 流年
node scripts/queryFortuneRange.ts '{"birth":{"calendar":"solar","time":"1990-05-15T14:30:00","gender":1,"sect":2},"query":{"startDateTime":"2026-01-01","endDateTime":"2028-12-31","level":"year"}}'
# queryFortuneRange.ts: 查询下个月流日(按日)
node scripts/queryFortuneRange.ts '{"birth":{"calendar":"solar","time":"1990-05-15T14:30:00"},"query":{"startDateTime":"2026-05-01","endDateTime":"2026-05-31","level":"day"}}'
# queryFortuneRange.ts: 查询某段流时(按时辰段合并)
node scripts/queryFortuneRange.ts '{"birth":{"calendar":"solar","time":"1990-05-15T14:30:00"},"query":{"startDateTime":"2026-05-01T09","endDateTime":"2026-05-03T18","level":"hour"}}'
# 两步流程示例:先换算真太阳时,再排盘(示例结果需替换为实际换算输出)
node scripts/convertToTrueSolarTime.ts "1990-05-15T14:30:00" 114.17
node scripts/buildBaziFromSolar.ts "1990-05-15T14:10:20" 1 2
注意事项 / Notes
- 所有命令均在 skill 根目录执行,不依赖仓库根目录路径。 / Run all commands in the skill root; do not rely on repo-root paths.
- 时间字符串不要携带时区后缀(如
Z、+08:00),以免产生与预期不一致的换日结果。 / Do not append timezone suffixes (such asZor+08:00) to avoid unexpected day shifts. - 若要按真太阳时排盘,请先运行
convertToTrueSolarTime.ts,再把输出时间传给其它脚本;其它脚本本身不做真太阳时换算。 / For true solar time workflow, runconvertToTrueSolarTime.tsfirst and pass its output to other scripts. - 涉及 23:00-23:59 出生时,建议显式传
sect,避免晚子时归属歧义。 / For births between 23:00-23:59, explicitly setsectto avoid ambiguity. queryFortuneRange.ts的startDateTime/endDateTime只支持YYYY-MM-DD或YYYY-MM-DDTHH,不支持分钟秒。 /queryFortuneRange.tssupports onlyYYYY-MM-DDandYYYY-MM-DDTHHfor range inputs.- 真太阳时换算只依赖经度,不需要纬度;脚本支持直接传城市名自动匹配经度。 / True solar time conversion uses longitude only; latitude is not required.
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install cantian-bazi - After installation, invoke the skill by name or use
/cantian-bazi - Provide required inputs per the skill's parameter spec and get structured output
What is Awesome Bazi Calculator - Cantian AI?
以命理场景为主的八字排盘、黄历查询与大运/流年/流月/流日/流时区间查询技能。用于用户请求“算八字”“四柱排盘”“阳历/农历转八字”“查黄历/宜忌”“查未来10年流年”“查下个月流日/流时”等场景;关键词包括:八字、四柱、命理、大运、流年、流月、流日、流时、时辰、阳历转八字、农历转八字、黄历、宜忌、干支日期。真太... It is an AI Agent Skill for Claude Code / OpenClaw, with 1986 downloads so far.
How do I install Awesome Bazi Calculator - Cantian AI?
Run "/install cantian-bazi" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Awesome Bazi Calculator - Cantian AI free?
Yes, Awesome Bazi Calculator - Cantian AI is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does Awesome Bazi Calculator - Cantian AI support?
Awesome Bazi Calculator - Cantian AI is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created Awesome Bazi Calculator - Cantian AI?
It is built and maintained by cantian.ai (@tianlinle); the current version is v0.0.8.