From d2d1f358ffbca9d4d33fe401395c8c20a726f3a0 Mon Sep 17 00:00:00 2001 From: wehub-resource-sync Date: Mon, 13 Jul 2026 12:33:51 +0800 Subject: [PATCH] chore: import upstream snapshot with attribution --- .gitignore | 28 + LICENSE | 21 + NOTICE | 33 + README.en.md | 184 +++ README.md | 184 +++ README.wehub.md | 7 + SKILL.md | 209 +++ TEST-GUIDE.md | 179 ++ calculator/bazi-enrich/enrich.ts | 51 + calculator/bazi-enrich/gan-relations.ts | 65 + calculator/bazi-enrich/ge-ju.ts | 108 ++ calculator/bazi-enrich/tables.ts | 184 +++ calculator/bazi-enrich/tiao-hou.ts | 7 + calculator/bazi-enrich/wang-shuai.ts | 156 ++ calculator/bazi-enrich/wu-xing.ts | 62 + calculator/bazi-enrich/zhi-relations.ts | 176 ++ calculator/dist/bazi-enrich/enrich.js | 35 + calculator/dist/bazi-enrich/gan-relations.js | 52 + calculator/dist/bazi-enrich/ge-ju.js | 99 ++ calculator/dist/bazi-enrich/tables.js | 184 +++ calculator/dist/bazi-enrich/tiao-hou.js | 8 + calculator/dist/bazi-enrich/wang-shuai.js | 163 ++ calculator/dist/bazi-enrich/wu-xing.js | 48 + calculator/dist/bazi-enrich/zhi-relations.js | 155 ++ calculator/dist/dump-text.js | 256 +++ calculator/dist/render.js | 351 ++++ calculator/dist/run-chart.js | 103 ++ calculator/dist/yiqi-core/bazi.js | 319 ++++ calculator/dist/yiqi-core/daxian.js | 99 ++ calculator/dist/yiqi-core/ganzhi.js | 145 ++ calculator/dist/yiqi-core/index.js | 142 ++ calculator/dist/yiqi-core/jieqi.js | 165 ++ calculator/dist/yiqi-core/nayin.js | 137 ++ calculator/dist/yiqi-core/sihua.js | 115 ++ calculator/dist/yiqi-core/types.js | 3 + calculator/dist/yiqi-core/zhangsheng.js | 117 ++ calculator/dist/yiqi-core/ziwei-standard.js | 633 +++++++ calculator/dump-text.ts | 235 +++ calculator/package-lock.json | 56 + calculator/package.json | 19 + calculator/render.ts | 349 ++++ calculator/run-chart.ts | 87 + calculator/tsconfig.json | 26 + calculator/yiqi-core/bazi.ts | 356 ++++ calculator/yiqi-core/daxian.ts | 123 ++ calculator/yiqi-core/ganzhi.ts | 156 ++ calculator/yiqi-core/index.ts | 159 ++ calculator/yiqi-core/jieqi.ts | 190 +++ calculator/yiqi-core/nayin.ts | 168 ++ calculator/yiqi-core/sihua.ts | 129 ++ calculator/yiqi-core/types.ts | 152 ++ calculator/yiqi-core/zhangsheng.ts | 133 ++ calculator/yiqi-core/ziwei-standard.ts | 749 +++++++++ docs/jietu.png | Bin 0 -> 828892 bytes examples/sample-analysis.json | 73 + examples/sample-chart.json | 1541 ++++++++++++++++++ examples/sample-chart.txt | 150 ++ examples/sample-report.html | 1063 ++++++++++++ prompts/bazi-prompt.md | 81 + prompts/ziwei-prompt.md | 81 + prompts/zonghe-poster.md | 130 ++ prompts/zonghe-yinzheng-prompt.md | 151 ++ templates/report-zonghe-poster.html | 1063 ++++++++++++ 63 files changed, 12403 insertions(+) create mode 100644 .gitignore create mode 100644 LICENSE create mode 100644 NOTICE create mode 100644 README.en.md create mode 100644 README.md create mode 100644 README.wehub.md create mode 100644 SKILL.md create mode 100644 TEST-GUIDE.md create mode 100644 calculator/bazi-enrich/enrich.ts create mode 100644 calculator/bazi-enrich/gan-relations.ts create mode 100644 calculator/bazi-enrich/ge-ju.ts create mode 100644 calculator/bazi-enrich/tables.ts create mode 100644 calculator/bazi-enrich/tiao-hou.ts create mode 100644 calculator/bazi-enrich/wang-shuai.ts create mode 100644 calculator/bazi-enrich/wu-xing.ts create mode 100644 calculator/bazi-enrich/zhi-relations.ts create mode 100644 calculator/dist/bazi-enrich/enrich.js create mode 100644 calculator/dist/bazi-enrich/gan-relations.js create mode 100644 calculator/dist/bazi-enrich/ge-ju.js create mode 100644 calculator/dist/bazi-enrich/tables.js create mode 100644 calculator/dist/bazi-enrich/tiao-hou.js create mode 100644 calculator/dist/bazi-enrich/wang-shuai.js create mode 100644 calculator/dist/bazi-enrich/wu-xing.js create mode 100644 calculator/dist/bazi-enrich/zhi-relations.js create mode 100644 calculator/dist/dump-text.js create mode 100644 calculator/dist/render.js create mode 100644 calculator/dist/run-chart.js create mode 100644 calculator/dist/yiqi-core/bazi.js create mode 100644 calculator/dist/yiqi-core/daxian.js create mode 100644 calculator/dist/yiqi-core/ganzhi.js create mode 100644 calculator/dist/yiqi-core/index.js create mode 100644 calculator/dist/yiqi-core/jieqi.js create mode 100644 calculator/dist/yiqi-core/nayin.js create mode 100644 calculator/dist/yiqi-core/sihua.js create mode 100644 calculator/dist/yiqi-core/types.js create mode 100644 calculator/dist/yiqi-core/zhangsheng.js create mode 100644 calculator/dist/yiqi-core/ziwei-standard.js create mode 100644 calculator/dump-text.ts create mode 100644 calculator/package-lock.json create mode 100644 calculator/package.json create mode 100644 calculator/render.ts create mode 100644 calculator/run-chart.ts create mode 100644 calculator/tsconfig.json create mode 100644 calculator/yiqi-core/bazi.ts create mode 100644 calculator/yiqi-core/daxian.ts create mode 100644 calculator/yiqi-core/ganzhi.ts create mode 100644 calculator/yiqi-core/index.ts create mode 100644 calculator/yiqi-core/jieqi.ts create mode 100644 calculator/yiqi-core/nayin.ts create mode 100644 calculator/yiqi-core/sihua.ts create mode 100644 calculator/yiqi-core/types.ts create mode 100644 calculator/yiqi-core/zhangsheng.ts create mode 100644 calculator/yiqi-core/ziwei-standard.ts create mode 100644 docs/jietu.png create mode 100644 examples/sample-analysis.json create mode 100644 examples/sample-chart.json create mode 100644 examples/sample-chart.txt create mode 100644 examples/sample-report.html create mode 100644 prompts/bazi-prompt.md create mode 100644 prompts/ziwei-prompt.md create mode 100644 prompts/zonghe-poster.md create mode 100644 prompts/zonghe-yinzheng-prompt.md create mode 100644 templates/report-zonghe-poster.html diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2189390 --- /dev/null +++ b/.gitignore @@ -0,0 +1,28 @@ +# dependencies +node_modules/ +calculator/node_modules/ + +# build / runtime artifacts +*.log +.DS_Store +Thumbs.db + +# 排盘运行产物(用户生成的命盘 / 分析 / 报告,含个人生辰,勿入库) +*.tmp +chart.json +chart.txt +analysis.json +smoke.json +report.html +*-report.html +*-zonghe.html + +# 但仓库自带的合成示例必须入库(白名单放行) +!examples/sample-chart.json +!examples/sample-analysis.json +!examples/sample-report.html + +# editor +.vscode/ +.idea/ +*.swp diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..8dc7bd3 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 dzcmemory-web + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/NOTICE b/NOTICE new file mode 100644 index 0000000..a94ef76 --- /dev/null +++ b/NOTICE @@ -0,0 +1,33 @@ +bazi-ziwei-skill +Copyright (c) 2026 dzcmemory-web + +================================================================================ +本项目包含以下第三方开源组件 +This product includes third-party open-source components. +================================================================================ + +1. Yiqi-BaZi-ZiWei (易奇八字紫微排盘系统 / BZZW) + ------------------------------------------------------------ + 上游 / Upstream: https://github.com/fdxuyq/Yiqi-BaZi-ZiWei + 位置 / Location: calculator/yiqi-core/ + 说明 / Description: + 紫微斗数与八字的核心排盘算法(四柱、十神、星运、纳音、大运、流年、 + 十二宫、生年四化、大限等)来自该上游项目,经少量改造后内置(vendored) + 于本仓库 calculator/yiqi-core/ 目录。 + The core charting algorithms (four pillars, ten gods, na-yin, luck cycles, + twelve palaces, birth-year transformations, major limits, etc.) are + derived from this upstream project and vendored, with minor edits, into + calculator/yiqi-core/. + 许可 / License: MIT (per upstream project README) + +2. lunar-typescript + ------------------------------------------------------------ + 使用方式 / Usage: npm dependency (calculator/package.json) + 说明 / Description: 农历 / 节气 / 干支换算底层库。 + 许可 / License: MIT + +================================================================================ +本项目自有部分(calculator/bazi-enrich/、prompts/、templates/、render.ts、 +dump-text.ts、run-chart.ts 等)以 MIT 协议发布,见 LICENSE 文件。 +The original parts of this project are released under the MIT License (see LICENSE). +================================================================================ diff --git a/README.en.md b/README.en.md new file mode 100644 index 0000000..c5a28e4 --- /dev/null +++ b/README.en.md @@ -0,0 +1,184 @@ +
+ +# bazi-ziwei-skill + +**An AI Skill for BaZi (Four Pillars) + Zi Wei Dou Shu charting & cross-validation** + +Deterministic charting (not LLM guesswork) · 3 analysis modes · one-click ink-style HTML chart poster + +[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](./LICENSE) +[![SKILL.md](https://img.shields.io/badge/SKILL.md-compatible-c1432f.svg)](#-installation) + +[简体中文](./README.md) | English + +
+ +Cross-validation poster sample + +Cross-validation poster sample (synthetic subject, for display only) + +
+ +--- + +## What is this + +A Chinese metaphysics analysis Skill following the [SKILL.md open standard](https://code.claude.com/docs/en/skills). It plugs into any compatible AI agent — Claude Code / Claude Desktop / Codex / Cursor / Hermes / OpenClaw, etc. + +It does three things an LLM alone does poorly: + +1. **Accurate charting**: the Four Pillars (BaZi), the twelve palaces of Zi Wei Dou Shu, and the luck/year cycles are all computed by a bundled algorithm library — **the LLM never charts on its own**. Pure-LLM charting routinely gets the day pillar, day master, or chart structure wrong, and one wrong step corrupts everything downstream. +2. **Structural enrichment**: on top of the raw chart, an extra layer computes "chart structure / strength / climatic adjustment / clashes-combinations-harms / capped-pillars", feeding the LLM grounded inputs. +3. **Cross-validation**: it reconciles the conclusions of two independent systems — BaZi and Zi Wei — checking whether their main axes agree, whether life windows line up, and which one to trust on conflict. This is the core value that "any LLM + any charting tool" cannot replicate. + +--- + +## ✨ Features + +- 🎯 **Accurate algorithm**: charting core derived from the open-source project Yiqi (MIT), verified against its UI; the enrichment layer passes multi-dimensional regression on 7 test cases +- 🧭 **3 analysis modes**: BaZi only / Zi Wei only / BaZi + Zi Wei cross-validation +- 📜 **2 output formats**: in-depth Markdown long-form + 🎴 single-file HTML poster (cross-validation only) +- 🎴 **Ink-style chart poster**: modern minimal × Chinese ink, with the Zi Wei 12-palace chart + BaZi four-pillar chart + six-dimension cross-check, ready to screenshot and share +- 🔌 **Cross-agent**: one SKILL.md, works across major agents +- 🔒 **Privacy-first**: all charting runs locally, no network needed; runtime artifacts are gitignored by default + +--- + +## 🚀 Installation + +### 1. Clone + +```bash +git clone https://github.com/dzcmemory-web/bazi-ziwei-skill.git +``` + +### 2. Install algorithm dependencies + +```bash +cd bazi-ziwei-skill/calculator +npm install +``` +> Requires Node.js >= 18. Only one runtime dependency: `lunar-typescript` (MIT). + +### 3. Register with your agent + +Drop the whole `bazi-ziwei-skill/` folder into your agent's skills directory: + +| Agent | skills directory | +|---|---| +| Claude Code / Claude Desktop | `~/.claude/skills/bazi-ziwei/` | +| Codex | `~/.codex/skills/bazi-ziwei/` or reference via project AGENTS.md | +| Cursor | reference from project `.cursor/` rules | +| Hermes Agent | `~/.hermes/skills/bazi-ziwei/` | +| OpenClaw | its skills directory / local ClawHub install | + +The agent reads `SKILL.md` automatically and invokes it on demand. + +--- + +## 📖 Usage + +Once installed, just tell the agent a birth time: + +``` +I'm a male born at noon (12:00) on Jan 1, 2000. Read my chart. +``` + +The agent will: +1. Ask which analysis you want (BaZi / Zi Wei / cross-validation) +2. For cross-validation, ask long-form vs. HTML poster +3. Call the algorithm layer → load the matching prompt → output analysis or render the poster + +See [`SKILL.md`](./SKILL.md) for the full flow and [`TEST-GUIDE.md`](./TEST-GUIDE.md) for testing. + +### Charting directly from the CLI (no agent) + +```bash +cd calculator +# chart -> JSON +node dist/run-chart.js --year=2000 --month=1 --day=1 --hour=12 --minute=0 --gender=male > chart.json +# JSON -> readable text chart +node dist/dump-text.js --input=chart.json --output=chart.txt +# JSON + analysis JSON + template -> HTML poster +node dist/render.js --chart=chart.json --analysis=analysis.json \ + --template=../templates/report-zonghe-poster.html --output=report.html --currentYear=2026 +``` + +A synthetic sample is bundled (male, 2000-01-01, not a real person): +- `examples/sample-chart.json` — algorithm chart output +- `examples/sample-chart.txt` — text chart +- `examples/sample-analysis.json` — cross-validation analysis (sample) +- `examples/sample-report.html` — **finished poster; open in a browser to preview** + +--- + +## 📁 Layout + +``` +bazi-ziwei-skill/ +├── SKILL.md Skill entry point (the agent reads this) +├── TEST-GUIDE.md Testing guide (5 user paths) +├── calculator/ +│ ├── run-chart.ts charting entry: birth time -> JSON +│ ├── dump-text.ts JSON -> text chart +│ ├── render.ts JSON + analysis + template -> single-file HTML +│ ├── yiqi-core/ charting core (vendored from Yiqi, MIT) +│ └── bazi-enrich/ structure/strength/climate/clash enrichment +├── prompts/ +│ ├── bazi-prompt.md BaZi only (long-form) +│ ├── ziwei-prompt.md Zi Wei only (long-form) +│ ├── zonghe-yinzheng-prompt.md cross-validation (long-form) +│ └── zonghe-poster.md cross-validation (poster JSON output) +├── templates/ +│ └── report-zonghe-poster.html cross-validation poster template (placeholders) +└── examples/ + ├── sample-chart.json synthetic sample chart + └── sample-chart.txt synthetic text chart +``` + +--- + +## 🏗️ How it works + +``` +birth time ──> run-chart.ts ──> chart.json ──> dump-text.ts ──> chart.txt + (deterministic charting) (LLM-friendly text) + │ + ┌───────────────────────────────────┤ + ▼ ▼ + long-form prompt poster prompt + (Markdown prose) (strict JSON output) + │ + render.ts + template + ▼ + single-file HTML poster +``` + +**Key design**: the LLM only does *analysis* — never charting or HTML. Charting is handled by deterministic algorithms, the HTML visual by a fixed template, and the LLM's structured output fills template slots. Three concerns, cleanly separated. + +--- + +## 🙏 Acknowledgements + +- Charting core derived from the [Yiqi BaZi/Zi Wei system](https://github.com/fdxuyq/Yiqi-BaZi-ZiWei) (MIT); see [`NOTICE`](./NOTICE) +- Lunar conversion via [lunar-typescript](https://github.com/6tail/lunar-typescript) (MIT) + +--- + +## 📬 Contact + +Feedback, collaboration, or questions: **dzcmemory@gmail.com** + +If this project helps you, a ⭐ Star is appreciated. + +--- + +## ⚠️ Disclaimer + +This project is based on traditional BaZi and Zi Wei Dou Shu theory and is **for cultural research and entertainment only**. It does not constitute medical, financial, marital, legal, or any other decision-making basis. Your life is shaped by your own choices and circumstances. + +--- + +## 📄 License + +[MIT](./LICENSE) © 2026 dzcmemory-web diff --git a/README.md b/README.md new file mode 100644 index 0000000..11cd3d1 --- /dev/null +++ b/README.md @@ -0,0 +1,184 @@ +
+ +# bazi-ziwei-skill + +**AI 八字 + 紫微斗数排盘与综合印证 Skill** + +精准排盘(不靠 LLM 猜)· 三种分析模式 · 一键生成水墨风 HTML 命盘海报 + +[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](./LICENSE) +[![SKILL.md](https://img.shields.io/badge/SKILL.md-compatible-c1432f.svg)](#-安装) + +简体中文 | [English](./README.en.md) + +
+ +综合印证海报示例 + +综合印证海报示例(合成命主,仅供展示) + +
+ +--- + +## 这是什么 + +一个遵循 [SKILL.md 开放标准](https://code.claude.com/docs/en/skills) 的命理分析 Skill,可装入 Claude Code / Claude Desktop / Codex / Cursor / Hermes / OpenClaw 等支持该标准的 AI Agent。 + +它做三件大模型单独做不好的事: + +1. **精准排盘**:八字四柱、紫微十二宫、大运流年由内置算法库计算,**不让 LLM 自己排**——纯 LLM 排盘常把日柱、日主、格局算错,一步错则全盘失真。 +2. **格局补层**:在排盘之上补一层"格局 / 旺衰 / 调候 / 刑冲合害 / 盖头截脚"算法,喂给 LLM 做有依据的分析。 +3. **综合印证**:把八字与紫微两套独立体系的结论做交叉对账——主轴是否一致、人生窗口是否对齐、冲突时听谁。这是本 Skill 区别于"任意 LLM + 任意排盘工具"的核心增量。 + +--- + +## ✨ 特性 + +- 🎯 **算法精准**:排盘核心源自开源项目 Yiqi(MIT),经实测对齐;补层算法经 7 组案例多维度回归验证 +- 🧭 **三种分析模式**:八字独立 / 紫微独立 / 八字+紫微综合印证 +- 📜 **两种呈现形态**:Markdown 长文深度版 + 🎴 单文件 HTML 海报版(综合印证专属) +- 🎴 **水墨风命盘海报**:现代极简 × 中式水墨,含紫微 12 宫盘 + 八字四柱盘 + 六维交叉对账,可截图分享 +- 🔌 **跨 Agent**:一份 SKILL.md,多个主流 Agent 通用 +- 🔒 **隐私优先**:所有排盘在本地完成,无需联网;运行产物默认 gitignore + +--- + +## 🚀 安装 + +### 1. 克隆仓库 + +```bash +git clone https://github.com/dzcmemory-web/bazi-ziwei-skill.git +``` + +### 2. 安装算法层依赖 + +```bash +cd bazi-ziwei-skill/calculator +npm install +``` +> 需要 Node.js >= 18。算法层依赖仅一个:`lunar-typescript`(MIT)。 + +### 3. 注册到你的 Agent + +把整个 `bazi-ziwei-skill/` 文件夹放进 Agent 的 skills 目录: + +| Agent | skills 目录 | +|---|---| +| Claude Code / Claude Desktop | `~/.claude/skills/bazi-ziwei/` | +| Codex | `~/.codex/skills/bazi-ziwei/` 或项目内 AGENTS.md 引用 | +| Cursor | 项目 `.cursor/` 规则引用 | +| Hermes Agent | `~/.hermes/skills/bazi-ziwei/` | +| OpenClaw | 其 skills 目录 / ClawHub 本地安装 | + +Agent 会自动读取 `SKILL.md` 并按需调用。 + +--- + +## 📖 使用 + +装好后,直接对 Agent 说出生时间即可: + +``` +我是 2000 年 1 月 1 日中午 12 点出生的男生,帮我看下命盘。 +``` + +Agent 会: +1. 问你要哪种分析(八字 / 紫微 / 综合印证) +2. 综合印证时再问要长文还是 HTML 海报 +3. 调用算法层排盘 → 加载对应提示词 → 输出分析或渲染海报 + +详细流程见 [`SKILL.md`](./SKILL.md),测试方法见 [`TEST-GUIDE.md`](./TEST-GUIDE.md)。 + +### 命令行直接排盘(不经 Agent) + +```bash +cd calculator +# 排盘 → JSON +node dist/run-chart.js --year=2000 --month=1 --day=1 --hour=12 --minute=0 --gender=male > chart.json +# JSON → 可读文本盘 +node dist/dump-text.js --input=chart.json --output=chart.txt +# JSON + 分析 JSON + 模板 → HTML 海报 +node dist/render.js --chart=chart.json --analysis=analysis.json \ + --template=../templates/report-zonghe-poster.html --output=report.html --currentYear=2026 +``` + +仓库自带一份合成示例(2000-01-01 男,非真人): +- `examples/sample-chart.json` — 算法层排盘输出 +- `examples/sample-chart.txt` — 文墨天机风文本盘 +- `examples/sample-analysis.json` — 综合印证分析(示例) +- `examples/sample-report.html` — **综合印证海报成品,下载后用浏览器打开即可预览效果** + +--- + +## 📁 目录结构 + +``` +bazi-ziwei-skill/ +├── SKILL.md Skill 主入口(Agent 读这个) +├── TEST-GUIDE.md 测试指南(5 条用户路径) +├── calculator/ +│ ├── run-chart.ts 排盘入口:生辰 → JSON +│ ├── dump-text.ts JSON → 文墨天机风文本盘 +│ ├── render.ts JSON + 分析 + 模板 → 单文件 HTML +│ ├── yiqi-core/ 排盘核心算法(vendored from Yiqi, MIT) +│ └── bazi-enrich/ 格局/旺衰/调候/刑冲合害 补层算法 +├── prompts/ +│ ├── bazi-prompt.md 八字独立分析(长文) +│ ├── ziwei-prompt.md 紫微独立分析(长文) +│ ├── zonghe-yinzheng-prompt.md 综合印证(长文) +│ └── zonghe-poster.md 综合印证(海报 JSON 输出) +├── templates/ +│ └── report-zonghe-poster.html 综合印证海报模板(占位符) +└── examples/ + ├── sample-chart.json 合成示例排盘 + └── sample-chart.txt 合成示例文本盘 +``` + +--- + +## 🏗️ 工作原理 + +``` +生辰 ──> run-chart.ts ──> chart.json ──> dump-text.ts ──> chart.txt + (算法层精准排盘) (LLM 友好文本) + │ + ┌───────────────────────────┤ + ▼ ▼ + 长文提示词 海报提示词 + (Markdown 散文) (严格 JSON 输出) + │ + render.ts + 模板 + ▼ + 单文件 HTML 海报 +``` + +**关键设计**:LLM 只负责"分析",不负责"排盘"和"画 HTML"。排盘交给确定性算法,HTML 视觉交给固定模板,LLM 产出的结构化内容填进模板槽位——三者各司其职,互不污染。 + +--- + +## 🙏 致谢 + +- 排盘核心算法源自 [Yiqi 八字紫微排盘系统](https://github.com/fdxuyq/Yiqi-BaZi-ZiWei)(MIT 协议),详见 [`NOTICE`](./NOTICE) +- 农历换算依赖 [lunar-typescript](https://github.com/6tail/lunar-typescript)(MIT) + +--- + +## 📬 联系 / Contact + +问题反馈、合作或交流,欢迎邮件:**dzcmemory@gmail.com** + +如果这个项目对你有帮助,欢迎点一个 ⭐ Star 支持。 + +--- + +## ⚠️ 免责声明 + +本项目基于传统八字与紫微斗数理论框架,**仅供文化研究与娱乐参考**,不构成医疗、投资、婚姻、法律等任何决策依据。命运由个人选择与客观环境共同塑造。 + +--- + +## 📄 License + +[MIT](./LICENSE) © 2026 dzcmemory-web diff --git a/README.wehub.md b/README.wehub.md new file mode 100644 index 0000000..baa1489 --- /dev/null +++ b/README.wehub.md @@ -0,0 +1,7 @@ +# WeHub 来源说明 + +- 原始项目:`dzcmemory-web/bazi-ziwei-skill` +- 原始仓库:https://github.com/dzcmemory-web/bazi-ziwei-skill +- 导入方式:上游默认分支的最新快照 +- 原作者、版权和许可证信息以原始仓库及本仓库 LICENSE 为准 +- 本文件仅用于记录来源,不代表 WeHub 是原项目作者 diff --git a/SKILL.md b/SKILL.md new file mode 100644 index 0000000..8398c7b --- /dev/null +++ b/SKILL.md @@ -0,0 +1,209 @@ +--- +name: bazi-ziwei +description: 八字 + 紫微斗数 AI 排盘与综合分析。当用户提供生辰(阳历/农历日期、时辰、性别)询问八字、紫微、命理、命盘、流年大运相关问题时使用。基于 Yiqi 算法库 + enrichBazi 补全层精准排盘(杜绝 LLM 自行排盘出错),支持按需独立分析八字 / 独立分析紫微 / 两盘交叉印证。 +--- + +# 八字 + 紫微斗数综合分析 Skill + +## 何时触发 + +用户场景: +- 提供出生时间("我是 2000-01-01 中午 12:00 男")并希望分析 +- 询问"帮我看八字 / 看紫微 / 算命 / 看命盘 / 看流年大运" +- 提供命盘文本(文墨天机、紫微斗数排盘软件导出格式)希望深度解读 +- 询问特定大运/流年的吉凶 + +**不触发**:单纯的星座 / 塔罗 / 周公解梦 / 风水 / 姓名学。 + +## 必需输入 + +``` +公历或农历日期 (YYYY-MM-DD) +出生时刻 (HH:MM, 24 小时制) +性别 (男/女) +``` + +若用户没给时辰,**必须主动询问**,不要默认子时。时辰对四柱日柱和紫微命宫影响极大。 + +> 不需要出生地。排盘直接使用钟表时间,不做真太阳时经度校正。 + +--- + +## 执行流程 + +### Step 0 — 决策门(开场必做) ⭐ + +**问题 1:要看哪种命理?** +> "我可以做三种分析: +> 1. **八字独立分析**(事业 / 财运 / 婚恋 / 子女 / 六亲 / 健康,按八字格局推演 — 长文输出) +> 2. **紫微独立分析**(十二宫 + 大限 + 生年四化 + 流年 — 长文输出) +> 3. **八字 + 紫微综合印证**(两盘交叉对账 — 提供长文 / 可视化海报 / 两种都要)" + +**如果用户选 3,再追问问题 2:呈现形态** +> "综合印证可以这样输出: +> A. **📜 长文深度版**(Markdown 散文,沉浸阅读) +> B. **🎴 结构化海报版**(单文件 HTML,可截图分享) +> C. **两种都要**" + +**根据选择加载相应提示词和模板**: + +| 用户选 | 加载提示词 | 模板 | 输出 | +|---|---|---|---| +| 1 | `prompts/bazi-prompt.md` | — | Markdown 对话回复 | +| 2 | `prompts/ziwei-prompt.md` | — | Markdown 对话回复 | +| 3 + A | `prompts/zonghe-yinzheng-prompt.md` | — | Markdown 对话回复 | +| 3 + B | `prompts/zonghe-poster.md` | `templates/report-zonghe-poster.html` | `-zonghe.html` | +| 3 + C | 上述两份都跑 | 同上 | Markdown + HTML 两份 | + +> **海报模板仅综合印证一种**。八字独立 / 紫微独立只有长文输出(用户深度阅读用)。这是经过设计的——海报是综合印证独占的杀手锏,承担社交分享 + 用户惊艳的角色。 + +--- + +### Step 1 — 排盘(算法层,产出 JSON) + +**绝对不要让 AI 自己排八字或紫微**。必须调用算法层脚本: + +```bash +cd calculator +node dist/run-chart.js --year=YYYY --month=MM --day=DD --hour=HH --minute=MM --gender=male > chart.json +``` + +**注意**:`run-chart.ts` 的 stdout 是纯 JSON,stderr 是 debug 信息。**重定向时只取 stdout**(`> chart.json`),不要 `2>&1`。 + +脚本输出 JSON: +- `bazi`:四柱 / 十神 / 星运 / 自坐 / 纳音 / 藏干 / 大运(含 startAge/endAge/startYear/endYear) +- `bazi.enrichment`:格局 / 旺衰 / 调候 / 五行旺相 / 五行统计 / 天干关系 / 地支关系 / 整柱判定 +- `ziwei`:十二宫 / 生年四化 / 大限 / 阴阳 / 五行局 / 命主身主 + +> **关键约束**:纯 LLM 排盘会错排日柱 → 日主 → 格局 → 用神,全链失真。Case B 测试证明 DeepSeek/Gemini 自行排盘均出错。算法层不可绕过。 + +--- + +### Step 2 — 文本盘转换(算法层,产出可读文本) + +LLM 读 JSON 不如读结构化文本。把 Step 1 的 JSON 转成文墨天机风格的树状文本: + +```bash +node dist/dump-text.js --input=chart.json --output=chart.txt +``` + +文本盘包含: +- 紫微部分:基本信息 + 生年四化 + 十二宫(含主星 / 辅星 / 大限 / 流年) +- 八字部分:四柱(含藏干十神 / 星运 / 自坐 / 纳音)+ 大运 + 算法补层(格局 / 旺衰 / 调候 / 关系 / 整柱) + +将 `chart.txt` 内容连同对应提示词一起送给 LLM 做分析。 + +--- + +### Step 3 — 分析(按 Step 0 用户选择执行对应分支) + +#### Step 3 — 长文版(用户选 1 / 2 / 3+A / 3+C) +读取对应长文提示词(`bazi-prompt.md` / `ziwei-prompt.md` / `zonghe-yinzheng-prompt.md`),喂入 `chart.txt`,输出 Markdown 长文。 + +> 综合印证(3+A)的前置条件:先跑八字 + 紫微独立分析拿到中间报告,再喂给 `zonghe-yinzheng-prompt.md`。 +> 如输出被截断,分段输出。 + +#### Step 3 — 海报版(仅用户选 3+B 或 3+C) +1. 读取 `prompts/zonghe-poster.md`,喂入 `chart.txt` +2. LLM **必须输出严格 JSON**(不是 Markdown)——提示词末尾会要求"直接以 `{` 开头",照办即可 +3. 把 LLM 输出的 JSON 保存为 `analysis.json` +4. 调用渲染脚本: + ```bash + cd calculator + node dist/render.js \ + --chart=chart.json \ + --analysis=analysis.json \ + --template=../templates/report-zonghe-poster.html \ + --output=-.html \ + --currentYear= + ``` +5. 把生成的 HTML 文件路径告诉用户,让其用浏览器打开 + +> **重要**:海报版的视觉由 HTML 模板决定,**LLM 只产数据不产 HTML**。如果 LLM 输出含 markdown 包装(如 \`\`\`json … \`\`\`),渲染前需剥掉。 + +--- + +## 安装后行为(重要) + +**装好 Skill 后不要主动跑任何验证 / 自检命令。** 不要试 Smoke Test、不要排示例盘、不要分析示例命主。装好就是装好,等用户来给生辰再开始工作。 + +> 自检命令在 `TEST-GUIDE.md` 中由人工按需运行,不在 Agent 的职责范围内。Agent 主动跑会浪费 token + 触发上下文压缩。 + +依赖检查(仅在用户首次提供生辰、Agent 准备跑 run-chart.ts 报错时): +```bash +cd /calculator +ls node_modules >/dev/null 2>&1 || npm install +``` +也就是说,依赖问题**报错时再修**,不要装好就主动检查。 + +--- + +## 关键约束 + +1. **装好不自检**:见上节"安装后行为"。不要主动跑示例排盘 / 自检 / smoke test +2. **决策门必做**:永远先问用户要哪种分析,避免无意义的 token 消耗 + 输出截断 +3. **排盘必须走算法层**:不要徒手算四柱、紫微宫位、大限。错一步全盘垮 +4. **不引入命盘外变量**:风水、姓名、阳宅、紫白飞星不在本 Skill 范围 +5. **冲突要说出来**:八字与紫微出现矛盾信号时按综合印证提示词的 4 条规则判定,不和稀泥 +6. **置信度自评**:边界情况(旺衰临界、格局模糊、两盘对立)必须标"置信度:低" +7. **不替用户做决策**:投资、择偶、医疗、堕胎等决策类问题,给信号不给指令 +8. **敏感问题拒答**:下蛊、断人财路、害人命运等违禁内容直接拒绝 +9. **免责声明**:分析末尾必带"仅供文化研究与娱乐参考" + +--- + +## 文件清单 + +``` + +├── SKILL.md ← 本文件 +├── calculator/ +│ ├── run-chart.ts ← 入口:生辰 → JSON(stdout 纯 JSON / stderr debug) +│ ├── dump-text.ts ← JSON → 文墨天机风文本 +│ ├── render.ts ← 渲染脚本:chart.json + analysis.json + 模板 → HTML +│ ├── package.json ← 算法层依赖声明 +│ ├── yiqi-core/ ← Yiqi 算法(已 vendored 入库,无外部依赖) +│ └── bazi-enrich/ ← enrichBazi 补层(格局/旺衰/调候/关系/整柱) +├── prompts/ +│ ├── bazi-prompt.md ← 八字独立分析(长文) +│ ├── ziwei-prompt.md ← 紫微独立分析(长文) +│ ├── zonghe-yinzheng-prompt.md ← ⭐ 综合印证(长文) +│ └── zonghe-poster.md ← ⭐ 综合印证(海报版 JSON 输出) +├── templates/ +│ └── report-zonghe-poster.html ← 综合印证海报模板(占位符) +└── fixtures/ ← 7 个验证案例(Case A-G) +``` + +**注**:HTML 渲染目前**仅支持综合印证模式**。如用户选了八字独立 / 紫微独立又问"能不能出 HTML 报告",告知"目前 HTML 海报仅对综合印证开放,建议选综合印证(含八字+紫微)以拿到海报"。 + +--- + +## 工作示例 + +**用户**:我是 2000 年 1 月 1 日 12:00 出生的男生,帮我看下命盘。 + +**Skill 应该走**: +1. 信息确认(日期/时辰/性别 ✅) +2. **决策门**:"想要八字分析 / 紫微分析 / 综合印证?" +3. 用户回 "八字": + - Step 1:跑 `run-chart.ts` 产出 `chart.json` + - Step 2:跑 `dump-text.ts` 产出 `chart.txt` + - Step 3a:加载 `prompts/bazi-prompt.md` + 喂入 `chart.txt` → 输出八字分析 +4. 提醒"若要紫微 / 综合印证可随时追问" + +--- + +## 失败模式与处理 + +| 现象 | 原因 | 处理 | +|---|---|---| +| 排盘脚本报错 | 日期超 1900-2100 / 时辰格式错 | 询问用户校正 | +| AI 想"凭记忆排盘" | 偷懒走捷径 | **拒绝**。算法层是不可绕过的硬约束 | +| 输出被截断 | 三段一锅出超 token 上限 | 回到决策门,拆分输出 | +| 算法层和用户其他软件结果不一致 | 命名流派差异(建禄格 vs 比肩格) | 按算法层 `notes` 解释,不偷换说法 | +| Windows + 中文路径 + PowerShell 编码错乱 | 平台特性 | 在 cmd / git bash / WSL 下运行,避免 PowerShell | + +--- + +## 免责声明(每次输出末必带) +> 本分析基于传统八字与紫微斗数理论框架,仅供文化研究与娱乐参考,不构成医疗、投资、婚姻、法律等任何决策依据。命运由个人选择与客观环境共同塑造。 diff --git a/TEST-GUIDE.md b/TEST-GUIDE.md new file mode 100644 index 0000000..4127057 --- /dev/null +++ b/TEST-GUIDE.md @@ -0,0 +1,179 @@ +# 测试指南 + +> 在 Claude Code / Claude Desktop / Codex / Cursor / Hermes / OpenClaw 等支持 SKILL.md 的 Agent 中测试本 Skill。 +> 本指南使用合成示例生辰 **2000-01-01 12:00 男**(非真人),其完整排盘见 `examples/sample-chart.json` 与 `examples/sample-chart.txt`。 + +--- + +## 0. 装好之后先跑 Smoke Test(人工,可选) + +确认算法层和依赖正常。在仓库根目录: + +```bash +cd calculator +npm install # 首次使用需要 +node dist/run-chart.js --year=2000 --month=1 --day=1 --hour=12 --minute=0 --gender=male > smoke.json +``` + +**预期**: +- 命令秒级返回 +- `smoke.json` 首字符是 `{`(纯 JSON) +- stderr 会输出 `🔍 八字计算结果 - ...` 两行 debug,这是正常的 + +检查关键字段: +```bash +node -e "const j=require('./smoke.json'); console.log('日柱:', j.bazi.siZhu.day.gan+j.bazi.siZhu.day.zhi, '/ 格局:', j.bazi.enrichment.格局.primary)" +``` +**预期输出**:`日柱: 戊午 / 格局: 正财格` + +跑通即装配正确。`smoke.json` 内容应与 `examples/sample-chart.json` 完全一致。 + +> 注意:Agent 装好 Skill 后**不会主动**跑此自检(SKILL.md 明确要求装好不自检,避免浪费 token)。Smoke Test 由你手动执行。 + +--- + +## 5 种用户路径速查 + +| 编号 | 用户选择 | 输出 | +|---|---|---| +| 路径 1 | 八字独立分析 | Markdown 长文 | +| 路径 2 | 紫微独立分析 | Markdown 长文 | +| 路径 3 | 综合印证 + 长文(A) | Markdown 长文 | +| 路径 4 | 综合印证 + 海报(B)⭐ | 单文件 HTML 海报 | +| 路径 5 | 综合印证 + 两种(C) | Markdown + HTML | + +--- + +## 路径 1:八字独立分析(长文) + +**测试输入**(发给 Agent): +``` +我是 2000 年 1 月 1 日中午 12 点出生的男生,帮我看下八字。 +``` + +**期望 Agent 做的事**: +1. 触发 Skill,进入决策门,问你要哪种分析(你回"八字") +2. 跑 `run-chart.ts` → chart.json +3. 跑 `dump-text.ts` → chart.txt +4. 加载 `prompts/bazi-prompt.md`,喂入 chart.txt,输出 Markdown + +**验证点**: +- ✅ 标明 "日主:戊土" +- ✅ 提到 "正财格" +- ✅ 提到 "调候用神:丙、甲" +- ✅ 提到 "子午相冲" 或地支关系 +- ✅ 末尾有 "仅供文化研究与娱乐参考" 免责声明 + +**❌ 失败信号**: +- 出现非 "戊" 的日主 → AI 自己排盘了,没用算法层 +- 完全没有 "戊 / 正财 / 调候" 字样 → 没读到 chart.txt + +--- + +## 路径 2:紫微独立分析(长文) + +**测试输入**: +``` +我是 2000 年 1 月 1 日中午 12 点出生的男生,帮我看下紫微。 +``` + +**验证点**: +- ✅ 提到 "命宫在午" 或 "命宫 紫微" +- ✅ 提到生年四化(武曲化禄 / 贪狼化权 / 天梁化科 / 文曲化忌)至少 1-2 个 +- ✅ 提到 "土五局" +- ✅ 末尾免责声明 + +--- + +## 路径 3:综合印证 + 长文(A) + +**测试输入**: +``` +我是 2000 年 1 月 1 日中午 12 点出生的男生,请做八字+紫微的综合分析(长文)。 +``` + +**期望**:先跑八字独立 + 紫微独立拿中间报告,再喂 `zonghe-yinzheng-prompt.md`。 + +**验证点**: +- ✅ 有"主轴印证"段,明说"同向 / 互补 / 矛盾" +- ✅ 至少 1-2 处八字与紫微互相印证或冲突的具体点 +- ✅ 给出关键时间窗口 +- ✅ 末尾免责声明 + +**注意**:综合印证输出最长,可能被 Agent 自动截断。如截断,让 Agent 分段输出。 + +--- + +## 路径 4:综合印证 + 海报 HTML ⭐ 杀手锏 + +**测试输入**: +``` +我是 2000 年 1 月 1 日中午 12 点出生的男生,请生成综合印证的 HTML 海报。 +``` + +**期望 Agent 做的事**: +1. 跑算法层(run-chart + dump-text) +2. 加载 `prompts/zonghe-poster.md`,喂入 chart.txt +3. LLM 输出**严格 JSON**(不是 markdown 散文) +4. JSON 存为 `analysis.json` +5. 跑渲染脚本: + ```bash + cd calculator + node dist/render.js \ + --chart=chart.json \ + --analysis=analysis.json \ + --template=../templates/report-zonghe-poster.html \ + --output=report.html \ + --currentYear=2026 + ``` +6. 告诉你 HTML 路径,你用浏览器打开 + +**验证点**: +- ✅ HTML 生成(约 45-50 KB) +- ✅ 浏览器打开能看到完整海报:Hero + 紫微盘 + 八字盘 + 命盘核心数据 + 六维交叉对账 + 综合定论 +- ✅ 无可见 `{{占位符}}` 残留 +- ✅ 紫微 12 宫每宫有星曜,八字四柱含藏干/星运/自坐/纳音 +- ✅ 02 阶段印证时间轴有数据(不空白) + +**❌ 失败信号**: +- LLM 输出 markdown 包装的 JSON → 渲染前需剥掉,否则 HTML 全是占位符 +- HTML 里大量 `-`(兜底字符)→ LLM 的 JSON schema 不完整 + +**快速验证 LLM 输出 JSON 是否合格**: +```bash +node -e "const j=require('./analysis.json'); console.log('strengths:', j.strengths?.length, '/dim:', Object.keys(j.dim||{}).length, '/nodes:', j.final?.nodes?.length, '(应为 3 / 6 / 5)')" +``` + +--- + +## 路径 5:综合印证 + 两种(C) + +**测试输入**: +``` +我是 2000 年 1 月 1 日中午 12 点出生的男生,请同时给我综合印证的长文版和 HTML 海报。 +``` + +**期望**:路径 3 + 路径 4 都跑。如上下文紧张,先出 HTML 海报(更核心)。 + +--- + +## 常见问题排查 + +| 现象 | 可能原因 | 处理 | +|---|---|---| +| Agent 找不到 Skill | SKILL.md 不在 Agent 扫描路径 | 把整个仓库放进 Agent 的 skills 目录(如 `~/.claude/skills/bazi-ziwei/`) | +| 排盘脚本报错 | 时辰格式错 / 日期超 1900-2100 | 校正输入 | +| `node dist/...` 报找不到模块 | 没装依赖 | `cd calculator && npm install` | +| 改了 .ts 源码后没生效 | dist 是预编译产物 | 重新编译 `npm run build` | +| 渲染 HTML 后全是占位符 | analysis.json 解析失败 | 看 analysis.json 第一字符是不是 `{`,不是就剥掉 markdown 包装 | +| 海报里命主信息错 | LLM 自行排盘没用算法层 | 重跑,强调"必须读 chart.txt 不要自己排" | +| 当前大限算错 | `--currentYear` 没传或传错 | 渲染时加 `--currentYear=<当前年份>` | +| Windows 中文路径/PowerShell 编码错乱 | 平台特性 | 用 git bash / WSL 替代 PowerShell | + +--- + +## 多 Agent 兼容性 + +本 Skill 遵循 SKILL.md 开放标准,理论兼容:Claude Code / Claude Desktop / Codex CLI / Codex Desktop / Cursor / Gemini CLI / GitHub Copilot / Hermes Agent / OpenClaw 等。 + +测完一个 Agent 把结果记下来,方便对比。 diff --git a/calculator/bazi-enrich/enrich.ts b/calculator/bazi-enrich/enrich.ts new file mode 100644 index 0000000..dee7049 --- /dev/null +++ b/calculator/bazi-enrich/enrich.ts @@ -0,0 +1,51 @@ +// 八字增强分析主入口 — 给定四柱, 输出格局/旺衰/刑冲合害/调候/自坐 等所有 Yiqi 未算的字段 + +import { Tiangan, Dizhi, getChangSheng } from './tables'; +import { detectZhiRelations } from './zhi-relations'; +import { detectGanRelations, judgePillars } from './gan-relations'; +import { countWuXing, wuXingMonthStatus } from './wu-xing'; +import { judgeWangShuai } from './wang-shuai'; +import { judgeGeJu } from './ge-ju'; +import { getTiaoHou } from './tiao-hou'; + +type Pillar = '年'|'月'|'日'|'时'; +type GanZhi = {gan: Tiangan, zhi: Dizhi}; + +export type BaziEnrichment = { + 自坐: Record; // 每柱 干 vs 自身支 的长生 + 五行旺相: Record; + 五行统计: ReturnType; + 调候用神: string[]; + 格局: ReturnType; + 旺衰: ReturnType; + 天干关系: ReturnType; + 地支关系: ReturnType; + 整柱: ReturnType; +}; + +export function enrichBazi(siZhu: Record): BaziEnrichment { + const dm = siZhu.日.gan; + const monthZhi = siZhu.月.zhi; + + // 自坐 — 每柱干在自身支的长生位 + const ziZuo: Record = {} as any; + for (const p of ['年','月','日','时'] as Pillar[]) { + ziZuo[p] = getChangSheng(siZhu[p].gan, siZhu[p].zhi); + } + + return { + 自坐: ziZuo, + 五行旺相: wuXingMonthStatus(monthZhi), + 五行统计: countWuXing(siZhu, dm), + 调候用神: getTiaoHou(dm, monthZhi), + 格局: judgeGeJu(siZhu), + 旺衰: judgeWangShuai(siZhu), + 天干关系: detectGanRelations({ + 年: siZhu.年.gan, 月: siZhu.月.gan, 日: siZhu.日.gan, 时: siZhu.时.gan + }), + 地支关系: detectZhiRelations({ + 年: siZhu.年.zhi, 月: siZhu.月.zhi, 日: siZhu.日.zhi, 时: siZhu.时.zhi + }), + 整柱: judgePillars(siZhu) + }; +} diff --git a/calculator/bazi-enrich/gan-relations.ts b/calculator/bazi-enrich/gan-relations.ts new file mode 100644 index 0000000..bfc4021 --- /dev/null +++ b/calculator/bazi-enrich/gan-relations.ts @@ -0,0 +1,65 @@ +// 天干关系 + 整柱盖头/截脚 + +import { Tiangan, GAN_WUXING, ZHI_WUXING, Dizhi, shengKe } from './tables'; + +export type GanRelation = { + type: '天干合'|'天干相克'|'天干同'; + gans: Tiangan[]; + pillars: string[]; +}; + +const GAN_HE_PAIRS: Array<[Tiangan, Tiangan, string]> = [ + ['甲','己','土'],['乙','庚','金'],['丙','辛','水'],['丁','壬','木'],['戊','癸','火'] +]; + +type Pillar = '年'|'月'|'日'|'时'; + +export function detectGanRelations(gans: Record): GanRelation[] { + const out: GanRelation[] = []; + const pillars: Pillar[] = ['年','月','日','时']; + const list = pillars.map(p => ({pillar: p, gan: gans[p]})); + for (let i = 0; i < list.length; i++) { + for (let j = i+1; j < list.length; j++) { + const a = list[i], b = list[j]; + // 五合 + const he = GAN_HE_PAIRS.find(([x,y]) => (a.gan===x && b.gan===y) || (a.gan===y && b.gan===x)); + if (he) { + out.push({type:'天干合', gans:[a.gan, b.gan], pillars:[a.pillar, b.pillar]}); + continue; + } + // 相克 (剔除合化情形) + const rel = shengKe(GAN_WUXING[a.gan], GAN_WUXING[b.gan]); + if (rel === '克' || rel === '被克') { + out.push({type:'天干相克', gans:[a.gan, b.gan], pillars:[a.pillar, b.pillar]}); + } + } + } + return out; +} + +// 整柱盖头/截脚 +// 盖头: 天干克地支(以五行论) +// 截脚: 地支克天干 +export type PillarVerdict = { + pillar: Pillar; + gan: Tiangan; + zhi: Dizhi; + verdict: '盖头'|'截脚'|'天干生地支'|'地支生天干'|'天地同气'|'天地异气无生克'; +}; + +export function judgePillars(siZhu: Record): PillarVerdict[] { + const pillars: Pillar[] = ['年','月','日','时']; + return pillars.map(p => { + const {gan, zhi} = siZhu[p]; + const ganWx = GAN_WUXING[gan]; + const zhiWx = ZHI_WUXING[zhi]; + const rel = shengKe(ganWx, zhiWx); + let verdict: PillarVerdict['verdict']; + if (rel === '克') verdict = '盖头'; + else if (rel === '被克') verdict = '截脚'; + else if (rel === '生') verdict = '天干生地支'; + else if (rel === '被生') verdict = '地支生天干'; + else verdict = '天地同气'; + return {pillar: p, gan, zhi, verdict}; + }); +} diff --git a/calculator/bazi-enrich/ge-ju.ts b/calculator/bazi-enrich/ge-ju.ts new file mode 100644 index 0000000..551aa7c --- /dev/null +++ b/calculator/bazi-enrich/ge-ju.ts @@ -0,0 +1,108 @@ +// 格局判定 — 普通八格 + 建禄/月刃 + 特殊格局提示 + +import { Tiangan, Dizhi, GAN_YINYANG, ZHI_CANG_GAN, getShiShen, getChangSheng, ShiShen } from './tables'; + +type Pillar = '年'|'月'|'日'|'时'; + +export type GeJuResult = { + primary: string; // 主格局 + basis: string; // 立格依据 + 透干: Tiangan[]; // 月令藏干中透出天干的列表 + confidence: '高'|'中'|'低'; + notes: string[]; // 特殊提示 (如从格可能、格不纯等) +}; + +const SHI_SHEN_TO_GE: Record = { + 比肩: '比肩格', + 劫财: '劫财格', + 食神: '食神格', + 伤官: '伤官格', + 偏财: '偏财格', + 正财: '正财格', + 七杀: '七杀格', + 正官: '正官格', + 偏印: '偏印格', + 正印: '正印格' +}; + +export function judgeGeJu(siZhu: Record): GeJuResult { + const dm = siZhu.日.gan; + const monthZhi = siZhu.月.zhi; + const cangGan = ZHI_CANG_GAN[monthZhi]; + const benqi = cangGan[0].gan; + const benqiSS = getShiShen(dm, benqi); + + const otherGans = [siZhu.年.gan, siZhu.月.gan, siZhu.时.gan]; + const tougan: Tiangan[] = []; + for (const cg of cangGan) { + if (otherGans.includes(cg.gan)) tougan.push(cg.gan); + } + + const notes: string[] = []; + + // 1. 月支为子/午/卯/酉 — 纯气月支, 直接立格 + // 2. 月支为四生(寅申巳亥) / 四库(辰戌丑未) — 先看透干 + const isPure = ['子','午','卯','酉'].includes(monthZhi); + + let primary: string; + let basis: string; + let confidence: '高'|'中'|'低' = '高'; + + if (isPure) { + primary = SHI_SHEN_TO_GE[benqiSS]; + basis = `月支${monthZhi}本气${benqi}(${benqiSS}) — 纯气月支直接立格`; + } else { + // 看月令藏干中是否有透出 + const touSS = tougan + .map(g => ({gan: g, ss: getShiShen(dm, g)})) + .filter(x => x.ss !== '比肩' && x.ss !== '劫财'); // 比劫一般不优先以透立格 + if (touSS.length > 0) { + // 优先取本气透出的;若无,取中气/余气透出的 + const benqiTou = touSS.find(x => x.gan === benqi); + if (benqiTou) { + primary = SHI_SHEN_TO_GE[benqiTou.ss]; + basis = `月支${monthZhi}本气${benqi}透干 (${benqiTou.ss})`; + } else { + const first = touSS[0]; + primary = SHI_SHEN_TO_GE[first.ss]; + basis = `月支${monthZhi}藏干${first.gan}透干 (${first.ss})`; + confidence = '中'; + notes.push(`月支本气${benqi}未透,取藏干${first.gan}立格(${first.ss}格)`); + } + } else { + // 无非比劫透出 — 以本气立格 + primary = SHI_SHEN_TO_GE[benqiSS]; + basis = `月支${monthZhi}本气${benqi}(${benqiSS}) — 本气未透,以本气论格`; + if (benqiSS !== '比肩' && benqiSS !== '劫财') confidence = '中'; + } + } + + // 比肩/劫财: 默认按现代命名, 同时按传统派看日干在月支的长生位补 notes + if (benqiSS === '比肩') { + primary = '比肩格'; + basis = `月支本气${benqi}=日主同行(比肩) — 比肩格`; + confidence = '高'; + notes.length = 0; + const cs = getChangSheng(dm, monthZhi); + if (cs === '临官') { + notes.push(`日干${dm}在月支${monthZhi}为临官 — 传统称"建禄格"`); + } else { + notes.push(`日干${dm}在月支${monthZhi}为${cs}(非临官) — 传统子平派不立建禄, 现代按比肩格论`); + } + } else if (benqiSS === '劫财') { + const yy = GAN_YINYANG[dm]; + notes.length = 0; + primary = '劫财格'; + basis = `月支本气${benqi}=日主劫财 — 劫财格`; + confidence = '高'; + const cs = getChangSheng(dm, monthZhi); + if (cs === '帝旺') { + const trad = yy === '阳' ? '羊刃格' : '月刃格(阴干月刃有争议)'; + notes.push(`日干${dm}在月支${monthZhi}为帝旺 — 传统称"${trad}"`); + } else { + notes.push(`日干${dm}在月支${monthZhi}为${cs}(非帝旺) — 传统不立月刃, 现代按劫财格论`); + } + } + + return {primary, basis, 透干: tougan, confidence, notes}; +} diff --git a/calculator/bazi-enrich/tables.ts b/calculator/bazi-enrich/tables.ts new file mode 100644 index 0000000..5f827cd --- /dev/null +++ b/calculator/bazi-enrich/tables.ts @@ -0,0 +1,184 @@ +// 八字基础查表 — 所有五行/十神/长生/调候底层数据 + +export type Tiangan = '甲'|'乙'|'丙'|'丁'|'戊'|'己'|'庚'|'辛'|'壬'|'癸'; +export type Dizhi = '子'|'丑'|'寅'|'卯'|'辰'|'巳'|'午'|'未'|'申'|'酉'|'戌'|'亥'; +export type WuXing = '木'|'火'|'土'|'金'|'水'; +export type YinYang = '阳'|'阴'; +export type ShiShen = '比肩'|'劫财'|'食神'|'伤官'|'偏财'|'正财'|'七杀'|'正官'|'偏印'|'正印'; + +export const TIANGAN: Tiangan[] = ['甲','乙','丙','丁','戊','己','庚','辛','壬','癸']; +export const DIZHI: Dizhi[] = ['子','丑','寅','卯','辰','巳','午','未','申','酉','戌','亥']; + +export const GAN_WUXING: Record = { + 甲:'木',乙:'木',丙:'火',丁:'火',戊:'土',己:'土',庚:'金',辛:'金',壬:'水',癸:'水' +}; + +export const GAN_YINYANG: Record = { + 甲:'阳',乙:'阴',丙:'阳',丁:'阴',戊:'阳',己:'阴',庚:'阳',辛:'阴',壬:'阳',癸:'阴' +}; + +export const ZHI_WUXING: Record = { + 子:'水',丑:'土',寅:'木',卯:'木',辰:'土',巳:'火',午:'火',未:'土',申:'金',酉:'金',戌:'土',亥:'水' +}; + +// 地支藏干 — 本气、中气、余气 +// [{gan, role}] 顺序:本气、中气、余气 +export const ZHI_CANG_GAN: Record> = { + 子: [{gan:'癸',role:'本气'}], + 丑: [{gan:'己',role:'本气'},{gan:'癸',role:'中气'},{gan:'辛',role:'余气'}], + 寅: [{gan:'甲',role:'本气'},{gan:'丙',role:'中气'},{gan:'戊',role:'余气'}], + 卯: [{gan:'乙',role:'本气'}], + 辰: [{gan:'戊',role:'本气'},{gan:'乙',role:'中气'},{gan:'癸',role:'余气'}], + 巳: [{gan:'丙',role:'本气'},{gan:'庚',role:'中气'},{gan:'戊',role:'余气'}], + 午: [{gan:'丁',role:'本气'},{gan:'己',role:'中气'}], + 未: [{gan:'己',role:'本气'},{gan:'丁',role:'中气'},{gan:'乙',role:'余气'}], + 申: [{gan:'庚',role:'本气'},{gan:'壬',role:'中气'},{gan:'戊',role:'余气'}], + 酉: [{gan:'辛',role:'本气'}], + 戌: [{gan:'戊',role:'本气'},{gan:'辛',role:'中气'},{gan:'丁',role:'余气'}], + 亥: [{gan:'壬',role:'本气'},{gan:'甲',role:'中气'}] +}; + +// 五行生克 +export function shengKe(a: WuXing, b: WuXing): '生'|'克'|'同'|'被生'|'被克' { + if (a === b) return '同'; + const sheng: Record = {木:'火',火:'土',土:'金',金:'水',水:'木'}; + const ke: Record = {木:'土',火:'金',土:'水',金:'木',水:'火'}; + if (sheng[a] === b) return '生'; + if (ke[a] === b) return '克'; + if (sheng[b] === a) return '被生'; + if (ke[b] === a) return '被克'; + return '同'; // unreachable +} + +// 十神 — 以日干为基准对其他天干 +export function getShiShen(dayMaster: Tiangan, target: Tiangan): ShiShen { + const dmWx = GAN_WUXING[dayMaster]; + const dmYy = GAN_YINYANG[dayMaster]; + const tWx = GAN_WUXING[target]; + const tYy = GAN_YINYANG[target]; + const sameYy = dmYy === tYy; + const rel = shengKe(dmWx, tWx); + switch (rel) { + case '同': return sameYy ? '比肩' : '劫财'; + case '生': return sameYy ? '食神' : '伤官'; // 日主生他, 同性食神 + case '克': return sameYy ? '偏财' : '正财'; // 日主克他 + case '被克': return sameYy ? '七杀' : '正官'; // 他克日主 + case '被生': return sameYy ? '偏印' : '正印'; // 他生日主 + } +} + +// 十二长生 — 阳干顺行、阴干逆行 +// 长生位起点 +const CHANG_SHENG_START: Record = { + 甲:'亥',丙:'寅',戊:'寅',庚:'巳',壬:'申', + 乙:'午',丁:'酉',己:'酉',辛:'子',癸:'卯' +}; +const CHANG_SHENG_ORDER = ['长生','沐浴','冠带','临官','帝旺','衰','病','死','墓','绝','胎','养'] as const; +export type ChangSheng = typeof CHANG_SHENG_ORDER[number]; + +export function getChangSheng(gan: Tiangan, zhi: Dizhi): ChangSheng { + const start = CHANG_SHENG_START[gan]; + const startIdx = DIZHI.indexOf(start); + const zhiIdx = DIZHI.indexOf(zhi); + const forward = GAN_YINYANG[gan] === '阳'; + let step; + if (forward) { + step = (zhiIdx - startIdx + 12) % 12; + } else { + step = (startIdx - zhiIdx + 12) % 12; + } + return CHANG_SHENG_ORDER[step]; +} + +// 调候用神 — 穷通宝鉴 120 格 (日干 × 月支) +// 每格 1-3 字, 主用神在前 +// 注: 这是子平派主流取用法, 不同流派有微调 +export const TIAO_HOU: Record> = { + // 甲木 + 甲: { + 子:['丁','庚','丙'], 丑:['丁','庚','丙'], 寅:['丙','癸'], + 卯:['庚','丙','丁','戊','己'], 辰:['庚','丁','壬'], 巳:['癸','丁','庚'], + 午:['癸','丁','庚'], 未:['癸','丁','庚'], 申:['庚','丁','壬'], + 酉:['庚','丙','丁'], 戌:['庚','甲','壬','癸'], 亥:['庚','丁','戊','丙'] + }, + // 乙木 + 乙: { + 子:['丙','戊'], 丑:['丙'], 寅:['丙','癸'], + 卯:['丙','癸'], 辰:['癸','丙','戊'], 巳:['癸'], + 午:['癸','丙'], 未:['癸','丙'], 申:['丙','癸','己'], + 酉:['癸','丁','丙'], 戌:['癸','辛'], 亥:['丙','戊'] + }, + // 丙火 + 丙: { + 子:['壬','戊','己'], 丑:['壬','甲'], 寅:['壬','庚'], + 卯:['壬','己'], 辰:['壬','甲'], 巳:['壬','庚','癸'], + 午:['壬','庚'], 未:['壬','庚'], 申:['壬','戊'], + 酉:['壬','癸'], 戌:['甲','壬'], 亥:['甲','戊','庚','壬'] + }, + // 丁火 + 丁: { + 子:['甲','庚'], 丑:['甲','庚'], 寅:['庚','壬'], + 卯:['庚','甲'], 辰:['甲','庚'], 巳:['甲','庚'], + 午:['壬','庚','癸'], 未:['甲','壬','庚'], 申:['甲','庚','丙','戊'], + 酉:['甲','庚','丙','戊'], 戌:['甲','庚','戊'], 亥:['甲','庚'] + }, + // 戊土 + 戊: { + 子:['丙','甲'], 丑:['丙','甲'], 寅:['丙','甲','癸'], + 卯:['丙','甲','癸'], 辰:['甲','丙','癸'], 巳:['甲','丙','癸'], + 午:['壬','甲','丙'], 未:['癸','丙','甲'], 申:['丙','癸','甲'], + 酉:['丙','癸'], 戌:['甲','丙','癸'], 亥:['甲','丙'] + }, + // 己土 + 己: { + 子:['丙','甲','戊'], 丑:['丙','甲','戊'], 寅:['丙','庚','甲'], + 卯:['甲','癸','丙'], 辰:['丙','癸','甲'], 巳:['癸','丙'], + 午:['癸','丙'], 未:['癸','丙'], 申:['丙','癸'], + 酉:['丙','癸'], 戌:['甲','丙','癸'], 亥:['丙','甲','戊'] + }, + // 庚金 + 庚: { + 子:['丁','甲','丙'], 丑:['丙','丁','甲'], 寅:['丙','甲','壬'], + 卯:['丁','甲','庚','丙'], 辰:['甲','丁','壬','癸'], 巳:['壬','戊','丙','丁'], + 午:['壬','癸'], 未:['丁','甲'], 申:['丁','甲'], + 酉:['丁','甲','丙'], 戌:['甲','壬'], 亥:['丁','丙'] + }, + // 辛金 + 辛: { + 子:['丙','戊','壬','甲'], 丑:['丙','壬','戊','己'], 寅:['己','壬','庚'], + 卯:['壬','甲'], 辰:['壬','甲'], 巳:['壬','甲','癸'], + 午:['壬','己','癸'], 未:['壬','庚','甲'], 申:['壬','甲','戊'], + 酉:['壬','甲'], 戌:['壬','甲'], 亥:['壬','丙'] + }, + // 壬水 + 壬: { + 子:['戊','丙'], 丑:['丙','丁','甲'], 寅:['庚','丙','戊'], + 卯:['戊','辛','庚'], 辰:['甲','庚'], 巳:['壬','辛','庚','癸'], + 午:['癸','庚','辛'], 未:['辛','甲'], 申:['戊','丁'], + 酉:['甲','庚'], 戌:['甲','丙'], 亥:['戊','丙','庚'] + }, + // 癸水 + 癸: { + 子:['丙','辛'], 丑:['丙','丁'], 寅:['辛','丙'], + 卯:['庚','辛'], 辰:['丙','辛','甲'], 巳:['辛'], + 午:['庚','辛','壬','癸'], 未:['庚','辛','壬','癸'], 申:['丁'], + 酉:['辛','丙'], 戌:['辛','甲','壬','癸'], 亥:['庚','辛','戊','丁'] + } +}; + +// 月令旺相休囚死 — 五行随月令的状态 +export function getWuXingMonthStatus(monthZhi: Dizhi): Record { + const monthWx = ZHI_WUXING[monthZhi]; + // 当令=旺; 当令所生=相; 生当令者=休; 克当令者=囚; 当令所克=死 + const result: Record = {} as any; + const allWx: WuXing[] = ['木','火','土','金','水']; + for (const wx of allWx) { + const rel = shengKe(monthWx, wx); + if (rel === '同') result[wx] = '旺'; + else if (rel === '生') result[wx] = '相'; + else if (rel === '被生') result[wx] = '休'; + else if (rel === '被克') result[wx] = '囚'; + else if (rel === '克') result[wx] = '死'; + } + return result; +} diff --git a/calculator/bazi-enrich/tiao-hou.ts b/calculator/bazi-enrich/tiao-hou.ts new file mode 100644 index 0000000..a872fac --- /dev/null +++ b/calculator/bazi-enrich/tiao-hou.ts @@ -0,0 +1,7 @@ +// 调候用神 — 穷通宝鉴查表 wrapper + +import { Tiangan, Dizhi, TIAO_HOU } from './tables'; + +export function getTiaoHou(dayMaster: Tiangan, monthZhi: Dizhi): string[] { + return TIAO_HOU[dayMaster][monthZhi]; +} diff --git a/calculator/bazi-enrich/wang-shuai.ts b/calculator/bazi-enrich/wang-shuai.ts new file mode 100644 index 0000000..bc5fe4a --- /dev/null +++ b/calculator/bazi-enrich/wang-shuai.ts @@ -0,0 +1,156 @@ +// 旺衰判定 — 得令(月令) + 长生修正 + 得地(余三支) + 得势(余三干) + +import { Tiangan, Dizhi, GAN_WUXING, ZHI_CANG_GAN, getShiShen, getChangSheng, ShiShen } from './tables'; + +type Pillar = '年'|'月'|'日'|'时'; + +export type WangShuaiVerdict = + | '极旺(可能从强)' + | '偏旺' + | '中和' + | '偏弱' + | '极弱(可能从弱)'; + +export type WangShuaiResult = { + score: number; + verdict: WangShuaiVerdict; + confidence: '高'|'中'|'低'; + breakdown: { + 得令: number; + 长生: number; + 得地: number; + 得势: number; + details: string[]; + }; +}; + +// 月令(月支本气)对日干的关系打分 +function scoreMonthOrder(dayMaster: Tiangan, monthZhi: Dizhi): {score: number, desc: string} { + const cangGan = ZHI_CANG_GAN[monthZhi]; + const benqi = cangGan[0].gan; + const ss = getShiShen(dayMaster, benqi); + // 余气是否含同行 / 印 + const yuqi = cangGan.slice(1); + let extra = 0; + let extraDesc: string[] = []; + for (const cg of yuqi) { + const ssY = getShiShen(dayMaster, cg.gan); + if (ssY === '比肩' || ssY === '劫财') { extra += 1; extraDesc.push(`月余气${cg.gan}比劫+1`); } + else if (ssY === '正印' || ssY === '偏印') { extra += 0.7; extraDesc.push(`月余气${cg.gan}印+0.7`); } + } + let base = 0; + let baseDesc = ''; + switch (ss) { + case '比肩': case '劫财': + base = 5; baseDesc = `月支本气${benqi}=${ss}(建禄/月刃) +5`; break; + case '正印': case '偏印': + base = 3; baseDesc = `月支本气${benqi}=${ss} +3`; break; + case '食神': case '伤官': + base = -3; baseDesc = `月支本气${benqi}=${ss} -3`; break; + case '正官': case '七杀': + base = -4; baseDesc = `月支本气${benqi}=${ss} -4`; break; + case '偏财': case '正财': + base = -5; baseDesc = `月支本气${benqi}=${ss} -5`; break; + } + return { + score: base + extra, + desc: [baseDesc, ...extraDesc].join('; ') + }; +} + +// 日干在月支的长生位修正 +function scoreChangSheng(dayMaster: Tiangan, monthZhi: Dizhi): {score: number, desc: string} { + const cs = getChangSheng(dayMaster, monthZhi); + let s = 0; + if (cs === '长生' || cs === '帝旺') s = 2; + else if (cs === '临官' || cs === '冠带') s = 1; + else if (cs === '沐浴' || cs === '衰') s = 0; + else if (cs === '病' || cs === '死') s = -1; + else s = -3; // 墓/绝/胎/养 + return {score: s, desc: `日主${dayMaster}在月支${monthZhi}为${cs} (${s >= 0 ? '+' : ''}${s})`}; +} + +// 得地: 年/日/时三支查同行/印的根 +function scoreGround(dayMaster: Tiangan, siZhu: Record): {score: number, desc: string[]} { + const desc: string[] = []; + let total = 0; + for (const p of ['年','日','时'] as Pillar[]) { + const zhi = siZhu[p].zhi; + const cangGan = ZHI_CANG_GAN[zhi]; + for (const cg of cangGan) { + const ss = getShiShen(dayMaster, cg.gan); + if (ss === '比肩' || ss === '劫财') { + const v = cg.role === '本气' ? 2 : cg.role === '中气' ? 0.8 : 0.5; + total += v; + desc.push(`${p}支${zhi}藏${cg.gan}(${ss}, ${cg.role}) +${v}`); + } else if (ss === '正印' || ss === '偏印') { + const v = cg.role === '本气' ? 1 : cg.role === '中气' ? 0.5 : 0.3; + total += v; + desc.push(`${p}支${zhi}藏${cg.gan}(${ss}, ${cg.role}) +${v}`); + } + } + } + return {score: total, desc}; +} + +// 得势: 年/月/时干 +function scoreStems(dayMaster: Tiangan, siZhu: Record): {score: number, desc: string[]} { + const desc: string[] = []; + let total = 0; + for (const p of ['年','月','时'] as Pillar[]) { + const gan = siZhu[p].gan; + const ss = getShiShen(dayMaster, gan); + let v = 0; + if (ss === '比肩' || ss === '劫财') v = 1; + else if (ss === '正印' || ss === '偏印') v = 0.7; + else if (ss === '食神' || ss === '伤官') v = -0.5; + else if (ss === '正财' || ss === '偏财') v = -1; + else if (ss === '正官' || ss === '七杀') v = -1.5; + total += v; + desc.push(`${p}干${gan}(${ss}) ${v >= 0 ? '+' : ''}${v}`); + } + return {score: total, desc}; +} + +export function judgeWangShuai(siZhu: Record): WangShuaiResult { + const dm = siZhu.日.gan; + const monthZhi = siZhu.月.zhi; + const month = scoreMonthOrder(dm, monthZhi); + const cs = scoreChangSheng(dm, monthZhi); + const ground = scoreGround(dm, siZhu); + const stems = scoreStems(dm, siZhu); + const score = +(month.score + cs.score + ground.score + stems.score).toFixed(2); + + // 阈值不对称: 月令对负向影响更直接,偏弱区门槛略宽 + let verdict: WangShuaiVerdict; + if (score >= 8) verdict = '极旺(可能从强)'; + else if (score >= 3) verdict = '偏旺'; + else if (score > -2.5) verdict = '中和'; + else if (score > -8) verdict = '偏弱'; + else verdict = '极弱(可能从弱)'; + + // 置信度: 越靠近阈值越低 + const dist = Math.min( + Math.abs(score - 3), + Math.abs(score - (-2.5)), + Math.abs(score - 8), + Math.abs(score - (-8)) + ); + let confidence: '高'|'中'|'低'; + if (dist > 2) confidence = '高'; + else if (dist > 0.8) confidence = '中'; + else confidence = '低'; + + return { + score, + verdict, + confidence, + breakdown: { + 得令: +month.score.toFixed(2), + 长生: cs.score, + 得地: +ground.score.toFixed(2), + 得势: +stems.score.toFixed(2), + details: [month.desc, cs.desc, ...ground.desc, ...stems.desc] + } + }; +} diff --git a/calculator/bazi-enrich/wu-xing.ts b/calculator/bazi-enrich/wu-xing.ts new file mode 100644 index 0000000..152faaf --- /dev/null +++ b/calculator/bazi-enrich/wu-xing.ts @@ -0,0 +1,62 @@ +// 五行统计 + 旺相休囚死 + +import { Tiangan, Dizhi, WuXing, GAN_WUXING, ZHI_WUXING, ZHI_CANG_GAN, getWuXingMonthStatus, getShiShen, ShiShen } from './tables'; + +type Pillar = '年'|'月'|'日'|'时'; + +export type WuXingCount = { + // 不算藏干 (只数天干+地支本气? — 按提示词"不算藏干"理解为干支字面五行) + surface: Record; + // 算藏干 (本气1分,中气0.5,余气0.3) + withCangGan: Record; + // 哪些五行缺失 (surface 计法) + missing: WuXing[]; + // 最旺五行 (surface 计法) + strongest: WuXing[]; + // 转十神: 日干视角下五行对应的十神类别 + shiShenGroups: Record; +}; + +export function countWuXing( + siZhu: Record, + dayMaster: Tiangan +): WuXingCount { + const allWx: WuXing[] = ['木','火','土','金','水']; + const surface: Record = {木:0,火:0,土:0,金:0,水:0}; + const withCangGan: Record = {木:0,火:0,土:0,金:0,水:0}; + const pillars: Pillar[] = ['年','月','日','时']; + for (const p of pillars) { + const {gan, zhi} = siZhu[p]; + surface[GAN_WUXING[gan]] += 1; + surface[ZHI_WUXING[zhi]] += 1; + withCangGan[GAN_WUXING[gan]] += 1; + for (const cg of ZHI_CANG_GAN[zhi]) { + const weight = cg.role === '本气' ? 1 : cg.role === '中气' ? 0.5 : 0.3; + withCangGan[GAN_WUXING[cg.gan]] += weight; + } + } + const missing = allWx.filter(w => surface[w] === 0); + const maxCount = Math.max(...allWx.map(w => surface[w])); + const strongest = allWx.filter(w => surface[w] === maxCount); + + // 每个五行映射到日干视角的十神类 + const shiShenGroups: Record = {} as any; + const repGanByWx: Record = {木:'甲',火:'丙',土:'戊',金:'庚',水:'壬'}; + for (const wx of allWx) { + const ss = getShiShen(dayMaster, repGanByWx[wx]); + // 归类: 比劫/食伤/财/官杀/印 + let group: string; + if (ss === '比肩' || ss === '劫财') group = '比劫'; + else if (ss === '食神' || ss === '伤官') group = '食伤'; + else if (ss === '偏财' || ss === '正财') group = '财'; + else if (ss === '七杀' || ss === '正官') group = '官杀'; + else group = '印'; + shiShenGroups[wx] = {十神类: group, 实例数: surface[wx]}; + } + + return {surface, withCangGan, missing, strongest, shiShenGroups}; +} + +export function wuXingMonthStatus(monthZhi: Dizhi) { + return getWuXingMonthStatus(monthZhi); +} diff --git a/calculator/bazi-enrich/zhi-relations.ts b/calculator/bazi-enrich/zhi-relations.ts new file mode 100644 index 0000000..34ca1c8 --- /dev/null +++ b/calculator/bazi-enrich/zhi-relations.ts @@ -0,0 +1,176 @@ +// 地支关系检测 — 刑冲合害、三合三会、暗合、拱合拱会 + +import { Dizhi, DIZHI, ZHI_CANG_GAN, Tiangan } from './tables'; + +export type ZhiRelation = { + type: '六冲'|'六合'|'三合'|'三会'|'相刑'|'自刑'|'六害'|'暗合'|'拱合'|'拱会'; + zhi: Dizhi[]; // 参与的地支 + pillars: string[]; // 参与的柱名(年/月/日/时) + detail?: string; // 备注,如拱合的目标支 +}; + +// 六冲 +const LIU_CHONG: [Dizhi, Dizhi][] = [ + ['子','午'],['丑','未'],['寅','申'],['卯','酉'],['辰','戌'],['巳','亥'] +]; + +// 六合 +const LIU_HE: [Dizhi, Dizhi][] = [ + ['子','丑'],['寅','亥'],['卯','戌'],['辰','酉'],['巳','申'],['午','未'] +]; + +// 三合局 (申子辰水 / 亥卯未木 / 寅午戌火 / 巳酉丑金) +const SAN_HE: Array<{zhi: [Dizhi, Dizhi, Dizhi], wuxing: string}> = [ + {zhi:['申','子','辰'], wuxing:'水'}, + {zhi:['亥','卯','未'], wuxing:'木'}, + {zhi:['寅','午','戌'], wuxing:'火'}, + {zhi:['巳','酉','丑'], wuxing:'金'} +]; + +// 三会方 (寅卯辰东方木 / 巳午未南方火 / 申酉戌西方金 / 亥子丑北方水) +const SAN_HUI: Array<{zhi: [Dizhi, Dizhi, Dizhi], wuxing: string}> = [ + {zhi:['寅','卯','辰'], wuxing:'木'}, + {zhi:['巳','午','未'], wuxing:'火'}, + {zhi:['申','酉','戌'], wuxing:'金'}, + {zhi:['亥','子','丑'], wuxing:'水'} +]; + +// 相刑 (无礼之刑 子卯; 恃势之刑 寅巳申; 无恩之刑 丑戌未) +const XIANG_XING: Array<{zhi: Dizhi[], name: string}> = [ + {zhi:['子','卯'], name:'无礼之刑'}, + {zhi:['寅','巳','申'], name:'恃势之刑'}, + {zhi:['丑','戌','未'], name:'无恩之刑'} +]; +const ZI_XING: Dizhi[] = ['辰','午','酉','亥']; // 自刑 + +// 六害 +const LIU_HAI: [Dizhi, Dizhi][] = [ + ['子','未'],['丑','午'],['寅','巳'],['卯','辰'],['申','亥'],['酉','戌'] +]; + +// 暗合 — 地支藏干之间相合 +// 天干五合: 甲己 乙庚 丙辛 丁壬 戊癸 +const GAN_HE: Record = { + 甲:'己',己:'甲', 乙:'庚',庚:'乙', 丙:'辛',辛:'丙', 丁:'壬',壬:'丁', 戊:'癸',癸:'戊' +}; + +type Pillar = '年'|'月'|'日'|'时'; + +export function detectZhiRelations(zhis: Record): ZhiRelation[] { + const out: ZhiRelation[] = []; + const pillars: Pillar[] = ['年','月','日','时']; + const list = pillars.map(p => ({pillar: p, zhi: zhis[p]})); + + // 两两组合 + const pairs: Array<[typeof list[0], typeof list[0]]> = []; + for (let i = 0; i < list.length; i++) { + for (let j = i+1; j < list.length; j++) { + pairs.push([list[i], list[j]]); + } + } + + // 六冲 + for (const [a, b] of pairs) { + for (const [x, y] of LIU_CHONG) { + if ((a.zhi === x && b.zhi === y) || (a.zhi === y && b.zhi === x)) { + out.push({type:'六冲', zhi:[a.zhi, b.zhi], pillars:[a.pillar, b.pillar]}); + } + } + } + + // 六合 + for (const [a, b] of pairs) { + for (const [x, y] of LIU_HE) { + if ((a.zhi === x && b.zhi === y) || (a.zhi === y && b.zhi === x)) { + out.push({type:'六合', zhi:[a.zhi, b.zhi], pillars:[a.pillar, b.pillar]}); + } + } + } + + // 六害 + for (const [a, b] of pairs) { + for (const [x, y] of LIU_HAI) { + if ((a.zhi === x && b.zhi === y) || (a.zhi === y && b.zhi === x)) { + out.push({type:'六害', zhi:[a.zhi, b.zhi], pillars:[a.pillar, b.pillar]}); + } + } + } + + // 相刑 + for (const xing of XIANG_XING) { + const matches = list.filter(p => xing.zhi.includes(p.zhi)); + if (xing.zhi.length === 2) { + // 子卯刑:要两个都在 + const distinct = new Set(matches.map(m => m.zhi)); + if (distinct.size === 2) { + out.push({type:'相刑', zhi:[...distinct] as Dizhi[], pillars: matches.map(m=>m.pillar), detail: xing.name}); + } + } else { + // 三刑:两个就构成半刑(实际三刑要全) + const distinct = new Set(matches.map(m => m.zhi)); + if (distinct.size >= 2) { + out.push({type:'相刑', zhi:[...distinct] as Dizhi[], pillars: matches.map(m=>m.pillar), detail: xing.name + (distinct.size === 3 ? '(全)' : '(半)')}); + } + } + } + + // 自刑 + for (const zx of ZI_XING) { + const matches = list.filter(p => p.zhi === zx); + if (matches.length >= 2) { + out.push({type:'自刑', zhi:[zx, zx], pillars: matches.map(m=>m.pillar)}); + } + } + + // 三合 / 三会 / 半合 / 拱合 / 拱会 + for (const sh of SAN_HE) { + const present = list.filter(p => sh.zhi.includes(p.zhi)); + const distinctZhi = [...new Set(present.map(p => p.zhi))]; + if (distinctZhi.length === 3) { + out.push({type:'三合', zhi: distinctZhi as Dizhi[], pillars: present.map(p=>p.pillar), detail: `三合${sh.wuxing}局`}); + } else if (distinctZhi.length === 2) { + // 缺一支 → 拱合 + const missing = sh.zhi.find(z => !distinctZhi.includes(z))!; + out.push({type:'拱合', zhi: distinctZhi as Dizhi[], pillars: present.map(p=>p.pillar), detail: `拱合${missing}(${sh.wuxing}局)`}); + } + } + for (const sh of SAN_HUI) { + const present = list.filter(p => sh.zhi.includes(p.zhi)); + const distinctZhi = [...new Set(present.map(p => p.zhi))]; + if (distinctZhi.length === 3) { + out.push({type:'三会', zhi: distinctZhi as Dizhi[], pillars: present.map(p=>p.pillar), detail: `三会${sh.wuxing}方`}); + } else if (distinctZhi.length === 2) { + const missing = sh.zhi.find(z => !distinctZhi.includes(z))!; + out.push({type:'拱会', zhi: distinctZhi as Dizhi[], pillars: present.map(p=>p.pillar), detail: `拱会${missing}(${sh.wuxing}方)`}); + } + } + + // 暗合 — 地支藏干相合 + // 规则: 仅在该地支对没有其他显式关系(六冲/六合/六害/三合/三会/拱合/拱会/相刑)时才报暗合 + const explicitTypes: ZhiRelation['type'][] = ['六冲','六合','六害','三合','三会','拱合','拱会','相刑','自刑']; + function hasExplicit(za: Dizhi, zb: Dizhi): boolean { + return out.some(r => + explicitTypes.includes(r.type) && + r.zhi.includes(za) && r.zhi.includes(zb) + ); + } + for (const [a, b] of pairs) { + if (a.zhi === b.zhi) continue; + if (hasExplicit(a.zhi, b.zhi)) continue; + const aGans = ZHI_CANG_GAN[a.zhi].map(c => c.gan); + const bGans = ZHI_CANG_GAN[b.zhi].map(c => c.gan); + const hits: string[] = []; + for (const ag of aGans) { + for (const bg of bGans) { + if (GAN_HE[ag] === bg) { + hits.push(`${ag}${bg}合`); + } + } + } + if (hits.length > 0) { + out.push({type:'暗合', zhi:[a.zhi, b.zhi], pillars:[a.pillar, b.pillar], detail: hits.join('、')}); + } + } + + return out; +} diff --git a/calculator/dist/bazi-enrich/enrich.js b/calculator/dist/bazi-enrich/enrich.js new file mode 100644 index 0000000..68e989c --- /dev/null +++ b/calculator/dist/bazi-enrich/enrich.js @@ -0,0 +1,35 @@ +"use strict"; +// 八字增强分析主入口 — 给定四柱, 输出格局/旺衰/刑冲合害/调候/自坐 等所有 Yiqi 未算的字段 +Object.defineProperty(exports, "__esModule", { value: true }); +exports.enrichBazi = enrichBazi; +const tables_1 = require("./tables"); +const zhi_relations_1 = require("./zhi-relations"); +const gan_relations_1 = require("./gan-relations"); +const wu_xing_1 = require("./wu-xing"); +const wang_shuai_1 = require("./wang-shuai"); +const ge_ju_1 = require("./ge-ju"); +const tiao_hou_1 = require("./tiao-hou"); +function enrichBazi(siZhu) { + const dm = siZhu.日.gan; + const monthZhi = siZhu.月.zhi; + // 自坐 — 每柱干在自身支的长生位 + const ziZuo = {}; + for (const p of ['年', '月', '日', '时']) { + ziZuo[p] = (0, tables_1.getChangSheng)(siZhu[p].gan, siZhu[p].zhi); + } + return { + 自坐: ziZuo, + 五行旺相: (0, wu_xing_1.wuXingMonthStatus)(monthZhi), + 五行统计: (0, wu_xing_1.countWuXing)(siZhu, dm), + 调候用神: (0, tiao_hou_1.getTiaoHou)(dm, monthZhi), + 格局: (0, ge_ju_1.judgeGeJu)(siZhu), + 旺衰: (0, wang_shuai_1.judgeWangShuai)(siZhu), + 天干关系: (0, gan_relations_1.detectGanRelations)({ + 年: siZhu.年.gan, 月: siZhu.月.gan, 日: siZhu.日.gan, 时: siZhu.时.gan + }), + 地支关系: (0, zhi_relations_1.detectZhiRelations)({ + 年: siZhu.年.zhi, 月: siZhu.月.zhi, 日: siZhu.日.zhi, 时: siZhu.时.zhi + }), + 整柱: (0, gan_relations_1.judgePillars)(siZhu) + }; +} diff --git a/calculator/dist/bazi-enrich/gan-relations.js b/calculator/dist/bazi-enrich/gan-relations.js new file mode 100644 index 0000000..07339c1 --- /dev/null +++ b/calculator/dist/bazi-enrich/gan-relations.js @@ -0,0 +1,52 @@ +"use strict"; +// 天干关系 + 整柱盖头/截脚 +Object.defineProperty(exports, "__esModule", { value: true }); +exports.detectGanRelations = detectGanRelations; +exports.judgePillars = judgePillars; +const tables_1 = require("./tables"); +const GAN_HE_PAIRS = [ + ['甲', '己', '土'], ['乙', '庚', '金'], ['丙', '辛', '水'], ['丁', '壬', '木'], ['戊', '癸', '火'] +]; +function detectGanRelations(gans) { + const out = []; + const pillars = ['年', '月', '日', '时']; + const list = pillars.map(p => ({ pillar: p, gan: gans[p] })); + for (let i = 0; i < list.length; i++) { + for (let j = i + 1; j < list.length; j++) { + const a = list[i], b = list[j]; + // 五合 + const he = GAN_HE_PAIRS.find(([x, y]) => (a.gan === x && b.gan === y) || (a.gan === y && b.gan === x)); + if (he) { + out.push({ type: '天干合', gans: [a.gan, b.gan], pillars: [a.pillar, b.pillar] }); + continue; + } + // 相克 (剔除合化情形) + const rel = (0, tables_1.shengKe)(tables_1.GAN_WUXING[a.gan], tables_1.GAN_WUXING[b.gan]); + if (rel === '克' || rel === '被克') { + out.push({ type: '天干相克', gans: [a.gan, b.gan], pillars: [a.pillar, b.pillar] }); + } + } + } + return out; +} +function judgePillars(siZhu) { + const pillars = ['年', '月', '日', '时']; + return pillars.map(p => { + const { gan, zhi } = siZhu[p]; + const ganWx = tables_1.GAN_WUXING[gan]; + const zhiWx = tables_1.ZHI_WUXING[zhi]; + const rel = (0, tables_1.shengKe)(ganWx, zhiWx); + let verdict; + if (rel === '克') + verdict = '盖头'; + else if (rel === '被克') + verdict = '截脚'; + else if (rel === '生') + verdict = '天干生地支'; + else if (rel === '被生') + verdict = '地支生天干'; + else + verdict = '天地同气'; + return { pillar: p, gan, zhi, verdict }; + }); +} diff --git a/calculator/dist/bazi-enrich/ge-ju.js b/calculator/dist/bazi-enrich/ge-ju.js new file mode 100644 index 0000000..0272f29 --- /dev/null +++ b/calculator/dist/bazi-enrich/ge-ju.js @@ -0,0 +1,99 @@ +"use strict"; +// 格局判定 — 普通八格 + 建禄/月刃 + 特殊格局提示 +Object.defineProperty(exports, "__esModule", { value: true }); +exports.judgeGeJu = judgeGeJu; +const tables_1 = require("./tables"); +const SHI_SHEN_TO_GE = { + 比肩: '比肩格', + 劫财: '劫财格', + 食神: '食神格', + 伤官: '伤官格', + 偏财: '偏财格', + 正财: '正财格', + 七杀: '七杀格', + 正官: '正官格', + 偏印: '偏印格', + 正印: '正印格' +}; +function judgeGeJu(siZhu) { + const dm = siZhu.日.gan; + const monthZhi = siZhu.月.zhi; + const cangGan = tables_1.ZHI_CANG_GAN[monthZhi]; + const benqi = cangGan[0].gan; + const benqiSS = (0, tables_1.getShiShen)(dm, benqi); + const otherGans = [siZhu.年.gan, siZhu.月.gan, siZhu.时.gan]; + const tougan = []; + for (const cg of cangGan) { + if (otherGans.includes(cg.gan)) + tougan.push(cg.gan); + } + const notes = []; + // 1. 月支为子/午/卯/酉 — 纯气月支, 直接立格 + // 2. 月支为四生(寅申巳亥) / 四库(辰戌丑未) — 先看透干 + const isPure = ['子', '午', '卯', '酉'].includes(monthZhi); + let primary; + let basis; + let confidence = '高'; + if (isPure) { + primary = SHI_SHEN_TO_GE[benqiSS]; + basis = `月支${monthZhi}本气${benqi}(${benqiSS}) — 纯气月支直接立格`; + } + else { + // 看月令藏干中是否有透出 + const touSS = tougan + .map(g => ({ gan: g, ss: (0, tables_1.getShiShen)(dm, g) })) + .filter(x => x.ss !== '比肩' && x.ss !== '劫财'); // 比劫一般不优先以透立格 + if (touSS.length > 0) { + // 优先取本气透出的;若无,取中气/余气透出的 + const benqiTou = touSS.find(x => x.gan === benqi); + if (benqiTou) { + primary = SHI_SHEN_TO_GE[benqiTou.ss]; + basis = `月支${monthZhi}本气${benqi}透干 (${benqiTou.ss})`; + } + else { + const first = touSS[0]; + primary = SHI_SHEN_TO_GE[first.ss]; + basis = `月支${monthZhi}藏干${first.gan}透干 (${first.ss})`; + confidence = '中'; + notes.push(`月支本气${benqi}未透,取藏干${first.gan}立格(${first.ss}格)`); + } + } + else { + // 无非比劫透出 — 以本气立格 + primary = SHI_SHEN_TO_GE[benqiSS]; + basis = `月支${monthZhi}本气${benqi}(${benqiSS}) — 本气未透,以本气论格`; + if (benqiSS !== '比肩' && benqiSS !== '劫财') + confidence = '中'; + } + } + // 比肩/劫财: 默认按现代命名, 同时按传统派看日干在月支的长生位补 notes + if (benqiSS === '比肩') { + primary = '比肩格'; + basis = `月支本气${benqi}=日主同行(比肩) — 比肩格`; + confidence = '高'; + notes.length = 0; + const cs = (0, tables_1.getChangSheng)(dm, monthZhi); + if (cs === '临官') { + notes.push(`日干${dm}在月支${monthZhi}为临官 — 传统称"建禄格"`); + } + else { + notes.push(`日干${dm}在月支${monthZhi}为${cs}(非临官) — 传统子平派不立建禄, 现代按比肩格论`); + } + } + else if (benqiSS === '劫财') { + const yy = tables_1.GAN_YINYANG[dm]; + notes.length = 0; + primary = '劫财格'; + basis = `月支本气${benqi}=日主劫财 — 劫财格`; + confidence = '高'; + const cs = (0, tables_1.getChangSheng)(dm, monthZhi); + if (cs === '帝旺') { + const trad = yy === '阳' ? '羊刃格' : '月刃格(阴干月刃有争议)'; + notes.push(`日干${dm}在月支${monthZhi}为帝旺 — 传统称"${trad}"`); + } + else { + notes.push(`日干${dm}在月支${monthZhi}为${cs}(非帝旺) — 传统不立月刃, 现代按劫财格论`); + } + } + return { primary, basis, 透干: tougan, confidence, notes }; +} diff --git a/calculator/dist/bazi-enrich/tables.js b/calculator/dist/bazi-enrich/tables.js new file mode 100644 index 0000000..bb75651 --- /dev/null +++ b/calculator/dist/bazi-enrich/tables.js @@ -0,0 +1,184 @@ +"use strict"; +// 八字基础查表 — 所有五行/十神/长生/调候底层数据 +Object.defineProperty(exports, "__esModule", { value: true }); +exports.TIAO_HOU = exports.ZHI_CANG_GAN = exports.ZHI_WUXING = exports.GAN_YINYANG = exports.GAN_WUXING = exports.DIZHI = exports.TIANGAN = void 0; +exports.shengKe = shengKe; +exports.getShiShen = getShiShen; +exports.getChangSheng = getChangSheng; +exports.getWuXingMonthStatus = getWuXingMonthStatus; +exports.TIANGAN = ['甲', '乙', '丙', '丁', '戊', '己', '庚', '辛', '壬', '癸']; +exports.DIZHI = ['子', '丑', '寅', '卯', '辰', '巳', '午', '未', '申', '酉', '戌', '亥']; +exports.GAN_WUXING = { + 甲: '木', 乙: '木', 丙: '火', 丁: '火', 戊: '土', 己: '土', 庚: '金', 辛: '金', 壬: '水', 癸: '水' +}; +exports.GAN_YINYANG = { + 甲: '阳', 乙: '阴', 丙: '阳', 丁: '阴', 戊: '阳', 己: '阴', 庚: '阳', 辛: '阴', 壬: '阳', 癸: '阴' +}; +exports.ZHI_WUXING = { + 子: '水', 丑: '土', 寅: '木', 卯: '木', 辰: '土', 巳: '火', 午: '火', 未: '土', 申: '金', 酉: '金', 戌: '土', 亥: '水' +}; +// 地支藏干 — 本气、中气、余气 +// [{gan, role}] 顺序:本气、中气、余气 +exports.ZHI_CANG_GAN = { + 子: [{ gan: '癸', role: '本气' }], + 丑: [{ gan: '己', role: '本气' }, { gan: '癸', role: '中气' }, { gan: '辛', role: '余气' }], + 寅: [{ gan: '甲', role: '本气' }, { gan: '丙', role: '中气' }, { gan: '戊', role: '余气' }], + 卯: [{ gan: '乙', role: '本气' }], + 辰: [{ gan: '戊', role: '本气' }, { gan: '乙', role: '中气' }, { gan: '癸', role: '余气' }], + 巳: [{ gan: '丙', role: '本气' }, { gan: '庚', role: '中气' }, { gan: '戊', role: '余气' }], + 午: [{ gan: '丁', role: '本气' }, { gan: '己', role: '中气' }], + 未: [{ gan: '己', role: '本气' }, { gan: '丁', role: '中气' }, { gan: '乙', role: '余气' }], + 申: [{ gan: '庚', role: '本气' }, { gan: '壬', role: '中气' }, { gan: '戊', role: '余气' }], + 酉: [{ gan: '辛', role: '本气' }], + 戌: [{ gan: '戊', role: '本气' }, { gan: '辛', role: '中气' }, { gan: '丁', role: '余气' }], + 亥: [{ gan: '壬', role: '本气' }, { gan: '甲', role: '中气' }] +}; +// 五行生克 +function shengKe(a, b) { + if (a === b) + return '同'; + const sheng = { 木: '火', 火: '土', 土: '金', 金: '水', 水: '木' }; + const ke = { 木: '土', 火: '金', 土: '水', 金: '木', 水: '火' }; + if (sheng[a] === b) + return '生'; + if (ke[a] === b) + return '克'; + if (sheng[b] === a) + return '被生'; + if (ke[b] === a) + return '被克'; + return '同'; // unreachable +} +// 十神 — 以日干为基准对其他天干 +function getShiShen(dayMaster, target) { + const dmWx = exports.GAN_WUXING[dayMaster]; + const dmYy = exports.GAN_YINYANG[dayMaster]; + const tWx = exports.GAN_WUXING[target]; + const tYy = exports.GAN_YINYANG[target]; + const sameYy = dmYy === tYy; + const rel = shengKe(dmWx, tWx); + switch (rel) { + case '同': return sameYy ? '比肩' : '劫财'; + case '生': return sameYy ? '食神' : '伤官'; // 日主生他, 同性食神 + case '克': return sameYy ? '偏财' : '正财'; // 日主克他 + case '被克': return sameYy ? '七杀' : '正官'; // 他克日主 + case '被生': return sameYy ? '偏印' : '正印'; // 他生日主 + } +} +// 十二长生 — 阳干顺行、阴干逆行 +// 长生位起点 +const CHANG_SHENG_START = { + 甲: '亥', 丙: '寅', 戊: '寅', 庚: '巳', 壬: '申', + 乙: '午', 丁: '酉', 己: '酉', 辛: '子', 癸: '卯' +}; +const CHANG_SHENG_ORDER = ['长生', '沐浴', '冠带', '临官', '帝旺', '衰', '病', '死', '墓', '绝', '胎', '养']; +function getChangSheng(gan, zhi) { + const start = CHANG_SHENG_START[gan]; + const startIdx = exports.DIZHI.indexOf(start); + const zhiIdx = exports.DIZHI.indexOf(zhi); + const forward = exports.GAN_YINYANG[gan] === '阳'; + let step; + if (forward) { + step = (zhiIdx - startIdx + 12) % 12; + } + else { + step = (startIdx - zhiIdx + 12) % 12; + } + return CHANG_SHENG_ORDER[step]; +} +// 调候用神 — 穷通宝鉴 120 格 (日干 × 月支) +// 每格 1-3 字, 主用神在前 +// 注: 这是子平派主流取用法, 不同流派有微调 +exports.TIAO_HOU = { + // 甲木 + 甲: { + 子: ['丁', '庚', '丙'], 丑: ['丁', '庚', '丙'], 寅: ['丙', '癸'], + 卯: ['庚', '丙', '丁', '戊', '己'], 辰: ['庚', '丁', '壬'], 巳: ['癸', '丁', '庚'], + 午: ['癸', '丁', '庚'], 未: ['癸', '丁', '庚'], 申: ['庚', '丁', '壬'], + 酉: ['庚', '丙', '丁'], 戌: ['庚', '甲', '壬', '癸'], 亥: ['庚', '丁', '戊', '丙'] + }, + // 乙木 + 乙: { + 子: ['丙', '戊'], 丑: ['丙'], 寅: ['丙', '癸'], + 卯: ['丙', '癸'], 辰: ['癸', '丙', '戊'], 巳: ['癸'], + 午: ['癸', '丙'], 未: ['癸', '丙'], 申: ['丙', '癸', '己'], + 酉: ['癸', '丁', '丙'], 戌: ['癸', '辛'], 亥: ['丙', '戊'] + }, + // 丙火 + 丙: { + 子: ['壬', '戊', '己'], 丑: ['壬', '甲'], 寅: ['壬', '庚'], + 卯: ['壬', '己'], 辰: ['壬', '甲'], 巳: ['壬', '庚', '癸'], + 午: ['壬', '庚'], 未: ['壬', '庚'], 申: ['壬', '戊'], + 酉: ['壬', '癸'], 戌: ['甲', '壬'], 亥: ['甲', '戊', '庚', '壬'] + }, + // 丁火 + 丁: { + 子: ['甲', '庚'], 丑: ['甲', '庚'], 寅: ['庚', '壬'], + 卯: ['庚', '甲'], 辰: ['甲', '庚'], 巳: ['甲', '庚'], + 午: ['壬', '庚', '癸'], 未: ['甲', '壬', '庚'], 申: ['甲', '庚', '丙', '戊'], + 酉: ['甲', '庚', '丙', '戊'], 戌: ['甲', '庚', '戊'], 亥: ['甲', '庚'] + }, + // 戊土 + 戊: { + 子: ['丙', '甲'], 丑: ['丙', '甲'], 寅: ['丙', '甲', '癸'], + 卯: ['丙', '甲', '癸'], 辰: ['甲', '丙', '癸'], 巳: ['甲', '丙', '癸'], + 午: ['壬', '甲', '丙'], 未: ['癸', '丙', '甲'], 申: ['丙', '癸', '甲'], + 酉: ['丙', '癸'], 戌: ['甲', '丙', '癸'], 亥: ['甲', '丙'] + }, + // 己土 + 己: { + 子: ['丙', '甲', '戊'], 丑: ['丙', '甲', '戊'], 寅: ['丙', '庚', '甲'], + 卯: ['甲', '癸', '丙'], 辰: ['丙', '癸', '甲'], 巳: ['癸', '丙'], + 午: ['癸', '丙'], 未: ['癸', '丙'], 申: ['丙', '癸'], + 酉: ['丙', '癸'], 戌: ['甲', '丙', '癸'], 亥: ['丙', '甲', '戊'] + }, + // 庚金 + 庚: { + 子: ['丁', '甲', '丙'], 丑: ['丙', '丁', '甲'], 寅: ['丙', '甲', '壬'], + 卯: ['丁', '甲', '庚', '丙'], 辰: ['甲', '丁', '壬', '癸'], 巳: ['壬', '戊', '丙', '丁'], + 午: ['壬', '癸'], 未: ['丁', '甲'], 申: ['丁', '甲'], + 酉: ['丁', '甲', '丙'], 戌: ['甲', '壬'], 亥: ['丁', '丙'] + }, + // 辛金 + 辛: { + 子: ['丙', '戊', '壬', '甲'], 丑: ['丙', '壬', '戊', '己'], 寅: ['己', '壬', '庚'], + 卯: ['壬', '甲'], 辰: ['壬', '甲'], 巳: ['壬', '甲', '癸'], + 午: ['壬', '己', '癸'], 未: ['壬', '庚', '甲'], 申: ['壬', '甲', '戊'], + 酉: ['壬', '甲'], 戌: ['壬', '甲'], 亥: ['壬', '丙'] + }, + // 壬水 + 壬: { + 子: ['戊', '丙'], 丑: ['丙', '丁', '甲'], 寅: ['庚', '丙', '戊'], + 卯: ['戊', '辛', '庚'], 辰: ['甲', '庚'], 巳: ['壬', '辛', '庚', '癸'], + 午: ['癸', '庚', '辛'], 未: ['辛', '甲'], 申: ['戊', '丁'], + 酉: ['甲', '庚'], 戌: ['甲', '丙'], 亥: ['戊', '丙', '庚'] + }, + // 癸水 + 癸: { + 子: ['丙', '辛'], 丑: ['丙', '丁'], 寅: ['辛', '丙'], + 卯: ['庚', '辛'], 辰: ['丙', '辛', '甲'], 巳: ['辛'], + 午: ['庚', '辛', '壬', '癸'], 未: ['庚', '辛', '壬', '癸'], 申: ['丁'], + 酉: ['辛', '丙'], 戌: ['辛', '甲', '壬', '癸'], 亥: ['庚', '辛', '戊', '丁'] + } +}; +// 月令旺相休囚死 — 五行随月令的状态 +function getWuXingMonthStatus(monthZhi) { + const monthWx = exports.ZHI_WUXING[monthZhi]; + // 当令=旺; 当令所生=相; 生当令者=休; 克当令者=囚; 当令所克=死 + const result = {}; + const allWx = ['木', '火', '土', '金', '水']; + for (const wx of allWx) { + const rel = shengKe(monthWx, wx); + if (rel === '同') + result[wx] = '旺'; + else if (rel === '生') + result[wx] = '相'; + else if (rel === '被生') + result[wx] = '休'; + else if (rel === '被克') + result[wx] = '囚'; + else if (rel === '克') + result[wx] = '死'; + } + return result; +} diff --git a/calculator/dist/bazi-enrich/tiao-hou.js b/calculator/dist/bazi-enrich/tiao-hou.js new file mode 100644 index 0000000..0275bf5 --- /dev/null +++ b/calculator/dist/bazi-enrich/tiao-hou.js @@ -0,0 +1,8 @@ +"use strict"; +// 调候用神 — 穷通宝鉴查表 wrapper +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getTiaoHou = getTiaoHou; +const tables_1 = require("./tables"); +function getTiaoHou(dayMaster, monthZhi) { + return tables_1.TIAO_HOU[dayMaster][monthZhi]; +} diff --git a/calculator/dist/bazi-enrich/wang-shuai.js b/calculator/dist/bazi-enrich/wang-shuai.js new file mode 100644 index 0000000..1a4bc6b --- /dev/null +++ b/calculator/dist/bazi-enrich/wang-shuai.js @@ -0,0 +1,163 @@ +"use strict"; +// 旺衰判定 — 得令(月令) + 长生修正 + 得地(余三支) + 得势(余三干) +Object.defineProperty(exports, "__esModule", { value: true }); +exports.judgeWangShuai = judgeWangShuai; +const tables_1 = require("./tables"); +// 月令(月支本气)对日干的关系打分 +function scoreMonthOrder(dayMaster, monthZhi) { + const cangGan = tables_1.ZHI_CANG_GAN[monthZhi]; + const benqi = cangGan[0].gan; + const ss = (0, tables_1.getShiShen)(dayMaster, benqi); + // 余气是否含同行 / 印 + const yuqi = cangGan.slice(1); + let extra = 0; + let extraDesc = []; + for (const cg of yuqi) { + const ssY = (0, tables_1.getShiShen)(dayMaster, cg.gan); + if (ssY === '比肩' || ssY === '劫财') { + extra += 1; + extraDesc.push(`月余气${cg.gan}比劫+1`); + } + else if (ssY === '正印' || ssY === '偏印') { + extra += 0.7; + extraDesc.push(`月余气${cg.gan}印+0.7`); + } + } + let base = 0; + let baseDesc = ''; + switch (ss) { + case '比肩': + case '劫财': + base = 5; + baseDesc = `月支本气${benqi}=${ss}(建禄/月刃) +5`; + break; + case '正印': + case '偏印': + base = 3; + baseDesc = `月支本气${benqi}=${ss} +3`; + break; + case '食神': + case '伤官': + base = -3; + baseDesc = `月支本气${benqi}=${ss} -3`; + break; + case '正官': + case '七杀': + base = -4; + baseDesc = `月支本气${benqi}=${ss} -4`; + break; + case '偏财': + case '正财': + base = -5; + baseDesc = `月支本气${benqi}=${ss} -5`; + break; + } + return { + score: base + extra, + desc: [baseDesc, ...extraDesc].join('; ') + }; +} +// 日干在月支的长生位修正 +function scoreChangSheng(dayMaster, monthZhi) { + const cs = (0, tables_1.getChangSheng)(dayMaster, monthZhi); + let s = 0; + if (cs === '长生' || cs === '帝旺') + s = 2; + else if (cs === '临官' || cs === '冠带') + s = 1; + else if (cs === '沐浴' || cs === '衰') + s = 0; + else if (cs === '病' || cs === '死') + s = -1; + else + s = -3; // 墓/绝/胎/养 + return { score: s, desc: `日主${dayMaster}在月支${monthZhi}为${cs} (${s >= 0 ? '+' : ''}${s})` }; +} +// 得地: 年/日/时三支查同行/印的根 +function scoreGround(dayMaster, siZhu) { + const desc = []; + let total = 0; + for (const p of ['年', '日', '时']) { + const zhi = siZhu[p].zhi; + const cangGan = tables_1.ZHI_CANG_GAN[zhi]; + for (const cg of cangGan) { + const ss = (0, tables_1.getShiShen)(dayMaster, cg.gan); + if (ss === '比肩' || ss === '劫财') { + const v = cg.role === '本气' ? 2 : cg.role === '中气' ? 0.8 : 0.5; + total += v; + desc.push(`${p}支${zhi}藏${cg.gan}(${ss}, ${cg.role}) +${v}`); + } + else if (ss === '正印' || ss === '偏印') { + const v = cg.role === '本气' ? 1 : cg.role === '中气' ? 0.5 : 0.3; + total += v; + desc.push(`${p}支${zhi}藏${cg.gan}(${ss}, ${cg.role}) +${v}`); + } + } + } + return { score: total, desc }; +} +// 得势: 年/月/时干 +function scoreStems(dayMaster, siZhu) { + const desc = []; + let total = 0; + for (const p of ['年', '月', '时']) { + const gan = siZhu[p].gan; + const ss = (0, tables_1.getShiShen)(dayMaster, gan); + let v = 0; + if (ss === '比肩' || ss === '劫财') + v = 1; + else if (ss === '正印' || ss === '偏印') + v = 0.7; + else if (ss === '食神' || ss === '伤官') + v = -0.5; + else if (ss === '正财' || ss === '偏财') + v = -1; + else if (ss === '正官' || ss === '七杀') + v = -1.5; + total += v; + desc.push(`${p}干${gan}(${ss}) ${v >= 0 ? '+' : ''}${v}`); + } + return { score: total, desc }; +} +function judgeWangShuai(siZhu) { + const dm = siZhu.日.gan; + const monthZhi = siZhu.月.zhi; + const month = scoreMonthOrder(dm, monthZhi); + const cs = scoreChangSheng(dm, monthZhi); + const ground = scoreGround(dm, siZhu); + const stems = scoreStems(dm, siZhu); + const score = +(month.score + cs.score + ground.score + stems.score).toFixed(2); + // 阈值不对称: 月令对负向影响更直接,偏弱区门槛略宽 + let verdict; + if (score >= 8) + verdict = '极旺(可能从强)'; + else if (score >= 3) + verdict = '偏旺'; + else if (score > -2.5) + verdict = '中和'; + else if (score > -8) + verdict = '偏弱'; + else + verdict = '极弱(可能从弱)'; + // 置信度: 越靠近阈值越低 + const dist = Math.min(Math.abs(score - 3), Math.abs(score - (-2.5)), Math.abs(score - 8), Math.abs(score - (-8))); + let confidence; + if (dist > 2) + confidence = '高'; + else if (dist > 0.8) + confidence = '中'; + else + confidence = '低'; + return { + score, + verdict, + confidence, + breakdown: { + 得令: +month.score.toFixed(2), + 长生: cs.score, + 得地: +ground.score.toFixed(2), + 得势: +stems.score.toFixed(2), + details: [month.desc, cs.desc, ...ground.desc, ...stems.desc] + } + }; +} diff --git a/calculator/dist/bazi-enrich/wu-xing.js b/calculator/dist/bazi-enrich/wu-xing.js new file mode 100644 index 0000000..e1c6c22 --- /dev/null +++ b/calculator/dist/bazi-enrich/wu-xing.js @@ -0,0 +1,48 @@ +"use strict"; +// 五行统计 + 旺相休囚死 +Object.defineProperty(exports, "__esModule", { value: true }); +exports.countWuXing = countWuXing; +exports.wuXingMonthStatus = wuXingMonthStatus; +const tables_1 = require("./tables"); +function countWuXing(siZhu, dayMaster) { + const allWx = ['木', '火', '土', '金', '水']; + const surface = { 木: 0, 火: 0, 土: 0, 金: 0, 水: 0 }; + const withCangGan = { 木: 0, 火: 0, 土: 0, 金: 0, 水: 0 }; + const pillars = ['年', '月', '日', '时']; + for (const p of pillars) { + const { gan, zhi } = siZhu[p]; + surface[tables_1.GAN_WUXING[gan]] += 1; + surface[tables_1.ZHI_WUXING[zhi]] += 1; + withCangGan[tables_1.GAN_WUXING[gan]] += 1; + for (const cg of tables_1.ZHI_CANG_GAN[zhi]) { + const weight = cg.role === '本气' ? 1 : cg.role === '中气' ? 0.5 : 0.3; + withCangGan[tables_1.GAN_WUXING[cg.gan]] += weight; + } + } + const missing = allWx.filter(w => surface[w] === 0); + const maxCount = Math.max(...allWx.map(w => surface[w])); + const strongest = allWx.filter(w => surface[w] === maxCount); + // 每个五行映射到日干视角的十神类 + const shiShenGroups = {}; + const repGanByWx = { 木: '甲', 火: '丙', 土: '戊', 金: '庚', 水: '壬' }; + for (const wx of allWx) { + const ss = (0, tables_1.getShiShen)(dayMaster, repGanByWx[wx]); + // 归类: 比劫/食伤/财/官杀/印 + let group; + if (ss === '比肩' || ss === '劫财') + group = '比劫'; + else if (ss === '食神' || ss === '伤官') + group = '食伤'; + else if (ss === '偏财' || ss === '正财') + group = '财'; + else if (ss === '七杀' || ss === '正官') + group = '官杀'; + else + group = '印'; + shiShenGroups[wx] = { 十神类: group, 实例数: surface[wx] }; + } + return { surface, withCangGan, missing, strongest, shiShenGroups }; +} +function wuXingMonthStatus(monthZhi) { + return (0, tables_1.getWuXingMonthStatus)(monthZhi); +} diff --git a/calculator/dist/bazi-enrich/zhi-relations.js b/calculator/dist/bazi-enrich/zhi-relations.js new file mode 100644 index 0000000..5e24a5c --- /dev/null +++ b/calculator/dist/bazi-enrich/zhi-relations.js @@ -0,0 +1,155 @@ +"use strict"; +// 地支关系检测 — 刑冲合害、三合三会、暗合、拱合拱会 +Object.defineProperty(exports, "__esModule", { value: true }); +exports.detectZhiRelations = detectZhiRelations; +const tables_1 = require("./tables"); +// 六冲 +const LIU_CHONG = [ + ['子', '午'], ['丑', '未'], ['寅', '申'], ['卯', '酉'], ['辰', '戌'], ['巳', '亥'] +]; +// 六合 +const LIU_HE = [ + ['子', '丑'], ['寅', '亥'], ['卯', '戌'], ['辰', '酉'], ['巳', '申'], ['午', '未'] +]; +// 三合局 (申子辰水 / 亥卯未木 / 寅午戌火 / 巳酉丑金) +const SAN_HE = [ + { zhi: ['申', '子', '辰'], wuxing: '水' }, + { zhi: ['亥', '卯', '未'], wuxing: '木' }, + { zhi: ['寅', '午', '戌'], wuxing: '火' }, + { zhi: ['巳', '酉', '丑'], wuxing: '金' } +]; +// 三会方 (寅卯辰东方木 / 巳午未南方火 / 申酉戌西方金 / 亥子丑北方水) +const SAN_HUI = [ + { zhi: ['寅', '卯', '辰'], wuxing: '木' }, + { zhi: ['巳', '午', '未'], wuxing: '火' }, + { zhi: ['申', '酉', '戌'], wuxing: '金' }, + { zhi: ['亥', '子', '丑'], wuxing: '水' } +]; +// 相刑 (无礼之刑 子卯; 恃势之刑 寅巳申; 无恩之刑 丑戌未) +const XIANG_XING = [ + { zhi: ['子', '卯'], name: '无礼之刑' }, + { zhi: ['寅', '巳', '申'], name: '恃势之刑' }, + { zhi: ['丑', '戌', '未'], name: '无恩之刑' } +]; +const ZI_XING = ['辰', '午', '酉', '亥']; // 自刑 +// 六害 +const LIU_HAI = [ + ['子', '未'], ['丑', '午'], ['寅', '巳'], ['卯', '辰'], ['申', '亥'], ['酉', '戌'] +]; +// 暗合 — 地支藏干之间相合 +// 天干五合: 甲己 乙庚 丙辛 丁壬 戊癸 +const GAN_HE = { + 甲: '己', 己: '甲', 乙: '庚', 庚: '乙', 丙: '辛', 辛: '丙', 丁: '壬', 壬: '丁', 戊: '癸', 癸: '戊' +}; +function detectZhiRelations(zhis) { + const out = []; + const pillars = ['年', '月', '日', '时']; + const list = pillars.map(p => ({ pillar: p, zhi: zhis[p] })); + // 两两组合 + const pairs = []; + for (let i = 0; i < list.length; i++) { + for (let j = i + 1; j < list.length; j++) { + pairs.push([list[i], list[j]]); + } + } + // 六冲 + for (const [a, b] of pairs) { + for (const [x, y] of LIU_CHONG) { + if ((a.zhi === x && b.zhi === y) || (a.zhi === y && b.zhi === x)) { + out.push({ type: '六冲', zhi: [a.zhi, b.zhi], pillars: [a.pillar, b.pillar] }); + } + } + } + // 六合 + for (const [a, b] of pairs) { + for (const [x, y] of LIU_HE) { + if ((a.zhi === x && b.zhi === y) || (a.zhi === y && b.zhi === x)) { + out.push({ type: '六合', zhi: [a.zhi, b.zhi], pillars: [a.pillar, b.pillar] }); + } + } + } + // 六害 + for (const [a, b] of pairs) { + for (const [x, y] of LIU_HAI) { + if ((a.zhi === x && b.zhi === y) || (a.zhi === y && b.zhi === x)) { + out.push({ type: '六害', zhi: [a.zhi, b.zhi], pillars: [a.pillar, b.pillar] }); + } + } + } + // 相刑 + for (const xing of XIANG_XING) { + const matches = list.filter(p => xing.zhi.includes(p.zhi)); + if (xing.zhi.length === 2) { + // 子卯刑:要两个都在 + const distinct = new Set(matches.map(m => m.zhi)); + if (distinct.size === 2) { + out.push({ type: '相刑', zhi: [...distinct], pillars: matches.map(m => m.pillar), detail: xing.name }); + } + } + else { + // 三刑:两个就构成半刑(实际三刑要全) + const distinct = new Set(matches.map(m => m.zhi)); + if (distinct.size >= 2) { + out.push({ type: '相刑', zhi: [...distinct], pillars: matches.map(m => m.pillar), detail: xing.name + (distinct.size === 3 ? '(全)' : '(半)') }); + } + } + } + // 自刑 + for (const zx of ZI_XING) { + const matches = list.filter(p => p.zhi === zx); + if (matches.length >= 2) { + out.push({ type: '自刑', zhi: [zx, zx], pillars: matches.map(m => m.pillar) }); + } + } + // 三合 / 三会 / 半合 / 拱合 / 拱会 + for (const sh of SAN_HE) { + const present = list.filter(p => sh.zhi.includes(p.zhi)); + const distinctZhi = [...new Set(present.map(p => p.zhi))]; + if (distinctZhi.length === 3) { + out.push({ type: '三合', zhi: distinctZhi, pillars: present.map(p => p.pillar), detail: `三合${sh.wuxing}局` }); + } + else if (distinctZhi.length === 2) { + // 缺一支 → 拱合 + const missing = sh.zhi.find(z => !distinctZhi.includes(z)); + out.push({ type: '拱合', zhi: distinctZhi, pillars: present.map(p => p.pillar), detail: `拱合${missing}(${sh.wuxing}局)` }); + } + } + for (const sh of SAN_HUI) { + const present = list.filter(p => sh.zhi.includes(p.zhi)); + const distinctZhi = [...new Set(present.map(p => p.zhi))]; + if (distinctZhi.length === 3) { + out.push({ type: '三会', zhi: distinctZhi, pillars: present.map(p => p.pillar), detail: `三会${sh.wuxing}方` }); + } + else if (distinctZhi.length === 2) { + const missing = sh.zhi.find(z => !distinctZhi.includes(z)); + out.push({ type: '拱会', zhi: distinctZhi, pillars: present.map(p => p.pillar), detail: `拱会${missing}(${sh.wuxing}方)` }); + } + } + // 暗合 — 地支藏干相合 + // 规则: 仅在该地支对没有其他显式关系(六冲/六合/六害/三合/三会/拱合/拱会/相刑)时才报暗合 + const explicitTypes = ['六冲', '六合', '六害', '三合', '三会', '拱合', '拱会', '相刑', '自刑']; + function hasExplicit(za, zb) { + return out.some(r => explicitTypes.includes(r.type) && + r.zhi.includes(za) && r.zhi.includes(zb)); + } + for (const [a, b] of pairs) { + if (a.zhi === b.zhi) + continue; + if (hasExplicit(a.zhi, b.zhi)) + continue; + const aGans = tables_1.ZHI_CANG_GAN[a.zhi].map(c => c.gan); + const bGans = tables_1.ZHI_CANG_GAN[b.zhi].map(c => c.gan); + const hits = []; + for (const ag of aGans) { + for (const bg of bGans) { + if (GAN_HE[ag] === bg) { + hits.push(`${ag}${bg}合`); + } + } + } + if (hits.length > 0) { + out.push({ type: '暗合', zhi: [a.zhi, b.zhi], pillars: [a.pillar, b.pillar], detail: hits.join('、') }); + } + } + return out; +} diff --git a/calculator/dist/dump-text.js b/calculator/dist/dump-text.js new file mode 100644 index 0000000..7c12d8b --- /dev/null +++ b/calculator/dist/dump-text.js @@ -0,0 +1,256 @@ +"use strict"; +// 把 run-chart.ts 的 JSON 输出转成文墨天机风格树状文本 +// 用法: +// npx tsx dump-text.ts --input=chart.json [--output=chart.txt] +// 不指定 --output 则打印到 stdout +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const fs = __importStar(require("fs")); +function parseArgs() { + const args = {}; + for (const a of process.argv.slice(2)) { + const m = a.match(/^--([^=]+)=(.*)$/); + if (m) + args[m[1]] = m[2]; + } + return args; +} +function padRight(s, n) { + // 中文字符按宽度 2 计算 + let w = 0; + for (const ch of s) + w += /[一-龥＀-￿]/.test(ch) ? 2 : 1; + return s + ' '.repeat(Math.max(0, n - w)); +} +function dumpZiwei(z, bi) { + const lines = []; + lines.push('紫微斗数命盘'); + lines.push('│'); + lines.push('├基本信息'); + lines.push(`│ ├性别 : ${bi.gender === 'male' ? '男' : '女'}`); + lines.push(`│ ├阳历 : ${bi.year}-${String(bi.month).padStart(2, '0')}-${String(bi.day).padStart(2, '0')} ${String(bi.hour).padStart(2, '0')}:${String(bi.minute).padStart(2, '0')}`); + if (z.lunarDate) { + lines.push(`│ ├农历 : ${z.lunarDate.year}年${z.lunarDate.monthCn}月${z.lunarDate.dayCn}`); + } + if (z.siZhu) { + const sz = z.siZhu; + lines.push(`│ ├节气四柱 : ${sz.year.gan}${sz.year.zhi} ${sz.month.gan}${sz.month.zhi} ${sz.day.gan}${sz.day.zhi} ${sz.hour.gan}${sz.hour.zhi}`); + } + lines.push(`│ ├阴阳 : ${z.yinYang || ''}`); + lines.push(`│ ├五行局 : ${z.wuXingJu?.name || ''}`); + const DIZHI = ['子', '丑', '寅', '卯', '辰', '巳', '午', '未', '申', '酉', '戌', '亥']; + const mingDizhi = z.gongs[0]?.dizhi; + const shenDizhi = DIZHI[z.shenGongIndex]; + lines.push(`│ └命宫=${mingDizhi} 身宫=${shenDizhi}`); + lines.push('│'); + // 生年四化汇总 + const allSihua = []; + for (const g of z.gongs) { + for (const s of g.sihua || []) { + allSihua.push(`${s.star}${s.hua}`); + } + } + if (allSihua.length > 0) { + lines.push('├生年四化'); + lines.push(`│ └${allSihua.join(' · ')}`); + lines.push('│'); + } + // 十二宫 + lines.push('├命盘十二宫'); + z.gongs.forEach((g, idx) => { + const isLast = idx === z.gongs.length - 1; + const prefix = isLast ? '│ └' : '│ ├'; + const childPrefix = isLast ? '│ ' : '│ │ '; + const isMing = g.gong === '命宫'; + const isShen = g.dizhi === shenDizhi; + const marks = []; + if (isMing) + marks.push('[命]'); + if (isShen && !isMing) + marks.push('[身]'); + const gongName = g.gong.endsWith('宫') ? g.gong : g.gong + '宫'; + lines.push(`${prefix}${gongName}[${g.tiangan}${g.dizhi}]${marks.join('')}`); + const main = g.mainStars && g.mainStars.length > 0 ? g.mainStars.join('·') : '无主星'; + lines.push(`${childPrefix}├主星 : ${main}`); + const aux = g.auxStars && g.auxStars.length > 0 ? g.auxStars.join('·') : '无'; + lines.push(`${childPrefix}├辅星 : ${aux}`); + if (g.sihua && g.sihua.length > 0) { + lines.push(`${childPrefix}├生年四化 : ${g.sihua.map((s) => s.star + s.hua).join('·')}`); + } + if (g.daXian) { + const dxMark = g.daXian.isCurrent ? '★当前' : ''; + lines.push(`${childPrefix}├大限 : ${g.daXian.startAge}-${g.daXian.endAge}虚岁 ${dxMark}`); + } + if (g.liuNian && g.liuNian.length > 0) { + lines.push(`${childPrefix}└流年 : ${g.liuNian.join('·')}虚岁`); + } + if (!isLast) + lines.push('│ │'); + }); + return lines; +} +function dumpBazi(b, bi) { + const lines = []; + lines.push(''); + lines.push('八字命盘'); + lines.push('│'); + // 四柱表 + const sz = b.siZhu; + const ss = b.shiShen; + const zs = b.zhangSheng || {}; + const zz = b.enrichment?.自坐 || {}; + const ny = b.naYin || {}; + const cg = b.cangGan || {}; + lines.push('├四柱'); + const cols = ['年', '月', '日', '时']; + const pillarKeys = ['year', 'month', 'day', 'hour']; + const cangGanFmt = (pk) => { + const arr = cg[pk]; + if (!Array.isArray(arr)) + return ''; + return arr.map((x) => `${x.gan}(${x.shiShen || ''})`).join(' '); + }; + for (let i = 0; i < 4; i++) { + const isLast = i === 3; + const pre = isLast ? '│ └' : '│ ├'; + const subPre = isLast ? '│ ' : '│ │ '; + const pk = pillarKeys[i]; + const sx = ss[pk] || ''; + const isDay = pk === 'day'; + const tag = isDay ? `[日主]` : `[${sx}]`; + lines.push(`${pre}${cols[i]}柱 : ${sz[pk].gan}${sz[pk].zhi} ${tag}`); + if (cg[pk]) + lines.push(`${subPre}├藏干 : ${cangGanFmt(pk)}`); + lines.push(`${subPre}├星运 : ${zs[pk] || '-'}`); + lines.push(`${subPre}├自坐 : ${zz[cols[i]] || zz[pk] || '-'}`); + lines.push(`${subPre}└纳音 : ${ny[pk] || '-'}`); + if (!isLast) + lines.push('│ │'); + } + lines.push('│'); + // 大运 + if (b.dayun && b.dayun.length > 0) { + lines.push(`├大运 (起运 ${b.dayunStart}岁)`); + b.dayun.slice(0, 10).forEach((d, i) => { + const isLast = i === Math.min(9, b.dayun.length - 1); + const pre = isLast ? '│ └' : '│ ├'; + const dxTag = `${d.ganShiShen || ''}/${d.zhiShiShen || ''}`; + lines.push(`${pre}${d.startYear}-${d.endYear} ${d.ganZhi.gan}${d.ganZhi.zhi} (${dxTag})`); + }); + lines.push('│'); + } + // enrichBazi 补层 + const en = b.enrichment; + if (en) { + lines.push('├算法补层'); + lines.push(`│ ├格局 : ${en.格局?.primary || '-'} (置信度: ${en.格局?.confidence || '-'})`); + if (en.格局?.basis) + lines.push(`│ │ └依据 : ${en.格局.basis}`); + if (en.格局?.notes && en.格局.notes.length) { + for (const note of en.格局.notes) + lines.push(`│ │ └备注 : ${note}`); + } + const ws = en.旺衰; + if (ws) { + const lvl = ws.verdict || ws.level || '-'; + const score = ws.score !== undefined ? `score=${ws.score}` : ''; + lines.push(`│ ├旺衰 : ${lvl} (${score}, 置信度: ${ws.confidence || '-'})`); + if (ws.breakdown) { + const b = ws.breakdown; + lines.push(`│ │ └四维 : 得令${b.得令} 长生${b.长生} 得地${b.得地} 得势${b.得势}`); + } + } + if (en.调候用神) + lines.push(`│ ├调候用神 : ${en.调候用神.join('、')}`); + if (en.五行旺相) { + const ws5 = en.五行旺相; + lines.push(`│ ├五行旺相 : 木${ws5.木} 火${ws5.火} 土${ws5.土} 金${ws5.金} 水${ws5.水}`); + } + if (en.五行统计) { + const s = en.五行统计.surface || en.五行统计; + const w = en.五行统计.withCangGan; + if (s) + lines.push(`│ ├五行统计(surface) : 木${s.木 || 0} 火${s.火 || 0} 土${s.土 || 0} 金${s.金 || 0} 水${s.水 || 0}`); + if (w) + lines.push(`│ ├五行统计(含藏干) : 木${w.木 || 0} 火${w.火 || 0} 土${w.土 || 0} 金${w.金 || 0} 水${w.水 || 0}`); + } + // 天干关系 + const gr = en.天干关系; + if (gr && Array.isArray(gr) && gr.length > 0) { + lines.push('│ ├天干关系'); + gr.forEach((r, i) => { + const last = i === gr.length - 1; + const pair = (r.gans || []).join(''); + const pillars = (r.pillars || []).join('-'); + lines.push(`│ │ ${last ? '└' : '├'}${r.type} : ${pair} (${pillars}柱)`); + }); + } + // 地支关系 + const zr = en.地支关系; + if (zr && Array.isArray(zr) && zr.length > 0) { + lines.push('│ ├地支关系'); + zr.forEach((r, i) => { + const last = i === zr.length - 1; + const pair = (r.zhi || []).join(''); + const pillars = (r.pillars || []).join('-'); + const extra = r.detail ? ` ${r.detail}` : ''; + lines.push(`│ │ ${last ? '└' : '├'}${r.type} : ${pair} (${pillars}柱)${extra}`); + }); + } + // 整柱 + const zp = en.整柱; + if (zp && Array.isArray(zp) && zp.length > 0) { + lines.push('│ └整柱判定'); + zp.forEach((p, i) => { + const last = i === zp.length - 1; + lines.push(`│ ${last ? '└' : '├'}${p.pillar}柱 ${p.gan}${p.zhi} : ${p.verdict}`); + }); + } + } + lines.push(''); + lines.push('└[备注: 本盘由 bazi-ziwei skill 算法层生成 — Yiqi core + enrichBazi 补层]'); + return lines; +} +function main() { + const args = parseArgs(); + if (!args.input) { + console.error('Usage: npx tsx dump-text.ts --input=chart.json [--output=chart.txt]'); + process.exit(1); + } + const chart = JSON.parse(fs.readFileSync(args.input, 'utf-8')); + const bi = chart.bazi.birthInfo || chart.ziwei.birthInfo; + const lines = []; + lines.push(...dumpZiwei(chart.ziwei, bi)); + lines.push(...dumpBazi(chart.bazi, bi)); + const text = lines.join('\n'); + if (args.output) { + fs.writeFileSync(args.output, text, 'utf-8'); + console.error(`Text dump written to ${args.output}`); + } + else { + process.stdout.write(text); + } +} +main(); diff --git a/calculator/dist/render.js b/calculator/dist/render.js new file mode 100644 index 0000000..8ea45ea --- /dev/null +++ b/calculator/dist/render.js @@ -0,0 +1,351 @@ +"use strict"; +// 渲染脚本: 算法 JSON + 分析 JSON + 模板 → 单文件 HTML +// +// 用法: +// npx tsx render.ts \ +// --chart=path/to/chart.json \ +// --analysis=path/to/analysis.json \ +// --template=../templates/report-zonghe-poster.html \ +// --output=path/to/output.html +// +// chart.json: run-chart.ts 的输出 (算法层) +// analysis.json: LLM 按 zonghe-poster.md schema 输出的 JSON +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const fs = __importStar(require("fs")); +function parseArgs() { + const args = {}; + for (const a of process.argv.slice(2)) { + const m = a.match(/^--([^=]+)=(.*)$/); + if (m) + args[m[1]] = m[2]; + } + return args; +} +const DIZHI = ['子', '丑', '寅', '卯', '辰', '巳', '午', '未', '申', '酉', '戌', '亥']; +function calcVirtualAge(birthYear, currentYear) { + return currentYear - birthYear + 1; +} +function chartToFlat(chart, currentYear) { + const out = {}; + const bi = chart.bazi.birthInfo; + const bz = chart.bazi; + const zw = chart.ziwei; + currentYear = currentYear || new Date().getFullYear(); + const virtualAge = calcVirtualAge(bi.year, currentYear); + // ============ META ============ + out['meta.solar_date'] = `${bi.year}-${String(bi.month).padStart(2, '0')}-${String(bi.day).padStart(2, '0')} ${String(bi.hour).padStart(2, '0')}:${String(bi.minute).padStart(2, '0')}`; + if (zw.lunarDate) { + out['meta.lunar_date'] = `${zw.lunarDate.year}年 ${zw.lunarDate.monthCn}月${zw.lunarDate.dayCn} ${zw.lunarDate.hourCn || ''}`.trim(); + } + else { + out['meta.lunar_date'] = '-'; + } + out['meta.gender_full'] = bi.gender === 'male' ? '男(' + (zw.yinYang || '') + ')' : '女(' + (zw.yinYang || '') + ')'; + out['meta.age_virtual'] = virtualAge.toString(); + out['meta.current_year'] = currentYear.toString(); + const now = new Date(); + out['meta.gen_time'] = `${now.getFullYear()}-${String(now.getMonth() + 1).padStart(2, '0')}-${String(now.getDate()).padStart(2, '0')} ${String(now.getHours()).padStart(2, '0')}:${String(now.getMinutes()).padStart(2, '0')}`; + out['meta.yinyang'] = zw.yinYang || '-'; + // ============ ZIWEI META ============ + // Yiqi 没明确输出 命主/身主/子年斗君 — 从十二宫推导 / 留空 + // 简化: 默认根据命宫地支查命主, 身宫地支查身主 + const MING_ZHU = { '子': '贪狼', '丑': '巨门', '寅': '禄存', '卯': '文曲', '辰': '廉贞', '巳': '武曲', '午': '破军', '未': '武曲', '申': '廉贞', '酉': '文曲', '戌': '禄存', '亥': '巨门' }; + const SHEN_ZHU = { '子': '火星', '丑': '天相', '寅': '天梁', '卯': '天同', '辰': '文昌', '巳': '天机', '午': '火星', '未': '天相', '申': '天梁', '酉': '天同', '戌': '文昌', '亥': '天机' }; + const mingDizhi = zw.gongs[0].dizhi; + const shenDizhi = DIZHI[zw.shenGongIndex]; + out['ziwei.ming_zhu'] = MING_ZHU[mingDizhi] || '-'; + out['ziwei.shen_zhu'] = SHEN_ZHU[shenDizhi] || '-'; + // 子年斗君: 简化处理, 按生月+生时推算复杂, 暂用身宫前后位作占位 + out['ziwei.zi_dou_jun'] = zw.ziDouJun || '-'; + out['ziwei.wuxing_ju'] = zw.wuXingJu?.name || '-'; + // ============ CORE DATA ============ + const en = bz.enrichment; + out['core.geju'] = en?.格局?.primary || '-'; + out['core.geju_confidence'] = en?.格局?.confidence || '-'; + out['core.wangshuai_verdict'] = en?.旺衰?.verdict || '-'; + out['core.wangshuai_score'] = en?.旺衰?.score?.toString() || '-'; + // 把 score 映射到 0-100% (假设 score -10 ~ +10) + const ws = en?.旺衰?.score ?? 0; + out['core.wangshuai_pos_pct'] = Math.max(0, Math.min(100, Math.round((ws + 10) * 5))).toString(); + const tc = en?.调候用神 || []; + out['core.tiaohou.0'] = tc[0] || '-'; + out['core.tiaohou.1'] = tc[1] || '-'; + out['core.tiaohou_confidence'] = '高'; + const yl = en?.五行旺相 || {}; + for (const k of ['木', '火', '土', '金', '水']) { + out[`core.yueling.${k}`] = yl[k] || '-'; + } + const wx = en?.五行统计?.withCangGan || en?.五行统计 || { 木: 0, 火: 0, 土: 0, 金: 0, 水: 0 }; + for (const k of ['木', '火', '土', '金', '水']) + out[`core.wuxing.${k}`] = wx[k] ?? '-'; + const wxMax = Math.max(...['木', '火', '土', '金', '水'].map(k => +wx[k] || 0)) || 1; + for (const k of ['木', '火', '土', '金', '水']) + out[`core.wuxing_pct.${k}`] = Math.round(((+wx[k] || 0) / wxMax) * 100); + // ============ ZIWEI 12 GONGS ============ + const sihuaCharMap = { 化禄: '禄', 化权: '权', 化科: '科', 化忌: '忌' }; + for (const g of zw.gongs) { + const mainStarsHtml = (g.mainStars && g.mainStars.length > 0) + ? g.mainStars.map((s) => { + const sh = (g.sihua || []).find((x) => x.star === s); + if (sh) { + const huaChar = sihuaCharMap[sh.hua] || sh.hua.slice(-1); + return `${s}${huaChar}`; + } + return s; + }).join('·') + : '无主星'; + // 辅星同样要处理四化(右弼化科 / 文昌化忌 / 文曲化科 等常落辅星) + const auxStarsHtml = (g.auxStars && g.auxStars.length > 0) + ? g.auxStars.map((s) => { + const sh = (g.sihua || []).find((x) => x.star === s); + if (sh) { + const huaChar = sihuaCharMap[sh.hua] || sh.hua.slice(-1); + return `${s}${huaChar}`; + } + return s; + }).join('·') + : '—'; + out[`gongs.${g.dizhi}.name`] = g.gong.endsWith('宫') ? g.gong : g.gong + '宫'; + out[`gongs.${g.dizhi}.ganzhi`] = g.tiangan + g.dizhi; + out[`gongs.${g.dizhi}.mainStarsHtml`] = mainStarsHtml; + out[`gongs.${g.dizhi}.auxStars`] = auxStarsHtml; + out[`gongs.${g.dizhi}.smallStars`] = ''; + out[`gongs.${g.dizhi}.daxian_range`] = g.daXian ? `${g.daXian.startAge}-${g.daXian.endAge}` : '-'; + // 命宫红框 / 身宫徽标 / 当前大限高亮 — 数据驱动, 不硬编码到模板 + const flags = []; + if (g.dizhi === mingDizhi) + flags.push('ming'); + if (g.dizhi === shenDizhi) + flags.push('shen'); + if (g.daXian && g.daXian.startAge <= virtualAge && virtualAge <= g.daXian.endAge) + flags.push('current-daxian'); + out[`gongs.${g.dizhi}.flag`] = flags.join(' '); + out[`gongs.${g.dizhi}.shenBadge`] = (g.dizhi === shenDizhi) ? '' : ''; + } + // ============ BAZI 4 PILLARS ============ + const cangGanFmt = (arr) => (arr || []).map((x) => `${x.gan}(${x.shiShen})`).join(' '); + const pillarKeyToCn = { year: '年', month: '月', day: '日', hour: '时' }; + for (const k of ['year', 'month', 'day', 'hour']) { + out[`bazi.${k}.shiShen`] = bz.shiShen?.[k] || '-'; + out[`bazi.${k}.gan`] = bz.siZhu[k].gan; + out[`bazi.${k}.zhi`] = bz.siZhu[k].zhi; + out[`bazi.${k}.cangGanHtml`] = cangGanFmt(bz.cangGan?.[k] || []); + out[`bazi.${k}.zhangSheng`] = bz.zhangSheng?.[k] || '-'; + out[`bazi.${k}.ziZuo`] = en?.自坐?.[pillarKeyToCn[k]] || en?.自坐?.[k] || '-'; + out[`bazi.${k}.naYin`] = bz.naYin?.[k] || '-'; + } + out['bazi.dayunStart'] = bz.dayunStart?.toString() || '-'; + // ============ DAYUN 10 ============ + const dayunArr = (bz.dayun || []).slice(0, 10); + let currentDayun = null; + for (let i = 0; i < 10; i++) { + const d = dayunArr[i]; + if (d && d.startAge <= virtualAge && virtualAge <= d.endAge) + currentDayun = d; + } + for (let i = 0; i < 10; i++) { + const d = dayunArr[i]; + if (!d) { + ['gz', 'age_range', 'shishen', 'current_class'].forEach(f => out[`dayun.${i}.${f}`] = '-'); + continue; + } + out[`dayun.${i}.gz`] = d.ganZhi.gan + d.ganZhi.zhi; + out[`dayun.${i}.age_range`] = `${d.startAge}-${d.endAge}`; + const sg = (d.ganShiShen || '').slice(0, 1); + const sz = (d.zhiShiShen || '').slice(0, 1); + out[`dayun.${i}.shishen`] = sg + sz; + out[`dayun.${i}.current_class`] = (currentDayun && d === currentDayun) ? 'current dayun' : ''; + } + // ============ SECTION 02 阶段印证时间轴 (从 chart 算, 不靠 LLM) ============ + // 八字大运: 前 7 段 + const dayunForStage = dayunArr.slice(0, 7); + for (let i = 0; i < 7; i++) { + const d = dayunForStage[i]; + if (!d) { + ['range', 'gz', 'shishen', 'current_class'].forEach(f => out[`section_02.bazi.${i}.${f}`] = '-'); + continue; + } + out[`section_02.bazi.${i}.range`] = `${d.startAge}-${d.endAge}`; + out[`section_02.bazi.${i}.gz`] = d.ganZhi.gan + d.ganZhi.zhi; + const sg = (d.ganShiShen || '').slice(0, 1); + const sz = (d.zhiShiShen || '').slice(0, 1); + out[`section_02.bazi.${i}.shishen`] = sg + sz; + out[`section_02.bazi.${i}.current_class`] = (d.startAge <= virtualAge && virtualAge <= d.endAge) ? 'current' : ''; + } + // 紫微大限: 按 startAge 排序取前 7 段 + const ziweiDaxian = zw.gongs + .filter((g) => g.daXian) + .map((g) => ({ startAge: g.daXian.startAge, endAge: g.daXian.endAge, gong: g.gong })) + .sort((a, b) => a.startAge - b.startAge) + .slice(0, 7); + for (let i = 0; i < 7; i++) { + const d = ziweiDaxian[i]; + if (!d) { + ['range', 'current_class'].forEach(f => out[`section_02.ziwei.${i}.${f}`] = '-'); + continue; + } + out[`section_02.ziwei.${i}.range`] = `${d.startAge}-${d.endAge}`; + out[`section_02.ziwei.${i}.current_class`] = (d.startAge <= virtualAge && virtualAge <= d.endAge) ? 'current' : ''; + } + // ============ LIUNIAN 10 (current dayun) ============ + if (currentDayun) { + out['liunian_dayun_label'] = `${currentDayun.ganZhi.gan}${currentDayun.ganZhi.zhi} ${currentDayun.startAge}-${currentDayun.endAge}`; + } + else { + out['liunian_dayun_label'] = '-'; + } + const liunianArr = ((currentDayun?.liuNian) || []).slice(0, 10); + for (let i = 0; i < 10; i++) { + const ln = liunianArr[i]; + if (!ln) { + ['year', 'age', 'gz', 'shishen', 'current_class'].forEach(f => out[`liunian.${i}.${f}`] = '-'); + continue; + } + out[`liunian.${i}.year`] = ln.year; + out[`liunian.${i}.age`] = ln.age; + out[`liunian.${i}.gz`] = ln.ganZhi.gan + ln.ganZhi.zhi; + out[`liunian.${i}.shishen`] = ln.ganShiShen ? (ln.ganShiShen.slice(0, 1) + (ln.zhiShiShen?.slice(0, 1) || '')) : ''; + out[`liunian.${i}.current_class`] = (ln.age === virtualAge) ? 'current' : ''; + } + return out; +} +function analysisToFlat(analysis) { + const out = {}; + // meta + if (analysis.meta) { + out['meta.archetype_name'] = analysis.meta.archetype_name; + out['meta.axis_oneliner'] = analysis.meta.axis_oneliner; + } + // axes + consistency + if (analysis.axes) { + out['axes.bazi_main'] = analysis.axes.bazi_main; + out['axes.ziwei_main'] = analysis.axes.ziwei_main; + } + if (analysis.consistency) + out['ziwei.consistency'] = analysis.consistency; + // strengths / weaknesses + for (let i = 0; i < 3; i++) { + const s = analysis.strengths?.[i] || {}; + out[`strengths.${i}.title`] = s.title || '-'; + out[`strengths.${i}.desc`] = s.desc || '-'; + const w = analysis.weaknesses?.[i] || {}; + out[`weaknesses.${i}.title`] = w.title || '-'; + out[`weaknesses.${i}.desc`] = w.desc || '-'; + } + // section 01 + if (analysis.section_01) { + out['section_01.text'] = analysis.section_01.text || '-'; + out['section_01.word_count'] = analysis.section_01.word_count || '-'; + } + // section 02 - bazi/ziwei dayun ranges already from chart, only conclusion + if (analysis.section_02) { + out['section_02.conclusion'] = analysis.section_02.conclusion || '-'; + } + // dim + const dims = ['career', 'wealth', 'marriage', 'children', 'family', 'health']; + for (const k of dims) { + const d = analysis.dim?.[k] || {}; + out[`dim.${k}.bazi`] = d.bazi || '-'; + out[`dim.${k}.ziwei`] = d.ziwei || '-'; + out[`dim.${k}.verdict`] = d.verdict || '-'; + out[`dim.${k}.verdict_class`] = d.verdict_class || 'verdict-yes'; + out[`dim.${k}.fused`] = d.fused || '-'; + } + // conflicts + for (let i = 0; i < 3; i++) { + const c = analysis.conflicts?.[i] || {}; + out[`conflicts.${i}.point`] = c.point || '-'; + out[`conflicts.${i}.bazi`] = c.bazi || '-'; + out[`conflicts.${i}.ziwei`] = c.ziwei || '-'; + out[`conflicts.${i}.impact`] = c.impact || '-'; + out[`conflicts.${i}.impact_class`] = c.impact_class || 'low'; + out[`conflicts.${i}.advice`] = c.advice || '-'; + } + // final + if (analysis.final) { + out['final.life_axis'] = analysis.final.life_axis || '-'; + for (let i = 0; i < 5; i++) { + const n = analysis.final.nodes?.[i] || {}; + out[`final.nodes.${i}.age`] = n.age || '-'; + out[`final.nodes.${i}.year`] = n.year || '-'; + out[`final.nodes.${i}.event`] = n.event || '-'; + } + for (let i = 0; i < 3; i++) { + const r = analysis.final.risks?.[i] || {}; + out[`final.risks.${i}.range`] = r.range || '-'; + out[`final.risks.${i}.desc`] = r.desc || '-'; + } + for (let i = 0; i < 2; i++) { + const l = analysis.final.leverage?.[i] || {}; + out[`final.leverage.${i}.title`] = l.title || '-'; + out[`final.leverage.${i}.desc`] = l.desc || '-'; + } + for (let i = 0; i < 4; i++) + out[`final.advice.${i}`] = analysis.final.advice?.[i] || '-'; + } + // confidence + if (analysis.confidence) { + for (const k of ['bazi', 'ziwei', 'consistency', 'stability']) { + out[`confidence.${k}_level`] = analysis.confidence[`${k}_level`] || '-'; + out[`confidence.${k}_score`] = analysis.confidence[`${k}_score`] || '-'; + } + out['confidence.note'] = analysis.confidence.note || '-'; + } + return out; +} +function renderTemplate(template, data) { + let html = template; + // 第一轮: 精确替换 + for (const k of Object.keys(data)) { + const re = new RegExp(`\\{\\{${k.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')}\\}\\}`, 'g'); + html = html.replace(re, String(data[k])); + } + // 兜底: 剩余未匹配占位符替换为 '-' + html = html.replace(/\{\{[a-zA-Z0-9_.]+\}\}/g, '-'); + return html; +} +function main() { + const args = parseArgs(); + if (!args.chart || !args.template) { + console.error('Usage: npx tsx render.ts --chart=chart.json [--analysis=analysis.json] --template=path/to/template.html [--output=out.html]'); + process.exit(1); + } + const chart = JSON.parse(fs.readFileSync(args.chart, 'utf-8')); + const analysis = args.analysis ? JSON.parse(fs.readFileSync(args.analysis, 'utf-8')) : {}; + const template = fs.readFileSync(args.template, 'utf-8'); + const chartFlat = chartToFlat(chart, args.currentYear ? +args.currentYear : undefined); + const analysisFlat = analysisToFlat(analysis); + const data = { ...chartFlat, ...analysisFlat }; + const html = renderTemplate(template, data); + if (args.output) { + fs.writeFileSync(args.output, html, 'utf-8'); + console.error(`Rendered HTML written to ${args.output}`); + } + else { + process.stdout.write(html); + } +} +main(); diff --git a/calculator/dist/run-chart.js b/calculator/dist/run-chart.js new file mode 100644 index 0000000..523e7f7 --- /dev/null +++ b/calculator/dist/run-chart.js @@ -0,0 +1,103 @@ +"use strict"; +// 排盘单一入口 — 输入生辰, 输出完整 JSON (Yiqi createChart + enrichBazi) +// +// 用法: +// npx tsx run-chart.ts --year=2000 --month=1 --day=1 --hour=12 --minute=0 --gender=male +// 可选: --isLunar=true --timeZone=8 --output=path/to/file.json +// +// 不指定 --output 则打印到 stdout +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const index_1 = require("./yiqi-core/index"); +const bazi_1 = require("./yiqi-core/bazi"); +const enrich_1 = require("./bazi-enrich/enrich"); +const fs = __importStar(require("fs")); +function parseArgs() { + const args = {}; + for (const a of process.argv.slice(2)) { + const m = a.match(/^--([^=]+)=(.*)$/); + if (m) + args[m[1]] = m[2]; + } + return args; +} +function main() { + const args = parseArgs(); + const required = ['year', 'month', 'day', 'hour', 'minute', 'gender']; + for (const k of required) { + if (!args[k]) { + console.error(`Missing required arg: --${k}=...`); + console.error('Usage: npx tsx run-chart.ts --year=2000 --month=1 --day=1 --hour=12 --minute=0 --gender=male'); + process.exit(1); + } + } + const gender = args.gender === 'male' || args.gender === 'female' ? args.gender : (args.gender === '男' ? 'male' : 'female'); + const birthInfo = { + year: +args.year, + month: +args.month, + day: +args.day, + hour: +args.hour, + minute: +args.minute, + isLunar: args.isLunar === 'true', + gender: gender, + timeZone: args.timeZone ? +args.timeZone : 8, + }; + // Step 1: Yiqi 算法层 — 四柱+紫微+大运+流年 + const chart = (0, index_1.createChart)(birthInfo); + // 附加地支藏干 (含十神) + const dm = chart.bazi.dayMaster; + const z = chart.bazi.siZhu; + chart.bazi.cangGan = { + year: (0, bazi_1.getZhiCangGanFull)(z.year.zhi, dm), + month: (0, bazi_1.getZhiCangGanFull)(z.month.zhi, dm), + day: (0, bazi_1.getZhiCangGanFull)(z.day.zhi, dm), + hour: (0, bazi_1.getZhiCangGanFull)(z.hour.zhi, dm), + }; + // 补 endAge 字段 (Yiqi 只给了 startAge/endYear, OpenClaw 等下游脚本会查 endAge) + if (chart.bazi.dayun && Array.isArray(chart.bazi.dayun)) { + for (const d of chart.bazi.dayun) { + if (d.startAge !== undefined && d.endAge === undefined) { + d.endAge = d.startAge + 9; + } + } + } + // Step 2: enrichBazi 补层 — 格局/旺衰/调候/刑冲合害/盖头 + const siZhuForEnrich = { + '年': chart.bazi.siZhu.year, + '月': chart.bazi.siZhu.month, + '日': chart.bazi.siZhu.day, + '时': chart.bazi.siZhu.hour, + }; + chart.bazi.enrichment = (0, enrich_1.enrichBazi)(siZhuForEnrich); + const json = JSON.stringify(chart, null, 2); + if (args.output) { + fs.writeFileSync(args.output, json, 'utf-8'); + console.error(`Chart written to ${args.output}`); + } + else { + process.stdout.write(json); + } +} +main(); diff --git a/calculator/dist/yiqi-core/bazi.js b/calculator/dist/yiqi-core/bazi.js new file mode 100644 index 0000000..1165061 --- /dev/null +++ b/calculator/dist/yiqi-core/bazi.js @@ -0,0 +1,319 @@ +"use strict"; +// 八字排盘核心算法(使用lunar-javascript库) +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getZhiCangGanFull = getZhiCangGanFull; +exports.createBaziChart = createBaziChart; +exports.runBaziTests = runBaziTests; +const lunar_typescript_1 = require("lunar-typescript"); +const zhangsheng_1 = require("./zhangsheng"); +const nayin_1 = require("./nayin"); +const jieqi_1 = require("./jieqi"); +/** + * 十神关系映射 + */ +const SHISHEN_MAP = { + '甲': { '甲': '比肩', '乙': '劫财', '丙': '食神', '丁': '伤官', '戊': '偏财', '己': '正财', '庚': '七杀', '辛': '正官', '壬': '偏印', '癸': '正印' }, + '乙': { '甲': '劫财', '乙': '比肩', '丙': '伤官', '丁': '食神', '戊': '正财', '己': '偏财', '庚': '正官', '辛': '七杀', '壬': '正印', '癸': '偏印' }, + '丙': { '甲': '偏印', '乙': '正印', '丙': '比肩', '丁': '劫财', '戊': '食神', '己': '伤官', '庚': '偏财', '辛': '正财', '壬': '七杀', '癸': '正官' }, + '丁': { '甲': '正印', '乙': '偏印', '丙': '劫财', '丁': '比肩', '戊': '伤官', '己': '食神', '庚': '正财', '辛': '偏财', '壬': '正官', '癸': '七杀' }, + '戊': { '甲': '七杀', '乙': '正官', '丙': '偏印', '丁': '正印', '戊': '比肩', '己': '劫财', '庚': '食神', '辛': '伤官', '壬': '偏财', '癸': '正财' }, + '己': { '甲': '正官', '乙': '七杀', '丙': '正印', '丁': '偏印', '戊': '劫财', '己': '比肩', '庚': '伤官', '辛': '食神', '壬': '正财', '癸': '偏财' }, + '庚': { '甲': '偏财', '乙': '正财', '丙': '七杀', '丁': '正官', '戊': '偏印', '己': '正印', '庚': '比肩', '辛': '劫财', '壬': '食神', '癸': '伤官' }, + '辛': { '甲': '正财', '乙': '偏财', '丙': '正官', '丁': '七杀', '戊': '正印', '己': '偏印', '庚': '劫财', '辛': '比肩', '壬': '伤官', '癸': '食神' }, + '壬': { '甲': '食神', '乙': '伤官', '丙': '偏财', '丁': '正财', '戊': '七杀', '己': '正官', '庚': '偏印', '辛': '正印', '壬': '比肩', '癸': '劫财' }, + '癸': { '甲': '伤官', '乙': '食神', '丙': '正财', '丁': '偏财', '戊': '正官', '己': '七杀', '庚': '正印', '辛': '偏印', '壬': '劫财', '癸': '比肩' } +}; +/** + * 地支藏干(主气)映射 + */ +const DIZHI_CANGGAN = { + '子': '癸', '丑': '己', '寅': '甲', '卯': '乙', + '辰': '戊', '巳': '丙', '午': '丁', '未': '己', + '申': '庚', '酉': '辛', '戌': '戊', '亥': '壬' +}; +/** + * 地支藏干(完整)映射 - 每个地支包含本气、中气、余气 + */ +const DIZHI_CANGGAN_FULL = { + '子': ['癸'], + '丑': ['己', '癸', '辛'], + '寅': ['甲', '丙', '戊'], + '卯': ['乙'], + '辰': ['戊', '乙', '癸'], + '巳': ['丙', '庚', '戊'], + '午': ['丁', '己'], + '未': ['己', '丁', '乙'], + '申': ['庚', '壬', '戊'], + '酉': ['辛'], + '戌': ['戊', '辛', '丁'], + '亥': ['壬', '甲'] +}; +/** + * 获取十神关系 + */ +function getShiShen(dayGan, targetGan) { + return SHISHEN_MAP[dayGan]?.[targetGan] || '未知'; +} +/** + * 获取地支藏干主气 + */ +function getZhiCangGan(zhi) { + return DIZHI_CANGGAN[zhi] || '未知'; +} +/** + * 获取地支完整藏干(含所有藏干及其十神) + * @param zhi 地支 + * @param dayMaster 日主天干 + * @returns 藏干数组,每项包含天干和对应十神 + */ +function getZhiCangGanFull(zhi, dayMaster) { + const cangGanList = DIZHI_CANGGAN_FULL[zhi] || []; + return cangGanList.map((gan) => ({ + gan, + shiShen: getShiShen(dayMaster, gan) + })); +} +/** + * 处理晚子时(23:00-24:00)的日柱 + * 在传统命理中,晚子时应该使用第二天的日柱 + * @param solar Solar对象 + * @returns 调整后的Solar对象(如果是晚子时) + */ +function getAdjustedSolarForZiShi(solar) { + const hour = solar.getHour(); + // 如果是晚子时(23:00-24:00),使用第二天的日期计算日柱 + if (hour === 23) { + console.error('[晚子时处理] 23点,使用第二天的日柱'); + // 获取第二天的日期 + const nextDay = solar.next(1); // 下一天 + return nextDay; + } + return solar; +} +/** + * 创建八字排盘(使用lunar-javascript库) + * @param birthInfo 生辰信息 + * @returns 八字排盘结果 + */ +function createBaziChart(birthInfo) { + try { + // 创建Solar对象(公历日期) + const solar = lunar_typescript_1.Solar.fromYmdHms(birthInfo.year, birthInfo.month, birthInfo.day, birthInfo.hour, birthInfo.minute, 0); + // 处理晚子时(23:00-24:00),使用第二天的日柱 + const solarForDay = getAdjustedSolarForZiShi(solar); + const lunarForDay = solarForDay.getLunar(); + const baZiForDay = lunarForDay.getEightChar(); + // 转换为农历(用于年柱、月柱、时柱) + const lunar = solar.getLunar(); + // 获取八字 + const baZi = lunar.getEightChar(); + // 使用精确节气时刻计算月柱 + const accurateMonthGZ = (0, jieqi_1.getAccurateMonthGanZhi)(solar); + // 获取四柱干支 + const siZhu = { + year: { + gan: baZi.getYear().substring(0, 1), + zhi: baZi.getYear().substring(1, 2) + }, + month: { + gan: accurateMonthGZ.gan, // 使用精确节气计算的月柱 + zhi: accurateMonthGZ.zhi, // 使用精确节气计算的月柱 + }, + day: { + gan: baZiForDay.getDay().substring(0, 1), // 使用调整后的日柱(处理晚子时) + zhi: baZiForDay.getDay().substring(1, 2) // 使用调整后的日柱(处理晚子时) + }, + hour: { + gan: baZi.getTime().substring(0, 1), + zhi: baZi.getTime().substring(1, 2) + } + }; + const dayMaster = siZhu.day.gan; + // 计算十神 + const shiShen = { + year: getShiShen(dayMaster, siZhu.year.gan), + month: getShiShen(dayMaster, siZhu.month.gan), + day: getShiShen(dayMaster, siZhu.day.gan), + hour: getShiShen(dayMaster, siZhu.hour.gan) + }; + // 获取大运(使用lunar-javascript库) + const yun = baZi.getYun(birthInfo.gender === 'male' ? 1 : 0); + const dayunStart = Math.floor(yun.getStartYear()); + // 获取大运列表(跳过第一个,因为它是起运前的状态) + const dayunList = yun.getDaYun().slice(1, 11); // 取第2-11个,共10步大运 + const dayun = dayunList.map((d) => { + const ganZhiStr = d.getGanZhi(); + const ganZhi = { + gan: ganZhiStr.substring(0, 1), + zhi: ganZhiStr.substring(1, 2) + }; + // 计算天干十神 + const ganShiShen = getShiShen(dayMaster, ganZhi.gan); + // 计算地支藏干的十神 + const zhiCangGan = getZhiCangGan(ganZhi.zhi); + const zhiShiShen = getShiShen(dayMaster, zhiCangGan); + // 获取该大运内的流年 + const liuNianList = d.getLiuNian(); + const liuNian = liuNianList.map((ln) => { + const lnGanZhiStr = ln.getGanZhi(); + return { + year: ln.getYear(), + age: ln.getAge(), + ganZhi: { + gan: lnGanZhiStr.substring(0, 1), + zhi: lnGanZhiStr.substring(1, 2) + } + }; + }); + return { + ganZhi, + startAge: d.getStartAge(), + startYear: d.getStartYear(), + endYear: d.getEndYear(), + ganShiShen, + zhiShiShen, + liuNian + }; + }); + // 计算十二长生(星运)- zhangSheng 不是 changSheng + const zhangSheng = (0, zhangsheng_1.getSiZhuChangSheng)(dayMaster, { + year: siZhu.year.zhi, + month: siZhu.month.zhi, + day: siZhu.day.zhi, + hour: siZhu.hour.zhi + }); + // 计算纳音 + const naYin = (0, nayin_1.getSiZhuNaYin)(siZhu); + console.error('🔍 八字计算结果 - zhangSheng:', zhangSheng); + console.error('🔍 八字计算结果 - naYin:', naYin); + return { + birthInfo, + siZhu, + dayMaster, + shiShen, + zhangSheng, + naYin, + dayunStart, + dayun + }; + } + catch (error) { + console.error('创建八字排盘失败:', error); + throw new Error('八字排盘计算失败: ' + error.message); + } +} +/** + * 运行八字测试 + */ +function runBaziTests() { + const testCases = [ + { + name: '1979年5月4日6点男命(己年为阴年,男命逆排)', + input: { year: 1979, month: 5, day: 4, hour: 6, minute: 0, gender: 'male', isLunar: false, timeZone: 8 }, + expected: { + year: '己未', + month: '戊辰', + day: '辛未', + hour: '辛卯', + isYangYear: false, // 己为阴年 + shouldShunPai: false // 阴年男命逆排 + } + }, + { + name: '2000年1月1日12点女命(己年为阴年,女命顺排)', + input: { year: 2000, month: 1, day: 1, hour: 12, minute: 0, gender: 'female', isLunar: false, timeZone: 8 }, + expected: { + year: '己卯', + month: '丙子', + day: '戊午', + hour: '戊午', + isYangYear: false, // 己为阴年 + shouldShunPai: true // 阴年女命顺排 + } + }, + { + name: '1988年8月15日10点男命(戊年为阳年,男命顺排)', + input: { year: 1988, month: 8, day: 15, hour: 10, minute: 0, gender: 'male', isLunar: false, timeZone: 8 }, + expected: { + isYangYear: true, // 戊为阳年 + shouldShunPai: true // 阳年男命顺排 + } + }, + { + name: '1987年3月20日14点女命(丁年为阴年,女命顺排)', + input: { year: 1987, month: 3, day: 20, hour: 14, minute: 0, gender: 'female', isLunar: false, timeZone: 8 }, + expected: { + isYangYear: false, // 丁为阴年 + shouldShunPai: true // 阴年女命顺排 + } + }, + { + name: '2000年3月1日12点女命(庚年为阳年,女命逆排)', + input: { year: 2000, month: 3, day: 1, hour: 12, minute: 0, gender: 'female', isLunar: false, timeZone: 8 }, + expected: { + year: '庚辰', + month: '戊寅', + day: '乙卯', + hour: '壬午', + isYangYear: true, // 庚为阳年 + shouldShunPai: false // 阳年女命逆排 + } + } + ]; + const results = { + passed: 0, + failed: 0, + details: [] + }; + testCases.forEach((testCase) => { + try { + const result = createBaziChart(testCase.input); + const actualYear = result.siZhu.year.gan + result.siZhu.year.zhi; + const actualMonth = result.siZhu.month.gan + result.siZhu.month.zhi; + const actualDay = result.siZhu.day.gan + result.siZhu.day.zhi; + const actualHour = result.siZhu.hour.gan + result.siZhu.hour.zhi; + // 检查年干阴阳和大运顺逆 + const yearGanIndex = ['甲', '乙', '丙', '丁', '戊', '己', '庚', '辛', '壬', '癸'].indexOf(result.siZhu.year.gan); + const isYangYear = yearGanIndex % 2 === 0; + const isMale = testCase.input.gender === 'male'; + const shouldShunPai = (isYangYear && isMale) || (!isYangYear && !isMale); + const yearPass = testCase.expected.year ? actualYear === testCase.expected.year : true; + const monthPass = testCase.expected.month ? actualMonth === testCase.expected.month : true; + const dayPass = testCase.expected.day ? actualDay === testCase.expected.day : true; + const hourPass = testCase.expected.hour ? actualHour === testCase.expected.hour : true; + const yinYangPass = isYangYear === testCase.expected.isYangYear; + const shunPaiPass = shouldShunPai === testCase.expected.shouldShunPai; + const allPass = yearPass && monthPass && dayPass && hourPass && yinYangPass && shunPaiPass; + if (allPass) { + results.passed++; + } + else { + results.failed++; + } + results.details.push({ + name: testCase.name, + passed: allPass, + expected: testCase.expected, + actual: { + year: actualYear, + month: actualMonth, + day: actualDay, + hour: actualHour, + isYangYear, + shouldShunPai, + dayun: result.dayun.slice(0, 3).map(d => d.ganZhi.gan + d.ganZhi.zhi) // 只显示前3步大运 + }, + details: { yearPass, monthPass, dayPass, hourPass, yinYangPass, shunPaiPass } + }); + } + catch (error) { + results.failed++; + results.details.push({ + name: testCase.name, + passed: false, + error: error.message + }); + } + }); + return results; +} diff --git a/calculator/dist/yiqi-core/daxian.js b/calculator/dist/yiqi-core/daxian.js new file mode 100644 index 0000000..8f63477 --- /dev/null +++ b/calculator/dist/yiqi-core/daxian.js @@ -0,0 +1,99 @@ +"use strict"; +// 大运计算模块 +Object.defineProperty(exports, "__esModule", { value: true }); +exports.calculateDaXian = calculateDaXian; +exports.getCurrentDaXian = getCurrentDaXian; +exports.getDaXianForGong = getDaXianForGong; +exports.calculateXuSui = calculateXuSui; +exports.getLiuNianGanZhi = getLiuNianGanZhi; +exports.getGongIndexByZhi = getGongIndexByZhi; +/** + * 天干数组 + */ +const TIANGAN = ['甲', '乙', '丙', '丁', '戊', '己', '庚', '辛', '壬', '癸']; +/** + * 地支数组 + */ +const DIZHI = ['子', '丑', '寅', '卯', '辰', '巳', '午', '未', '申', '酉', '戌', '亥']; +/** + * 计算大运信息 + * @param mingGongIndex 命宫索引(0-11,子=0) + * @param yinYang 阴阳男女 + * @param wuXingJuNumber 五行局数(2,3,4,5,6) + * @param currentAge 当前年龄(虚岁),用于标记当前大运 + * @returns 大运信息数组(10个大运) + */ +function calculateDaXian(mingGongIndex, yinYang, wuXingJuNumber, currentAge = 0) { + const daXianList = []; + // 判断大运方向 + // 阳男、阴女:大限顺时针走(地支索引递增:丑→寅→卯...) + // 阴男、阳女:大限逆时针走(地支索引递减:丑→子→亥...) + const isShunShiZhen = yinYang === '阳男' || yinYang === '阴女'; + const direction = isShunShiZhen ? 'shun' : 'ni'; + // 起运年龄由五行局决定 + const startAge = wuXingJuNumber; + // 生成12个大运(每个大运管10年) + for (let i = 0; i < 12; i++) { + const age = startAge + i * 10; + const endAge = age + 9; + // 计算大运宫位(从命宫开始) + // gongIndex 是地支索引(0-11:子丑寅卯辰巳午未申酉戌亥) + let gongIndex; + if (isShunShiZhen) { + // 阳男、阴女:顺时针走,地支索引递增 + // 例如命宫在丑(1),第1大限在丑(1),第2大限在寅(2),第3大限在卯(3) + gongIndex = (mingGongIndex + i) % 12; + } + else { + // 阴男、阳女:逆时针走,地支索引递减 + // 例如命宫在丑(1),第1大限在丑(1),第2大限在子(0),第3大限在亥(11) + gongIndex = (mingGongIndex - i + 12) % 12; + } + daXianList.push({ + gongIndex, + startAge: age, + endAge, + ganZhi: '', // 这里可以添加大运干支,暂时留空 + direction + }); + } + return daXianList; +} +/** + * 计算当前年龄的大运 + */ +function getCurrentDaXian(daXianList, age) { + return daXianList.find(dx => age >= dx.startAge && age <= dx.endAge) || null; +} +/** + * 获取宫位的大运信息 + */ +function getDaXianForGong(gongIndex, daXianList) { + return daXianList.find(dx => dx.gongIndex === gongIndex) || null; +} +/** + * 计算虚岁 + */ +function calculateXuSui(birthYear, currentYear = new Date().getFullYear()) { + return currentYear - birthYear + 1; +} +/** + * 计算流年干支 + * @param year 公历年份 + */ +function getLiuNianGanZhi(year) { + const ganIndex = (year - 4) % 10; // 甲子年是1984年,1984-4=1980,1980%10=0 + const zhiIndex = (year - 4) % 12; + return { + gan: TIANGAN[ganIndex], + zhi: DIZHI[zhiIndex] + }; +} +/** + * 根据流年地支获取宫位索引 + * @param zhi 地支 + * @returns 宫位索引(0=子,1=丑,...,11=亥) + */ +function getGongIndexByZhi(zhi) { + return DIZHI.indexOf(zhi); +} diff --git a/calculator/dist/yiqi-core/ganzhi.js b/calculator/dist/yiqi-core/ganzhi.js new file mode 100644 index 0000000..8f589c9 --- /dev/null +++ b/calculator/dist/yiqi-core/ganzhi.js @@ -0,0 +1,145 @@ +"use strict"; +// 天干地支基础数据和工具函数 +Object.defineProperty(exports, "__esModule", { value: true }); +exports.SHISHEN_MAP = exports.DIZHI_MONTH = exports.DIZHI_WUXING = exports.TIANGAN_WUXING = exports.DIZHI = exports.TIANGAN = void 0; +exports.getTiangan = getTiangan; +exports.getDizhi = getDizhi; +exports.getTianganIndex = getTianganIndex; +exports.getDizhiIndex = getDizhiIndex; +exports.getYearGanZhi = getYearGanZhi; +exports.getDayGanZhi = getDayGanZhi; +exports.getHourGanZhi = getHourGanZhi; +exports.getShiShen = getShiShen; +// 天干数组 +exports.TIANGAN = ['甲', '乙', '丙', '丁', '戊', '己', '庚', '辛', '壬', '癸']; +// 地支数组 +exports.DIZHI = ['子', '丑', '寅', '卯', '辰', '巳', '午', '未', '申', '酉', '戌', '亥']; +// 天干五行属性 +exports.TIANGAN_WUXING = { + '甲': '木', '乙': '木', + '丙': '火', '丁': '火', + '戊': '土', '己': '土', + '庚': '金', '辛': '金', + '壬': '水', '癸': '水' +}; +// 地支五行属性 +exports.DIZHI_WUXING = { + '子': '水', '丑': '土', '寅': '木', '卯': '木', + '辰': '土', '巳': '火', '午': '火', '未': '土', + '申': '金', '酉': '金', '戌': '土', '亥': '水' +}; +// 地支对应的月份(节气月) +exports.DIZHI_MONTH = { + '寅': 1, '卯': 2, '辰': 3, '巳': 4, '午': 5, '未': 6, + '申': 7, '酉': 8, '戌': 9, '亥': 10, '子': 11, '丑': 12 +}; +// 十神关系表(以日干为中心) +exports.SHISHEN_MAP = { + '甲': { '甲': '比肩', '乙': '劫财', '丙': '食神', '丁': '伤官', '戊': '偏财', '己': '正财', '庚': '七杀', '辛': '正官', '壬': '偏印', '癸': '正印' }, + '乙': { '甲': '劫财', '乙': '比肩', '丙': '伤官', '丁': '食神', '戊': '正财', '己': '偏财', '庚': '正官', '辛': '七杀', '壬': '正印', '癸': '偏印' }, + '丙': { '甲': '偏印', '乙': '正印', '丙': '比肩', '丁': '劫财', '戊': '食神', '己': '伤官', '庚': '偏财', '辛': '正财', '壬': '七杀', '癸': '正官' }, + '丁': { '甲': '正印', '乙': '偏印', '丙': '劫财', '丁': '比肩', '戊': '伤官', '己': '食神', '庚': '正财', '辛': '偏财', '壬': '正官', '癸': '七杀' }, + '戊': { '甲': '七杀', '乙': '正官', '丙': '偏印', '丁': '正印', '戊': '比肩', '己': '劫财', '庚': '食神', '辛': '伤官', '壬': '偏财', '癸': '正财' }, + '己': { '甲': '正官', '乙': '七杀', '丙': '正印', '丁': '偏印', '戊': '劫财', '己': '比肩', '庚': '伤官', '辛': '食神', '壬': '正财', '癸': '偏财' }, + '庚': { '甲': '偏财', '乙': '正财', '丙': '七杀', '丁': '正官', '戊': '偏印', '己': '正印', '庚': '比肩', '辛': '劫财', '壬': '食神', '癸': '伤官' }, + '辛': { '甲': '正财', '乙': '偏财', '丙': '正官', '丁': '七杀', '戊': '正印', '己': '偏印', '庚': '劫财', '辛': '比肩', '壬': '伤官', '癸': '食神' }, + '壬': { '甲': '食神', '乙': '伤官', '丙': '偏财', '丁': '正财', '戊': '七杀', '己': '正官', '庚': '偏印', '辛': '正印', '壬': '比肩', '癸': '劫财' }, + '癸': { '甲': '伤官', '乙': '食神', '丙': '正财', '丁': '偏财', '戊': '正官', '己': '七杀', '庚': '正印', '辛': '偏印', '壬': '劫财', '癸': '比肩' } +}; +/** + * 根据数字获取天干 + * @param num 数字(0-9 对应甲-癸,支持更大数字取模) + * @returns 对应的天干 + */ +function getTiangan(num) { + return exports.TIANGAN[num % 10]; +} +/** + * 根据数字获取地支 + * @param num 数字(0-11 对应子-亥,支持更大数字取模) + * @returns 对应的地支 + */ +function getDizhi(num) { + return exports.DIZHI[num % 12]; +} +/** + * 获取天干的序号 + * @param gan 天干 + * @returns 序号(0-9) + */ +function getTianganIndex(gan) { + return exports.TIANGAN.indexOf(gan); +} +/** + * 获取地支的序号 + * @param zhi 地支 + * @returns 序号(0-11) + */ +function getDizhiIndex(zhi) { + return exports.DIZHI.indexOf(zhi); +} +/** + * 根据年份获取干支 + * @param year 公历年份 + * @returns 对应的干支 + */ +function getYearGanZhi(year) { + // 采用标准算法:以公元4年甲子年为起点 + // 天干循环:(year - 4) % 10 + // 地支循环:(year - 4) % 12 + const ganIndex = (year - 4) % 10; + const zhiIndex = (year - 4) % 12; + return { + gan: getTiangan(ganIndex), + zhi: getDizhi(zhiIndex) + }; +} +/** + * 根据日期获取日干支(使用Date对象计算) + * @param year 年 + * @param month 月 + * @param day 日 + * @returns 对应的干支 + */ +function getDayGanZhi(year, month, day) { + // 计算从1900年1月1日到目标日期的天数差 + const baseDate = new Date(1900, 0, 1); // 1900年1月1日 + const targetDate = new Date(year, month - 1, day); // 目标日期 + const daysDiff = Math.floor((targetDate.getTime() - baseDate.getTime()) / (1000 * 60 * 60 * 24)); + // 1900年1月1日是己丑日(天干索引5,地支索引1) + const ganIndex = (daysDiff + 5) % 10; + const zhiIndex = (daysDiff + 1) % 12; + return { + gan: getTiangan(ganIndex >= 0 ? ganIndex : ganIndex + 10), + zhi: getDizhi(zhiIndex >= 0 ? zhiIndex : zhiIndex + 12) + }; +} +/** + * 根据时辰获取时干支 + * @param dayGan 日干 + * @param hour 时辰(0-23) + * @returns 对应的干支 + */ +function getHourGanZhi(dayGan, hour) { + // 确定时支 + const zhiIndex = Math.floor((hour + 1) / 2) % 12; + const zhi = getDizhi(zhiIndex); + // 根据日干推算时干(五鼠遁法) + const dayGanIndex = getTianganIndex(dayGan); + const hourGanBaseMap = [0, 2, 4, 6, 8, 0, 2, 4, 6, 8]; // 甲己起甲子,乙庚起丙子... + const hourGanBase = hourGanBaseMap[dayGanIndex]; + const ganIndex = (hourGanBase + zhiIndex) % 10; + return { + gan: getTiangan(ganIndex), + zhi: zhi + }; +} +/** + * 获取十神关系 + * @param dayGan 日干 + * @param targetGan 目标天干 + * @returns 十神关系 + */ +function getShiShen(dayGan, targetGan) { + return exports.SHISHEN_MAP[dayGan][targetGan]; +} diff --git a/calculator/dist/yiqi-core/index.js b/calculator/dist/yiqi-core/index.js new file mode 100644 index 0000000..5a782da --- /dev/null +++ b/calculator/dist/yiqi-core/index.js @@ -0,0 +1,142 @@ +"use strict"; +// 统一排盘接口 +Object.defineProperty(exports, "__esModule", { value: true }); +exports.EXAMPLE_BIRTH_INFO = void 0; +exports.createChart = createChart; +exports.validateBirthInfo = validateBirthInfo; +exports.runAllTests = runAllTests; +exports.formatChartResult = formatChartResult; +const bazi_1 = require("./bazi"); +const ziwei_standard_1 = require("./ziwei-standard"); +/** + * 创建完整的排盘(八字 + 紫微斗数) + * @param birthInfo 生辰信息 + * @returns 完整排盘结果 + */ +function createChart(birthInfo) { + try { + const bazi = (0, bazi_1.createBaziChart)(birthInfo); + const ziwei = (0, ziwei_standard_1.createZiweiChart)(birthInfo); + return { + bazi, + ziwei + }; + } + catch (error) { + throw new Error(`排盘计算失败: ${error instanceof Error ? error.message : String(error)}`); + } +} +/** + * 验证生辰信息的有效性 + * @param birthInfo 生辰信息 + * @returns 验证结果 + */ +function validateBirthInfo(birthInfo) { + const errors = []; + // 验证年份 + if (birthInfo.year < 1900 || birthInfo.year > 2100) { + errors.push('年份应在1900-2100之间'); + } + // 验证月份 + if (birthInfo.month < 1 || birthInfo.month > 12) { + errors.push('月份应在1-12之间'); + } + // 验证日期 + if (birthInfo.day < 1 || birthInfo.day > 31) { + errors.push('日期应在1-31之间'); + } + // 验证时辰 + if (birthInfo.hour < 0 || birthInfo.hour > 23) { + errors.push('小时应在0-23之间'); + } + // 验证分钟 + if (birthInfo.minute < 0 || birthInfo.minute > 59) { + errors.push('分钟应在0-59之间'); + } + // 验证性别 + if (birthInfo.gender !== 'male' && birthInfo.gender !== 'female') { + errors.push('性别必须为男性或女性'); + } + // 简单的闰年和月份天数验证 + if (birthInfo.month === 2) { + const isLeapYear = (birthInfo.year % 4 === 0 && birthInfo.year % 100 !== 0) || (birthInfo.year % 400 === 0); + if (birthInfo.day > (isLeapYear ? 29 : 28)) { + errors.push('2月份日期超出范围'); + } + } + else if ([4, 6, 9, 11].includes(birthInfo.month)) { + if (birthInfo.day > 30) { + errors.push('该月份只有30天'); + } + } + return { + valid: errors.length === 0, + errors + }; +} +/** + * 运行所有算法测试 + * @returns 综合测试结果 + */ +function runAllTests() { + const baziResults = (0, bazi_1.runBaziTests)(); + const ziweiResults = (0, ziwei_standard_1.runZiweiTests)(); + const totalPassed = baziResults.passed + ziweiResults.passed; + const totalFailed = baziResults.failed + ziweiResults.failed; + return { + bazi: baziResults, + ziwei: ziweiResults, + summary: { + totalPassed, + totalFailed, + success: totalFailed === 0 + } + }; +} +/** + * 格式化排盘结果为可读字符串(用于调试) + * @param chart 排盘结果 + * @returns 格式化的字符串 + */ +function formatChartResult(chart) { + let result = '=== 排盘结果 ===\n\n'; + // 八字部分 + result += '【八字排盘】\n'; + result += `年柱: ${chart.bazi.siZhu.year.gan}${chart.bazi.siZhu.year.zhi}\n`; + result += `月柱: ${chart.bazi.siZhu.month.gan}${chart.bazi.siZhu.month.zhi}\n`; + result += `日柱: ${chart.bazi.siZhu.day.gan}${chart.bazi.siZhu.day.zhi}\n`; + result += `时柱: ${chart.bazi.siZhu.hour.gan}${chart.bazi.siZhu.hour.zhi}\n`; + result += `日主: ${chart.bazi.dayMaster}\n`; + result += `大运起运: ${chart.bazi.dayunStart}岁\n`; + result += `前三步大运: ${chart.bazi.dayun.slice(0, 3).map(dy => `${dy.ganZhi.gan}${dy.ganZhi.zhi}`).join(' ')}\n\n`; + // 紫微斗数部分 + result += '【紫微斗数】\n'; + result += `命宫: ${chart.ziwei.gongs[0].dizhi}宫\n`; + const shenGongDizhi = chart.ziwei.gongs[chart.ziwei.shenGongIndex]?.dizhi || '未知'; + result += `身宫: ${shenGongDizhi}宫\n`; + // 显示有主星的宫位 + chart.ziwei.gongs.forEach(gong => { + if (gong.mainStars.length > 0) { + result += `${gong.gong}(${gong.dizhi}): ${gong.mainStars.join('、')}`; + if (gong.auxStars.length > 0) { + result += ` [${gong.auxStars.join('、')}]`; + } + if (gong.sihua.length > 0) { + result += ` {${gong.sihua.map(s => `${s.star}${s.hua}`).join('、')}}`; + } + result += '\n'; + } + }); + return result; +} +// 导出示例用法 +exports.EXAMPLE_BIRTH_INFO = { + year: 1990, + month: 5, + day: 15, + hour: 14, + minute: 30, + isLunar: false, + gender: 'male', + timeZone: 8 +}; diff --git a/calculator/dist/yiqi-core/jieqi.js b/calculator/dist/yiqi-core/jieqi.js new file mode 100644 index 0000000..31a325e --- /dev/null +++ b/calculator/dist/yiqi-core/jieqi.js @@ -0,0 +1,165 @@ +"use strict"; +// 节气计算模块 +Object.defineProperty(exports, "__esModule", { value: true }); +exports.JIEQI_MONTHS = exports.JIEQI_NAMES = void 0; +exports.calculateJieqi = calculateJieqi; +exports.getJieqiMonth = getJieqiMonth; +exports.getMonthGanZhi = getMonthGanZhi; +exports.getAccurateMonthGanZhi = getAccurateMonthGanZhi; +exports.getJieQiTime = getJieQiTime; +// 24节气名称 +exports.JIEQI_NAMES = [ + '小寒', '大寒', '立春', '雨水', '惊蛰', '春分', + '清明', '谷雨', '立夏', '小满', '芒种', '夏至', + '小暑', '大暑', '立秋', '处暑', '白露', '秋分', + '寒露', '霜降', '立冬', '小雪', '大雪', '冬至' +]; +// 节气对应的地支月(立春开始为寅月) +exports.JIEQI_MONTHS = [ + 11, 11, 0, 0, 1, 1, // 小寒(子月), 大寒(子月), 立春(寅月), 雨水(寅月), 惊蛰(卯月), 春分(卯月) + 2, 2, 3, 3, 4, 4, // 清明(辰月), 谷雨(辰月), 立夏(巳月), 小满(巳月), 芒种(午月), 夏至(午月) + 5, 5, 6, 6, 7, 7, // 小暑(未月), 大暑(未月), 立秋(申月), 处暑(申月), 白露(酉月), 秋分(酉月) + 8, 8, 9, 9, 10, 10 // 寒露(戌月), 霜降(戌月), 立冬(亥月), 小雪(亥月), 大雪(子月), 冬至(子月) +]; +/** + * 计算指定年份的节气时刻(简化算法) + * 注:这是一个简化版本,实际应用中需要更精确的天文算法 + * @param year 年份 + * @returns 24个节气的儒略日时刻 + */ +function calculateJieqi(year) { + const jieqiTimes = []; + // 基础数据:2000年各节气的大致日期(儒略日) + const base2000 = [ + 2451549.5, 2451564.5, 2451579.5, 2451594.5, 2451609.5, 2451624.5, // 1-6 + 2451639.5, 2451654.5, 2451670.5, 2451685.5, 2451700.5, 2451715.5, // 7-12 + 2451730.5, 2451745.5, 2451761.5, 2451776.5, 2451791.5, 2451806.5, // 13-18 + 2451821.5, 2451836.5, 2451852.5, 2451867.5, 2451882.5, 2451897.5 // 19-24 + ]; + const yearDiff = year - 2000; + for (let i = 0; i < 24; i++) { + // 简化计算:每年节气时间的平均变化 + const dayOffset = yearDiff * 365.2422 - Math.floor(yearDiff / 4) + Math.floor(yearDiff / 100) - Math.floor(yearDiff / 400); + jieqiTimes.push(base2000[i] + dayOffset); + } + return jieqiTimes; +} +/** + * 根据公历日期确定节气月(干支月) + * @param year 年 + * @param month 月 + * @param day 日 + * @returns 地支月份的索引(0-11对应寅-丑) + */ +function getJieqiMonth(year, month, day) { + const jieqiTimes = calculateJieqi(year); + // 计算当前日期的儒略日 + const a = Math.floor((14 - month) / 12); + const y = year - a; + const m = month + 12 * a - 3; + const currentJD = day + Math.floor((153 * m + 2) / 5) + 365 * y + + Math.floor(y / 4) - Math.floor(y / 100) + Math.floor(y / 400) + 1721119; + // 找到当前日期所在的节气区间 + for (let i = 0; i < 24; i += 2) { // 只检查节气(奇数索引是中气) + const jieqi = jieqiTimes[i]; + const nextJieqi = i + 2 < 24 ? jieqiTimes[i + 2] : jieqiTimes[2] + 365.25; // 下一个节气或明年立春 + if (currentJD >= jieqi && currentJD < nextJieqi) { + return exports.JIEQI_MONTHS[i]; + } + } + // 默认返回子月 + return 11; +} +/** + * 获取月干支 + * @param year 年 + * @param month 月 + * @param day 日 + * @returns 月干支 + */ +function getMonthGanZhi(year, month, day) { + const jieqiMonth = getJieqiMonth(year, month, day); + const yearGanIndex = (year - 4) % 10; // 使用修正后的年干算法 + // 月干推算:甲己之年丙作首(正月为丙寅) + const monthGanBaseMap = [2, 4, 6, 8, 0, 2, 4, 6, 8, 0]; // 甲年丙寅,乙年戊寅... + const monthGanBase = monthGanBaseMap[yearGanIndex]; + const monthGanIndex = (monthGanBase + jieqiMonth) % 10; + return { + gan: ['甲', '乙', '丙', '丁', '戊', '己', '庚', '辛', '壬', '癸'][monthGanIndex], + zhi: ['寅', '卯', '辰', '巳', '午', '未', '申', '酉', '戌', '亥', '子', '丑'][jieqiMonth] + }; +} +/** + * 获取当前时刻应该使用的月柱(基于精确节气时刻) + * + * lunar-javascript默认在节气当日的子时(00:00)就换月柱, + * 但传统命理应该在节气的精确时刻才换月柱。 + * + * 例如:某年立秋在公历8月初,那么: + * - 8月8日 02:28 应该用乙未月(立秋前) + * - 8月8日 10:00 应该用丙申月(立秋后) + * + * @param solar Solar对象(来自lunar-javascript) + * @returns 月柱干支 + */ +function getAccurateMonthGanZhi(solar) { + const lunar = solar.getLunar(); + // 获取lunar-javascript给出的月柱(默认在子时换月) + const defaultMonthGZ = lunar.getMonthInGanZhi(); + // 获取当前节令(节气) + const currentJieQi = lunar.getJieQi(); + // 获取节气表 + const jieQiTable = lunar.getJieQiTable(); + const jieQiSolar = jieQiTable[currentJieQi]; + if (!jieQiSolar) { + // 没有节气信息,使用默认值 + return parseGanZhi(defaultMonthGZ); + } + // 判断是否在节气当日 + const isJieQiDay = solar.getYear() === jieQiSolar.getYear() && + solar.getMonth() === jieQiSolar.getMonth() && + solar.getDay() === jieQiSolar.getDay(); + if (!isJieQiDay) { + // 不在节气当日,直接使用默认值 + return parseGanZhi(defaultMonthGZ); + } + // 在节气当日,需要判断是否已过节气时刻 + const solarTime = solar.getHour() * 3600 + solar.getMinute() * 60 + solar.getSecond(); + const jieQiTime = jieQiSolar.getHour() * 3600 + jieQiSolar.getMinute() * 60 + jieQiSolar.getSecond(); + if (solarTime < jieQiTime) { + // 还没到节气时刻,应该使用上一个月的月柱 + // 获取前一天的月柱 + const prevDaySolar = solar.next(-1); // 往前推一天 + const prevDayLunar = prevDaySolar.getLunar(); + const prevMonthGZ = prevDayLunar.getMonthInGanZhi(); + console.error(`[节气校正] ${solar.toYmd()} ${solar.getHour()}:${solar.getMinute()} 在${currentJieQi}前,使用${prevMonthGZ}月`); + return parseGanZhi(prevMonthGZ); + } + // 已经过了节气时刻,使用当前月柱 + return parseGanZhi(defaultMonthGZ); +} +/** + * 解析干支字符串为天干地支对象 + * @param gz 干支字符串,如"甲子" + * @returns 天干地支对象 + */ +function parseGanZhi(gz) { + if (!gz || gz.length < 2) { + throw new Error(`无效的干支字符串: ${gz}`); + } + return { + gan: gz[0], + zhi: gz[1] + }; +} +/** + * 获取节气的精确时刻(用于调试和显示) + * @param solar Solar对象 + * @param jieQiName 节气名称 + * @returns 节气的Solar对象,如果找不到返回null + */ +function getJieQiTime(solar, jieQiName) { + const lunar = solar.getLunar(); + const jieQiTable = lunar.getJieQiTable(); + return jieQiTable[jieQiName] || null; +} diff --git a/calculator/dist/yiqi-core/nayin.js b/calculator/dist/yiqi-core/nayin.js new file mode 100644 index 0000000..3a4b01b --- /dev/null +++ b/calculator/dist/yiqi-core/nayin.js @@ -0,0 +1,137 @@ +"use strict"; +/** + * 纳音五行算法 + * + * 纳音是根据干支组合推算出的五行属性,每两个干支组成一个纳音。 + * 共有60个干支组合,对应30种纳音五行。 + * + * 纳音五行分为: + * - 金:海中金、金箔金、白蜡金、剑锋金、钗钏金、沙中金 + * - 木:大林木、杨柳木、松柏木、平地木、石榴木、桑柘木 + * - 水:涧下水、大溪水、长流水、天河水、大海水、泉中水 + * - 火:炉中火、山头火、霹雳火、山下火、覆灯火、天上火 + * - 土:城头土、屋上土、壁上土、大驿土、沙中土、路旁土 + */ +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getNaYin = getNaYin; +exports.getSiZhuNaYin = getSiZhuNaYin; +exports.getNaYinWuXing = getNaYinWuXing; +exports.getNaYinRelation = getNaYinRelation; +/** + * 纳音映射表 + * 根据干支组合查找对应的纳音五行 + * + * 数据来源:纳音.md + */ +const NAYIN_MAP = { + // 金系 + '甲子': '海中金', '乙丑': '海中金', + '壬寅': '金箔金', '癸卯': '金箔金', + '庚辰': '白蜡金', '辛巳': '白蜡金', + '壬申': '剑锋金', '癸酉': '剑锋金', + '庚戌': '钗钏金', '辛亥': '钗钏金', + '甲午': '沙中金', '乙未': '沙中金', + // 木系 + '戊辰': '大林木', '己巳': '大林木', + '壬午': '杨柳木', '癸未': '杨柳木', + '庚寅': '松柏木', '辛卯': '松柏木', + '戊戌': '平地木', '己亥': '平地木', + '庚申': '石榴木', '辛酉': '石榴木', + '壬子': '桑柘木', '癸丑': '桑柘木', + // 水系 + '丙子': '涧下水', '丁丑': '涧下水', + '甲寅': '大溪水', '乙卯': '大溪水', + '壬辰': '长流水', '癸巳': '长流水', + '丙午': '天河水', '丁未': '天河水', + '壬戌': '大海水', '癸亥': '大海水', + '甲申': '泉中水', '乙酉': '泉中水', + // 火系 + '丙寅': '炉中火', '丁卯': '炉中火', + '甲戌': '山头火', '乙亥': '山头火', + '戊子': '霹雳火', '己丑': '霹雳火', + '丙申': '山下火', '丁酉': '山下火', + '甲辰': '覆灯火', '乙巳': '覆灯火', + '戊午': '天上火', '己未': '天上火', + // 土系 + '戊寅': '城头土', '己卯': '城头土', + '丙戌': '屋上土', '丁亥': '屋上土', + '庚子': '壁上土', '辛丑': '壁上土', + '戊申': '大驿土', '己酉': '大驿土', + '丙辰': '沙中土', '丁巳': '沙中土', + '庚午': '路旁土', '辛未': '路旁土' +}; +/** + * 获取干支的纳音五行 + * @param tiangan 天干 + * @param dizhi 地支 + * @returns 纳音五行 + */ +function getNaYin(tiangan, dizhi) { + const key = tiangan + dizhi; + const nayin = NAYIN_MAP[key]; + if (!nayin) { + console.warn(`未找到纳音: ${key}`); + return '海中金'; // 默认值 + } + return nayin; +} +/** + * 批量获取四柱的纳音 + * @param siZhu 四柱干支 + * @returns 四柱纳音数组 + */ +function getSiZhuNaYin(siZhu) { + return { + year: getNaYin(siZhu.year.gan, siZhu.year.zhi), + month: getNaYin(siZhu.month.gan, siZhu.month.zhi), + day: getNaYin(siZhu.day.gan, siZhu.day.zhi), + hour: getNaYin(siZhu.hour.gan, siZhu.hour.zhi) + }; +} +/** + * 获取纳音的五行属性 + * @param nayin 纳音 + * @returns 五行属性(金木水火土) + */ +function getNaYinWuXing(nayin) { + if (nayin.includes('金')) + return '金'; + if (nayin.includes('木')) + return '木'; + if (nayin.includes('水')) + return '水'; + if (nayin.includes('火')) + return '火'; + if (nayin.includes('土')) + return '土'; + return '金'; // 默认值 +} +/** + * 获取纳音五行的相生相克关系 + * @param nayin1 纳音1 + * @param nayin2 纳音2 + * @returns 关系(生、克、比和) + */ +function getNaYinRelation(nayin1, nayin2) { + const wx1 = getNaYinWuXing(nayin1); + const wx2 = getNaYinWuXing(nayin2); + if (wx1 === wx2) + return '比和'; + // 相生关系:木生火、火生土、土生金、金生水、水生木 + const sheng = { + '木': '火', '火': '土', '土': '金', '金': '水', '水': '木' + }; + if (sheng[wx1] === wx2) + return '生'; + if (sheng[wx2] === wx1) + return '被生'; + // 相克关系:木克土、土克水、水克火、火克金、金克木 + const ke = { + '木': '土', '土': '水', '水': '火', '火': '金', '金': '木' + }; + if (ke[wx1] === wx2) + return '克'; + if (ke[wx2] === wx1) + return '被克'; + return '比和'; // 默认值 +} diff --git a/calculator/dist/yiqi-core/sihua.js b/calculator/dist/yiqi-core/sihua.js new file mode 100644 index 0000000..10d7fe9 --- /dev/null +++ b/calculator/dist/yiqi-core/sihua.js @@ -0,0 +1,115 @@ +"use strict"; +// 紫微斗数四化系统 +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getSiHuaByGan = getSiHuaByGan; +exports.calculateFeiHua = calculateFeiHua; +exports.addBenMingSiHua = addBenMingSiHua; +exports.getSiHuaColor = getSiHuaColor; +exports.getSiHuaShort = getSiHuaShort; +/** + * 四化星曜(按年干) + * 格式:{ 年干: { 化禄, 化权, 化科, 化忌 } } + */ +const SIHUA_BY_YEAR_GAN = { + '甲': { lu: '廉贞', quan: '破军', ke: '武曲', ji: '太阳' }, + '乙': { lu: '天机', quan: '天梁', ke: '紫微', ji: '太阴' }, + '丙': { lu: '天同', quan: '天机', ke: '文昌', ji: '廉贞' }, + '丁': { lu: '太阴', quan: '天同', ke: '天机', ji: '巨门' }, + '戊': { lu: '贪狼', quan: '太阴', ke: '右弼', ji: '天机' }, + '己': { lu: '武曲', quan: '贪狼', ke: '天梁', ji: '文曲' }, + '庚': { lu: '太阳', quan: '武曲', ke: '太阴', ji: '天同' }, + '辛': { lu: '巨门', quan: '太阳', ke: '文曲', ji: '文昌' }, + '壬': { lu: '天梁', quan: '紫微', ke: '左辅', ji: '武曲' }, + '癸': { lu: '破军', quan: '巨门', ke: '太阴', ji: '贪狼' } +}; +/** + * 获取指定天干的四化 + */ +function getSiHuaByGan(gan) { + return SIHUA_BY_YEAR_GAN[gan]; +} +/** + * 计算某个宫位的四化(用于飞化) + * @param gan 宫位天干 + * @param gongStars 宫位内的星曜列表 + * @returns 该宫位飞化出的四化星及其位置 + */ +function calculateFeiHua(gan, allGongs) { + const sihua = getSiHuaByGan(gan); + const result = { + lu: null, + quan: null, + ke: null, + ji: null + }; + // 找到化禄、化权、化科、化忌的星曜所在宫位(包括主星和辅星) + for (const gong of allGongs) { + const allStars = [...gong.mainStars, ...(gong.auxStars || [])]; + if (allStars.includes(sihua.lu)) { + result.lu = { star: sihua.lu, targetGong: gong.gong }; + } + if (allStars.includes(sihua.quan)) { + result.quan = { star: sihua.quan, targetGong: gong.gong }; + } + if (allStars.includes(sihua.ke)) { + result.ke = { star: sihua.ke, targetGong: gong.gong }; + } + if (allStars.includes(sihua.ji)) { + result.ji = { star: sihua.ji, targetGong: gong.gong }; + } + } + return result; +} +/** + * 为命盘添加本命四化(出生年干的四化) + */ +function addBenMingSiHua(gongs, yearGan) { + const sihua = getSiHuaByGan(yearGan); + return gongs.map(gong => { + const sihuaList = []; + // 检查宫位内的主星和辅星是否有四化 + const allStars = [...gong.mainStars, ...(gong.auxStars || [])]; + allStars.forEach((star) => { + if (star === sihua.lu) { + sihuaList.push({ star, hua: '化禄' }); + } + if (star === sihua.quan) { + sihuaList.push({ star, hua: '化权' }); + } + if (star === sihua.ke) { + sihuaList.push({ star, hua: '化科' }); + } + if (star === sihua.ji) { + sihuaList.push({ star, hua: '化忌' }); + } + }); + return { + ...gong, + sihua: sihuaList + }; + }); +} +/** + * 获取四化的颜色样式 + */ +function getSiHuaColor(hua) { + switch (hua) { + case '化禄': return '#22c55e'; // 绿色 + case '化权': return '#a855f7'; // 紫色 + case '化科': return '#3b82f6'; // 蓝色 + case '化忌': return '#ef4444'; // 红色 + default: return '#666'; + } +} +/** + * 获取四化的简称 + */ +function getSiHuaShort(hua) { + switch (hua) { + case '化禄': return '禄'; + case '化权': return '权'; + case '化科': return '科'; + case '化忌': return '忌'; + default: return ''; + } +} diff --git a/calculator/dist/yiqi-core/types.js b/calculator/dist/yiqi-core/types.js new file mode 100644 index 0000000..b31e84f --- /dev/null +++ b/calculator/dist/yiqi-core/types.js @@ -0,0 +1,3 @@ +"use strict"; +// 核心数据类型定义 +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/calculator/dist/yiqi-core/zhangsheng.js b/calculator/dist/yiqi-core/zhangsheng.js new file mode 100644 index 0000000..eefba0c --- /dev/null +++ b/calculator/dist/yiqi-core/zhangsheng.js @@ -0,0 +1,117 @@ +"use strict"; +/** + * 十二长生(星运)算法 + * + * 十二长生是命理学中描述五行在十二地支中的旺衰状态,包括: + * 长生、沐浴、冠带、临官、帝旺、衰、病、死、墓、绝、胎、养 + * + * 根据日干的五行属性,查找其在各地支的长生状态 + */ +Object.defineProperty(exports, "__esModule", { value: true }); +exports.getChangSheng = getChangSheng; +exports.getSiZhuChangSheng = getSiZhuChangSheng; +exports.getChangShengLevel = getChangShengLevel; +/** + * 十二长生映射表 + * 根据天干十二长生表(见附件图片) + * + * 阳干(甲丙戊庚壬):顺行 + * 阴干(乙丁己辛癸):逆行 + */ +const CHANGSHENG_MAP = { + '甲': { + '亥': '长生', '子': '沐浴', '丑': '冠带', '寅': '临官', + '卯': '帝旺', '辰': '衰', '巳': '病', '午': '死', + '未': '墓', '申': '绝', '酉': '胎', '戌': '养' + }, + '乙': { + '午': '长生', '巳': '沐浴', '辰': '冠带', '卯': '临官', + '寅': '帝旺', '丑': '衰', '子': '病', '亥': '死', + '戌': '墓', '酉': '绝', '申': '胎', '未': '养' + }, + '丙': { + '寅': '长生', '卯': '沐浴', '辰': '冠带', '巳': '临官', + '午': '帝旺', '未': '衰', '申': '病', '酉': '死', + '戌': '墓', '亥': '绝', '子': '胎', '丑': '养' + }, + '丁': { + '酉': '长生', '申': '沐浴', '未': '冠带', '午': '临官', + '巳': '帝旺', '辰': '衰', '卯': '病', '寅': '死', + '丑': '墓', '子': '绝', '亥': '胎', '戌': '养' + }, + '戊': { + '寅': '长生', '卯': '沐浴', '辰': '冠带', '巳': '临官', + '午': '帝旺', '未': '衰', '申': '病', '酉': '死', + '戌': '墓', '亥': '绝', '子': '胎', '丑': '养' + }, + '己': { + '酉': '长生', '申': '沐浴', '未': '冠带', '午': '临官', + '巳': '帝旺', '辰': '衰', '卯': '病', '寅': '死', + '丑': '墓', '子': '绝', '亥': '胎', '戌': '养' + }, + '庚': { + '巳': '长生', '午': '沐浴', '未': '冠带', '申': '临官', + '酉': '帝旺', '戌': '衰', '亥': '病', '子': '死', + '丑': '墓', '寅': '绝', '卯': '胎', '辰': '养' + }, + '辛': { + '子': '长生', '亥': '沐浴', '戌': '冠带', '酉': '临官', + '申': '帝旺', '未': '衰', '午': '病', '巳': '死', + '辰': '墓', '卯': '绝', '寅': '胎', '丑': '养' + }, + '壬': { + '申': '长生', '酉': '沐浴', '戌': '冠带', '亥': '临官', + '子': '帝旺', '丑': '衰', '寅': '病', '卯': '死', + '辰': '墓', '巳': '绝', '午': '胎', '未': '养' + }, + '癸': { + '卯': '长生', '寅': '沐浴', '丑': '冠带', '子': '临官', + '亥': '帝旺', '戌': '衰', '酉': '病', '申': '死', + '未': '墓', '午': '绝', '巳': '胎', '辰': '养' + } +}; +/** + * 获取天干在某地支的长生状态 + * @param tiangan 天干 + * @param dizhi 地支 + * @returns 长生状态(长生、沐浴、冠带等) + */ +function getChangSheng(tiangan, dizhi) { + return CHANGSHENG_MAP[tiangan][dizhi]; +} +/** + * 批量获取四柱的长生状态 + * @param dayGan 日干 + * @param siZhu 四柱地支 + * @returns 四柱长生状态数组 + */ +function getSiZhuChangSheng(dayGan, siZhu) { + return { + year: getChangSheng(dayGan, siZhu.year), + month: getChangSheng(dayGan, siZhu.month), + day: getChangSheng(dayGan, siZhu.day), + hour: getChangSheng(dayGan, siZhu.hour) + }; +} +/** + * 判断长生状态的吉凶 + * @param changsheng 长生状态 + * @returns 吉凶等级(1-5,5最吉) + */ +function getChangShengLevel(changsheng) { + const levels = { + '长生': 5, // 最吉 + '帝旺': 5, // 最吉 + '临官': 4, // 次吉 + '冠带': 4, // 次吉 + '养': 3, // 平 + '胎': 3, // 平 + '沐浴': 2, // 次凶(桃花) + '衰': 2, // 次凶 + '病': 1, // 凶 + '死': 1, // 凶 + '墓': 1, // 凶 + '绝': 1 // 最凶 + }; + return levels[changsheng]; +} diff --git a/calculator/dist/yiqi-core/ziwei-standard.js b/calculator/dist/yiqi-core/ziwei-standard.js new file mode 100644 index 0000000..8b48b02 --- /dev/null +++ b/calculator/dist/yiqi-core/ziwei-standard.js @@ -0,0 +1,633 @@ +"use strict"; +// 紫微斗数排盘核心算法(按照标准安星法重写) +Object.defineProperty(exports, "__esModule", { value: true }); +exports.createZiweiChart = createZiweiChart; +exports.runZiweiTests = runZiweiTests; +const lunar_typescript_1 = require("lunar-typescript"); +const sihua_1 = require("./sihua"); +const daxian_1 = require("./daxian"); +/** + * 天干数组 + */ +const TIANGAN = ['甲', '乙', '丙', '丁', '戊', '己', '庚', '辛', '壬', '癸']; +/** + * 地支数组(顺时针) + */ +const DIZHI = ['子', '丑', '寅', '卯', '辰', '巳', '午', '未', '申', '酉', '戌', '亥']; +/** + * 十二宫名称(从命宫开始,逆时针排列) + */ +const GONG_NAMES = ['命宫', '兄弟', '夫妻', '子女', '财帛', '疾厄', '迁移', '交友', '官禄', '田宅', '福德', '父母']; +/** + * 时辰转换为地支索引 + */ +function getHourZhiIndex(hour) { + // 23-01:子(0), 01-03:丑(1), ..., 21-23:亥(11) + return Math.floor((hour + 1) / 2) % 12; +} +/** + * 判断阴阳男女 + */ +function getYinYang(year, gender) { + const ganIndex = (year - 4) % 10; // 修正公式:2014年 → (2014-4)%10 = 0 → 甲 + const isYangYear = ganIndex % 2 === 0; // 甲丙戊庚壬为阳(索引0,2,4,6,8) + if (gender === 'male') { + return isYangYear ? '阳男' : '阴男'; + } + else { + return isYangYear ? '阳女' : '阴女'; + } +} +/** + * 五虎遁月诀 - 根据年干和月支确定月干 + */ +function getMonthGan(yearGan, monthZhi) { + const yearGanIndex = TIANGAN.indexOf(yearGan); + const monthZhiIndex = DIZHI.indexOf(monthZhi); + // 五虎遁月诀:甲己丙作首,乙庚戊为头,丙辛庚上起,丁壬壬寅流,戊癸甲寅求 + const firstMonthGanMap = { + 0: 2, 5: 2, // 甲己 → 丙 + 1: 4, 6: 4, // 乙庚 → 戊 + 2: 6, 7: 6, // 丙辛 → 庚 + 3: 8, 8: 8, // 丁壬 → 壬 + 4: 0, 9: 0 // 戊癸 → 甲 + }; + const firstMonthGan = firstMonthGanMap[yearGanIndex]; + // 正月是寅月(索引2),从正月天干开始,按地支顺序推算 + // 月支索引 - 寅索引(2) = 偏移量 + const offset = (monthZhiIndex - 2 + 12) % 12; + const monthGanIndex = (firstMonthGan + offset) % 10; + return TIANGAN[monthGanIndex]; +} +/** + * 计算命宫位置 + * 标准算法:从寅宫起正月,顺数到生月;从生月宫当子时,逆时针数到生时 + * 例如:八月在酉宫,申时是第9个时辰(子丑寅卯辰巳午未申),从酉宫逆数8位到丑宫 + */ +function calculateMingGong(lunarMonth, hour) { + // 1. 从寅宫(索引2)起正月,顺时针数到生月 + // 正月在寅(2),二月在卯(3),...,八月在酉(9) + const shengYueGongIndex = (2 + lunarMonth - 1) % 12; + // 2. 从生月宫当子时起,逆时针数到生时 + // 生时地支索引就是要逆数的宫位数 + const shengShiZhiIndex = getHourZhiIndex(hour); + // 从生月宫逆时针数shengShiZhiIndex个宫位 + const mingGongIndex = (shengYueGongIndex - shengShiZhiIndex + 12) % 12; + return mingGongIndex; +} +/** + * 计算身宫位置 + * 标准算法:从寅宫起正月,顺数到生月;从生月宫当子时,顺时针数到生时 + * 例如:八月在酉宫,申时是第9个时辰,从酉宫顺数8位到巳宫 + */ +function calculateShenGong(lunarMonth, hour) { + // 1. 从寅宫(索引2)起正月,顺时针数到生月 + // 正月在寅(2),二月在卯(3),...,八月在酉(9) + const shengYueGongIndex = (2 + lunarMonth - 1) % 12; + // 2. 从生月宫当子时起,顺时针数到生时 + // 生时地支索引就是要顺数的宫位数 + const shengShiZhiIndex = getHourZhiIndex(hour); + // 从生月宫顺时针数shengShiZhiIndex个宫位 + const shenGongIndex = (shengYueGongIndex + shengShiZhiIndex) % 12; + return shenGongIndex; +} +/** + * 计算纳音五行局 + */ +function calculateWuXingJu(tiangan, dizhi) { + const ganNum = Math.floor(TIANGAN.indexOf(tiangan) / 2) + 1; // 甲乙=1, 丙丁=2... + const zhiMap = { + '子': 1, '丑': 1, '午': 1, '未': 1, + '寅': 2, '卯': 2, '申': 2, '酉': 2, + '辰': 3, '巳': 3, '戌': 3, '亥': 3 + }; + const zhiNum = zhiMap[dizhi]; + let juNum = (ganNum + zhiNum) % 5; + if (juNum === 0) + juNum = 5; + const juMap = { + 1: '木三局', + 2: '金四局', + 3: '水二局', + 4: '火六局', + 5: '土五局' + }; + return { + name: juMap[juNum], + number: [0, 3, 4, 2, 6, 5][juNum] // 转换为局数:木3,金4,水2,火6,土5 + }; +} +/** + * 计算紫微星位置 + * 口诀:生日除局商为月,一自寅起紫微定。只加不减到整除,阳退阴进记心中。 + */ +function calculateZiweiPosition(lunarDay, juShu) { + let shang = Math.floor(lunarDay / juShu); + let yu = lunarDay % juShu; + if (yu === 0) { + // 整除 + // 商数对应地支:寅=1, 卯=2, ..., 丑=12 + if (shang > 12) + shang = shang - 12; + // 地支索引 = (寅索引2 + 商数-1) % 12 + return (2 + shang - 1) % 12; + } + else { + // 不整除,需要添加数使其整除 + const tian = juShu - yu; // 添加的数 + shang = Math.floor((lunarDay + tian) / juShu); + if (shang > 12) + shang = shang - 12; + let baseIndex = (2 + shang - 1) % 12; + // 添加数为单数:逆时针退tian位(阳退,不包括本位) + // 添加数为双数:顺时针进tian位(阴进,不包括本位) + if (tian % 2 === 1) { + // 单数:逆时针退tian位 + return (baseIndex - tian + 12) % 12; + } + else { + // 双数:顺时针进tian位 + return (baseIndex + tian) % 12; + } + } +} +/** + * 安紫微星系 + * 口诀:紫微天机逆行旁,隔一阳武天同当,又隔二位廉贞地,空三复见紫微郞 + */ +function installZiweiSeries(ziweiPos) { + const stars = new Map(); + stars.set('紫微', ziweiPos); + stars.set('天机', (ziweiPos - 1 + 12) % 12); // 逆时针下一宫 + // 隔一宫 + stars.set('太阳', (ziweiPos - 3 + 12) % 12); + stars.set('武曲', (ziweiPos - 4 + 12) % 12); + stars.set('天同', (ziweiPos - 5 + 12) % 12); + // 隔两宫 + stars.set('廉贞', (ziweiPos - 8 + 12) % 12); + return stars; +} +/** + * 计算天府星位置 + * 口诀:天府南斗令,常对紫微君 + */ +function calculateTianfuPosition(ziweiPos) { + // 紫微天府对应关系 + const duiYing = { + 2: 2, 8: 8, // 寅申:紫府同宫 + 1: 3, 3: 1, // 丑卯相对 + 7: 9, 9: 7, // 未酉相对 + 6: 10, 10: 6, // 午戌相对 + 0: 4, 4: 0, // 子辰相对 + 5: 11, 11: 5 // 巳亥相对 + }; + return duiYing[ziweiPos]; +} +/** + * 安天府星系 + * 口诀:天府太阴与贪狼,巨门天相及天梁,七杀空三破军位 + */ +function installTianfuSeries(tianfuPos) { + const stars = new Map(); + stars.set('天府', tianfuPos); + stars.set('太阴', (tianfuPos + 1) % 12); // 顺时针下一宫 + stars.set('贪狼', (tianfuPos + 2) % 12); + stars.set('巨门', (tianfuPos + 3) % 12); + stars.set('天相', (tianfuPos + 4) % 12); + stars.set('天梁', (tianfuPos + 5) % 12); + stars.set('七杀', (tianfuPos + 6) % 12); + // 空三宫 + stars.set('破军', (tianfuPos + 10) % 12); + return stars; +} +/** + * 安辅星:左辅、右弼 + * 口诀:左辅辰宫起正月,顺数至生月;右弼戌宫起正月,逆数至生月 + */ +function installZuoYou(lunarMonth) { + const stars = new Map(); + // 左辅:辰宫起正月,顺时针数到生月 + const zuoFuPos = (4 + lunarMonth - 1) % 12; + stars.set('左辅', zuoFuPos); + // 右弼:戌宫起正月,逆时针数到生月 + const youBiPos = (10 - lunarMonth + 1 + 12) % 12; + stars.set('右弼', youBiPos); + return stars; +} +/** + * 安文昌、文曲 + * 口诀:文昌生时起戌位,逆数时辰至卯停;文曲生时起子位,逆数时辰至午停 + */ +function installWenXing(hour) { + const stars = new Map(); + const hourZhiIndex = getHourZhiIndex(hour); + // 文昌:戌宫起子时,逆时针数到生时 + const wenChangPos = (10 - hourZhiIndex + 12) % 12; + stars.set('文昌', wenChangPos); + // 文曲:辰宫起子时,顺时针数到生时 + const wenQuPos = (4 + hourZhiIndex) % 12; + stars.set('文曲', wenQuPos); + return stars; +} +/** + * 安禄存、天马 + * 口诀:禄存按年干安星,天马按年支对宫三合 + */ +function installLuMa(yearGan, yearZhi) { + const stars = new Map(); + // 禄存按年干:甲寅、乙卯、丙戊巳、丁己午、庚申、辛酉、壬亥、癸子 + const luCunMap = { + '甲': 2, // 寅 + '乙': 3, // 卯 + '丙': 5, // 巳 + '丁': 6, // 午 + '戊': 5, // 巳 + '己': 6, // 午 + '庚': 8, // 申 + '辛': 9, // 酉 + '壬': 11, // 亥 + '癸': 0 // 子 + }; + stars.set('禄存', luCunMap[yearGan]); + // 天马按年支三合:寅午戌→申,巳酉丑→亥,申子辰→寅,亥卯未→巳 + const tianMaMap = { + '寅': 8, '午': 8, '戌': 8, // 申 + '巳': 11, '酉': 11, '丑': 11, // 亥 + '申': 2, '子': 2, '辰': 2, // 寅 + '亥': 5, '卯': 5, '未': 5 // 巳 + }; + stars.set('天马', tianMaMap[yearZhi]); + return stars; +} +/** + * 安擎羊、陀罗 + * 口诀:擎羊禄前一位,陀罗禄后一位 + */ +function installYangTuo(yearGan) { + const stars = new Map(); + // 先找禄存位置 + const luCunMap = { + '甲': 2, '乙': 3, '丙': 5, '丁': 6, '戊': 5, + '己': 6, '庚': 8, '辛': 9, '壬': 11, '癸': 0 + }; + const luCunPos = luCunMap[yearGan]; + // 擎羊:禄存前一位(顺时针) + stars.set('擎羊', (luCunPos + 1) % 12); + // 陀罗:禄存后一位(逆时针) + stars.set('陀罗', (luCunPos - 1 + 12) % 12); + return stars; +} +/** + * 安火星、铃星 + * 口诀: + * 申子辰年生人火星在寅宫起子时,铃星在戌宫起子时,均顺时针数到生时 + * 寅午戌年生人火星在丑宫起子时,铃星在卯宫起子时,均顺时针数到生时 + * 巳酉丑年生人火星在卯宫起子时,铃星在戌宫起子时,均顺时针数到生时 + * 亥卯未年生人火星在酉宫起子时,铃星在戌宫起子时,均顺时针数到生时 + */ +function installHuoLing(yearZhi, hour) { + const stars = new Map(); + const hourZhiIndex = getHourZhiIndex(hour); + const zhiIndex = DIZHI.indexOf(yearZhi); + // 确定火星起始宫位 + let huoStartPos; + if ([8, 0, 4].includes(zhiIndex)) { + // 申子辰 → 寅(2) + huoStartPos = 2; + } + else if ([2, 6, 10].includes(zhiIndex)) { + // 寅午戌 → 丑(1) + huoStartPos = 1; + } + else if ([5, 9, 1].includes(zhiIndex)) { + // 巳酉丑 → 卯(3) + huoStartPos = 3; + } + else { + // 亥卯未 → 酉(9) + huoStartPos = 9; + } + // 确定铃星起始宫位 + let lingStartPos; + if ([2, 6, 10].includes(zhiIndex)) { + // 寅午戌 → 卯(3) + lingStartPos = 3; + } + else { + // 申子辰、巳酉丑、亥卯未 → 戌(10) + lingStartPos = 10; + } + // 从起始宫位顺数到生时 + const huoPos = (huoStartPos + hourZhiIndex) % 12; + const lingPos = (lingStartPos + hourZhiIndex) % 12; + stars.set('火星', huoPos); + stars.set('铃星', lingPos); + return stars; +} +/** + * 安地空、地劫 + * 口诀:地空亥宫起子时,逆数至生时;地劫亥宫起子时,顺数至生时 + */ +function installKongJie(hour) { + const stars = new Map(); + const hourZhiIndex = getHourZhiIndex(hour); + // 地空:亥宫起子时,逆数至生时 + const diKongPos = (11 - hourZhiIndex + 12) % 12; + stars.set('地空', diKongPos); + // 地劫:亥宫起子时,顺数至生时 + const diJiePos = (11 + hourZhiIndex) % 12; + stars.set('地劫', diJiePos); + return stars; +} +/** + * 安天魁、天钺 + * 口诀:按年干安星 + */ +function installKuiYue(yearGan) { + const stars = new Map(); + // 天魁定位 + // 口诀:甲戊庚牛羊,乙己鼠猴乡,丙丁猪鸡位,壬癸兔蛇藏,六辛逢马虎 + const tianKuiMap = { + '甲': 1, // 丑(牛) + '乙': 0, // 子(鼠) + '丙': 11, // 亥(猪) + '丁': 11, // 亥(猪) + '戊': 1, // 丑(牛) + '己': 0, // 子(鼠) + '庚': 1, // 丑(牛) + '辛': 6, // 午(马) + '壬': 3, // 卯(兔) + '癸': 5 // 巳(蛇) + }; + // 天钺定位 + const tianYueMap = { + '甲': 7, // 未(羊) + '乙': 8, // 申(猴) + '丙': 9, // 酉(鸡) + '丁': 9, // 酉(鸡) + '戊': 7, // 未(羊) + '己': 8, // 申(猴) + '庚': 7, // 未(羊) + '辛': 2, // 寅(虎) + '壬': 5, // 巳(蛇) + '癸': 3 // 卯(兔) + }; + stars.set('天魁', tianKuiMap[yearGan]); + stars.set('天钺', tianYueMap[yearGan]); + return stars; +} +/** + * 创建紫微斗数排盘 + */ +function createZiweiChart(birthInfo) { + try { + // 1. 转换为农历 + const solar = lunar_typescript_1.Solar.fromYmdHms(birthInfo.year, birthInfo.month, birthInfo.day, birthInfo.hour, birthInfo.minute, 0); + const lunar = solar.getLunar(); + const lunarYear = lunar.getYear(); + const lunarMonth = lunar.getMonth(); + const lunarDay = lunar.getDay(); + // 2. 获取四柱 + const yearGan = lunar.getYearGan(); + const yearZhi = lunar.getYearZhi(); + const monthGan = lunar.getMonthGan(); + const monthZhi = lunar.getMonthZhi(); + const dayGan = lunar.getDayGan(); + const dayZhi = lunar.getDayZhi(); + const hourGan = lunar.getTimeGan(); + const hourZhi = lunar.getTimeZhi(); + const siZhu = { + year: { gan: yearGan, zhi: yearZhi }, + month: { gan: monthGan, zhi: monthZhi }, + day: { gan: dayGan, zhi: dayZhi }, + hour: { gan: hourGan, zhi: hourZhi } + }; + // 3. 判断阴阳男女 + const yinYang = getYinYang(birthInfo.year, birthInfo.gender); + // 4. 计算命宫、身宫 + const mingGongIndex = calculateMingGong(lunarMonth, birthInfo.hour); + const shenGongIndex = calculateShenGong(lunarMonth, birthInfo.hour); + // 5. 计算命宫天干(用月干推算) + const mingGongZhi = DIZHI[mingGongIndex]; + const mingGongGan = getMonthGan(yearGan, mingGongZhi); + // 6. 计算五行局 + const wuXingJu = calculateWuXingJu(mingGongGan, mingGongZhi); + // 7. 计算紫微星位置 + const ziweiPos = calculateZiweiPosition(lunarDay, wuXingJu.number); + // 8. 安14主星 + const ziweiSeries = installZiweiSeries(ziweiPos); + const tianfuPos = calculateTianfuPosition(ziweiPos); + const tianfuSeries = installTianfuSeries(tianfuPos); + const allMainStars = new Map([...ziweiSeries, ...tianfuSeries]); + // 9. 安辅星系统 + const zuoYouStars = installZuoYou(lunarMonth); + const wenXingStars = installWenXing(birthInfo.hour); + const luMaStars = installLuMa(yearGan, yearZhi); + const yangTuoStars = installYangTuo(yearGan); + const huoLingStars = installHuoLing(yearZhi, birthInfo.hour); + const kongJieStars = installKongJie(birthInfo.hour); + const kuiYueStars = installKuiYue(yearGan); + const hongLuanTianXiStars = installHongLuanTianXi(yearZhi); + const tianXingStars = installTianXing(lunarMonth); + const tianYaoStars = installTianYao(lunarMonth); + const allAuxStars = new Map([ + ...zuoYouStars, + ...wenXingStars, + ...luMaStars, + ...yangTuoStars, + ...huoLingStars, + ...kongJieStars, + ...kuiYueStars, + ...hongLuanTianXiStars, + ...tianXingStars, + ...tianYaoStars + ]); + // 10. 生成十二宫数据 + const gongs = []; + for (let i = 0; i < 12; i++) { + // 宫位地支索引(从命宫开始逆时针) + const gongZhiIndex = (mingGongIndex - i + 12) % 12; + const dizhi = DIZHI[gongZhiIndex]; + // 计算天干(使用五虎遁月诀) + const tiangan = getMonthGan(yearGan, dizhi); + // 找出这个宫位的主星 + const mainStars = []; + allMainStars.forEach((pos, star) => { + if (pos === gongZhiIndex) { + mainStars.push(star); + } + }); + // 找出这个宫位的辅星 + const auxStars = []; + allAuxStars.forEach((pos, star) => { + if (pos === gongZhiIndex) { + auxStars.push(star); + } + }); + gongs.push({ + gong: GONG_NAMES[i], + dizhi, + tiangan, + mainStars, + auxStars, + sihua: [] + }); + } + // 11. 添加本命四化(出生年干的四化) + const gongsWithSiHua = (0, sihua_1.addBenMingSiHua)(gongs, yearGan); + // 12. 计算大运信息 + const currentAge = (0, daxian_1.calculateXuSui)(birthInfo.year); + const daXianList = (0, daxian_1.calculateDaXian)(mingGongIndex, yinYang, wuXingJu.number); + // 13. 为每个宫位添加大运信息和流年 + // 找到当前大限 + const currentDaXian = daXianList.find(dx => currentAge >= dx.startAge && currentAge <= dx.endAge); + // 计算当前大限对应的完整年份范围(10年) + // 例如:2014年出生火六局,当前12岁在6~15岁大限,对应2019~2028年(完整10年) + // 例如:1990年出生土五局,当前36岁在35~44岁大限,对应2024~2033年(完整10年) + let liunianYearStart; + let liunianYearEnd; + if (currentDaXian) { + const birthYear = birthInfo.year; + // 大限开始年份 = 出生年份 + 大限开始年龄 - 1 + liunianYearStart = birthYear + currentDaXian.startAge - 1; + // 大限结束年份 = 出生年份 + 大限结束年龄 - 1 + liunianYearEnd = birthYear + currentDaXian.endAge - 1; + } + // 十二宫名称列表(命宫开始逆时针) + const GONG_NAMES_ORDER = ['命宫', '兄弟宫', '夫妻宫', '子女宫', '财帛宫', '疾厄宫', + '迁移宫', '交友宫', '官禄宫', '田宅宫', '福德宫', '父母宫']; + const gongsWithDaXian = gongsWithSiHua.map((gong, index) => { + const gongZhiIndex = (mingGongIndex - index + 12) % 12; + const daXian = daXianList.find(dx => dx.gongIndex === gongZhiIndex); + // 计算流年:根据地支固定位置分配年份 + // 例如:2025年乙巳年,固定在巳宫;2026年丙午年,固定在午宫 + // 计算该宫位地支对应的年份 + // 地支循环:子丑寅卯辰巳午未申酉戌亥(0-11) + const dizhiIndex = DIZHI.indexOf(gong.dizhi); + // 计算该地支对应的年份(在当前大限范围内) + let displayYear; + if (liunianYearStart && liunianYearEnd) { + // 遍历当前大限的所有年份,找到地支匹配的年份 + for (let year = liunianYearStart; year <= liunianYearEnd; year++) { + const yearZhiIndex = (year - 4) % 12; + if (yearZhiIndex === dizhiIndex) { + displayYear = year; + break; + } + } + } + // 计算大限宫位名(基于当前大限的起始宫位) + let daXianGongName; + if (currentDaXian) { + // 找到当前大限的起始宫位在十二宫中的位置 + const currentDaXianGongIndex = gongsWithSiHua.findIndex(g => { + const gZhiIndex = DIZHI.indexOf(g.dizhi); + return gZhiIndex === currentDaXian.gongIndex; + }); + // 计算当前宫位相对于大限命宫的偏移 + const offsetFromDaXianMing = (index - currentDaXianGongIndex + 12) % 12; + // 根据偏移获取大限宫位名 + const daXianGongNameMap = { + '命宫': '大命', + '兄弟宫': '大兄', + '夫妻宫': '大夫', + '子女宫': '大子', + '财帛宫': '大财', + '疾厄宫': '大疾', + '迁移宫': '大迁', + '交友宫': '大友', + '官禄宫': '大官', + '田宅宫': '大田', + '福德宫': '大福', + '父母宫': '大父' + }; + const correspondingGongName = GONG_NAMES_ORDER[offsetFromDaXianMing]; + daXianGongName = daXianGongNameMap[correspondingGongName]; + } + if (daXian) { + const isCurrent = currentAge >= daXian.startAge && currentAge <= daXian.endAge; + // 计算该大运内的流年年龄列表 + const liuNianAges = []; + for (let age = daXian.startAge; age <= daXian.endAge; age++) { + liuNianAges.push(age); + } + return { + ...gong, + daXian: { + startAge: daXian.startAge, + endAge: daXian.endAge, + isCurrent, + daXianGongName + }, + liuNian: liuNianAges, + liuNianYear: displayYear + }; + } + return { + ...gong, + liuNianYear: displayYear + }; + }); + return { + birthInfo, + lunarDate: { + year: lunarYear, + month: lunarMonth, + day: lunarDay, + monthCn: lunar.getMonthInChinese(), + dayCn: lunar.getDayInChinese() + }, + siZhu, + yinYang, + mingGongIndex, + shenGongIndex, + wuXingJu, + gongs: gongsWithDaXian + }; + } + catch (error) { + console.error('紫微斗数排盘失败:', error); + throw new Error('紫微斗数排盘计算失败: ' + error.message); + } +} +function runZiweiTests() { + console.error('紫微斗数测试功能待实现'); + return { passed: 0, failed: 0, details: [] }; +} +/** + * 安红鸾、天喜 + * 口诀:卯宫起子年,逆数至生年支;天喜为红鸾对宫 + */ +function installHongLuanTianXi(yearZhi) { + const stars = new Map(); + const zhiIndex = DIZHI.indexOf(yearZhi); + // 红鸾:卯宫起子年,逆数至生年支 + const hongLuanPos = (3 - zhiIndex + 12) % 12; + // 天喜:红鸾对宫 + const tianXiPos = (hongLuanPos + 6) % 12; + stars.set('红鸾', hongLuanPos); + stars.set('天喜', tianXiPos); + return stars; +} +/** + * 安天刑 + * 口诀:天刑酉上正月轮,数至生月便住脚 + */ +function installTianXing(lunarMonth) { + const stars = new Map(); + // 天刑:酉宫起正月,顺数至生月 + const tianXingPos = (9 + lunarMonth - 1) % 12; + stars.set('天刑', tianXingPos); + return stars; +} +/** + * 安天姚 + * 口诀:天姚丑上顺正月,数至生月便住脚 + */ +function installTianYao(lunarMonth) { + const stars = new Map(); + // 天姚:丑宫起正月,顺数至生月 + const tianYaoPos = (1 + lunarMonth - 1) % 12; + stars.set('天姚', tianYaoPos); + return stars; +} diff --git a/calculator/dump-text.ts b/calculator/dump-text.ts new file mode 100644 index 0000000..df3302b --- /dev/null +++ b/calculator/dump-text.ts @@ -0,0 +1,235 @@ +// 把 run-chart.ts 的 JSON 输出转成文墨天机风格树状文本 +// 用法: +// npx tsx dump-text.ts --input=chart.json [--output=chart.txt] +// 不指定 --output 则打印到 stdout + +import * as fs from 'fs'; + +function parseArgs(): Record { + const args: Record = {}; + for (const a of process.argv.slice(2)) { + const m = a.match(/^--([^=]+)=(.*)$/); + if (m) args[m[1]] = m[2]; + } + return args; +} + +function padRight(s: string, n: number): string { + // 中文字符按宽度 2 计算 + let w = 0; + for (const ch of s) w += /[一-龥＀-￿]/.test(ch) ? 2 : 1; + return s + ' '.repeat(Math.max(0, n - w)); +} + +function dumpZiwei(z: any, bi: any): string[] { + const lines: string[] = []; + lines.push('紫微斗数命盘'); + lines.push('│'); + lines.push('├基本信息'); + lines.push(`│ ├性别 : ${bi.gender === 'male' ? '男' : '女'}`); + lines.push(`│ ├阳历 : ${bi.year}-${String(bi.month).padStart(2,'0')}-${String(bi.day).padStart(2,'0')} ${String(bi.hour).padStart(2,'0')}:${String(bi.minute).padStart(2,'0')}`); + if (z.lunarDate) { + lines.push(`│ ├农历 : ${z.lunarDate.year}年${z.lunarDate.monthCn}月${z.lunarDate.dayCn}`); + } + if (z.siZhu) { + const sz = z.siZhu; + lines.push(`│ ├节气四柱 : ${sz.year.gan}${sz.year.zhi} ${sz.month.gan}${sz.month.zhi} ${sz.day.gan}${sz.day.zhi} ${sz.hour.gan}${sz.hour.zhi}`); + } + lines.push(`│ ├阴阳 : ${z.yinYang || ''}`); + lines.push(`│ ├五行局 : ${z.wuXingJu?.name || ''}`); + const DIZHI = ['子','丑','寅','卯','辰','巳','午','未','申','酉','戌','亥']; + const mingDizhi = z.gongs[0]?.dizhi; + const shenDizhi = DIZHI[z.shenGongIndex]; + lines.push(`│ └命宫=${mingDizhi} 身宫=${shenDizhi}`); + lines.push('│'); + + // 生年四化汇总 + const allSihua: string[] = []; + for (const g of z.gongs) { + for (const s of g.sihua || []) { + allSihua.push(`${s.star}${s.hua}`); + } + } + if (allSihua.length > 0) { + lines.push('├生年四化'); + lines.push(`│ └${allSihua.join(' · ')}`); + lines.push('│'); + } + + // 十二宫 + lines.push('├命盘十二宫'); + z.gongs.forEach((g: any, idx: number) => { + const isLast = idx === z.gongs.length - 1; + const prefix = isLast ? '│ └' : '│ ├'; + const childPrefix = isLast ? '│ ' : '│ │ '; + const isMing = g.gong === '命宫'; + const isShen = g.dizhi === shenDizhi; + const marks: string[] = []; + if (isMing) marks.push('[命]'); + if (isShen && !isMing) marks.push('[身]'); + const gongName = g.gong.endsWith('宫') ? g.gong : g.gong + '宫'; + lines.push(`${prefix}${gongName}[${g.tiangan}${g.dizhi}]${marks.join('')}`); + const main = g.mainStars && g.mainStars.length > 0 ? g.mainStars.join('·') : '无主星'; + lines.push(`${childPrefix}├主星 : ${main}`); + const aux = g.auxStars && g.auxStars.length > 0 ? g.auxStars.join('·') : '无'; + lines.push(`${childPrefix}├辅星 : ${aux}`); + if (g.sihua && g.sihua.length > 0) { + lines.push(`${childPrefix}├生年四化 : ${g.sihua.map((s:any)=>s.star+s.hua).join('·')}`); + } + if (g.daXian) { + const dxMark = g.daXian.isCurrent ? '★当前' : ''; + lines.push(`${childPrefix}├大限 : ${g.daXian.startAge}-${g.daXian.endAge}虚岁 ${dxMark}`); + } + if (g.liuNian && g.liuNian.length > 0) { + lines.push(`${childPrefix}└流年 : ${g.liuNian.join('·')}虚岁`); + } + if (!isLast) lines.push('│ │'); + }); + + return lines; +} + +function dumpBazi(b: any, bi: any): string[] { + const lines: string[] = []; + lines.push(''); + lines.push('八字命盘'); + lines.push('│'); + + // 四柱表 + const sz = b.siZhu; + const ss = b.shiShen; + const zs = b.zhangSheng || {}; + const zz = b.enrichment?.自坐 || {}; + const ny = b.naYin || {}; + const cg = b.cangGan || {}; + + lines.push('├四柱'); + const cols = ['年','月','日','时']; + const pillarKeys = ['year','month','day','hour']; + const cangGanFmt = (pk: string): string => { + const arr = cg[pk]; + if (!Array.isArray(arr)) return ''; + return arr.map((x:any)=>`${x.gan}(${x.shiShen||''})`).join(' '); + }; + for (let i = 0; i < 4; i++) { + const isLast = i === 3; + const pre = isLast ? '│ └' : '│ ├'; + const subPre = isLast ? '│ ' : '│ │ '; + const pk = pillarKeys[i]; + const sx = ss[pk] || ''; + const isDay = pk === 'day'; + const tag = isDay ? `[日主]` : `[${sx}]`; + lines.push(`${pre}${cols[i]}柱 : ${sz[pk].gan}${sz[pk].zhi} ${tag}`); + if (cg[pk]) lines.push(`${subPre}├藏干 : ${cangGanFmt(pk)}`); + lines.push(`${subPre}├星运 : ${zs[pk] || '-'}`); + lines.push(`${subPre}├自坐 : ${zz[cols[i]] || zz[pk] || '-'}`); + lines.push(`${subPre}└纳音 : ${ny[pk] || '-'}`); + if (!isLast) lines.push('│ │'); + } + lines.push('│'); + + // 大运 + if (b.dayun && b.dayun.length > 0) { + lines.push(`├大运 (起运 ${b.dayunStart}岁)`); + b.dayun.slice(0, 10).forEach((d: any, i: number) => { + const isLast = i === Math.min(9, b.dayun.length - 1); + const pre = isLast ? '│ └' : '│ ├'; + const dxTag = `${d.ganShiShen||''}/${d.zhiShiShen||''}`; + lines.push(`${pre}${d.startYear}-${d.endYear} ${d.ganZhi.gan}${d.ganZhi.zhi} (${dxTag})`); + }); + lines.push('│'); + } + + // enrichBazi 补层 + const en = b.enrichment; + if (en) { + lines.push('├算法补层'); + lines.push(`│ ├格局 : ${en.格局?.primary || '-'} (置信度: ${en.格局?.confidence || '-'})`); + if (en.格局?.basis) lines.push(`│ │ └依据 : ${en.格局.basis}`); + if (en.格局?.notes && en.格局.notes.length) { + for (const note of en.格局.notes) lines.push(`│ │ └备注 : ${note}`); + } + const ws = en.旺衰; + if (ws) { + const lvl = ws.verdict || ws.level || '-'; + const score = ws.score !== undefined ? `score=${ws.score}` : ''; + lines.push(`│ ├旺衰 : ${lvl} (${score}, 置信度: ${ws.confidence || '-'})`); + if (ws.breakdown) { + const b = ws.breakdown; + lines.push(`│ │ └四维 : 得令${b.得令} 长生${b.长生} 得地${b.得地} 得势${b.得势}`); + } + } + if (en.调候用神) lines.push(`│ ├调候用神 : ${en.调候用神.join('、')}`); + if (en.五行旺相) { + const ws5 = en.五行旺相; + lines.push(`│ ├五行旺相 : 木${ws5.木} 火${ws5.火} 土${ws5.土} 金${ws5.金} 水${ws5.水}`); + } + if (en.五行统计) { + const s = en.五行统计.surface || en.五行统计; + const w = en.五行统计.withCangGan; + if (s) lines.push(`│ ├五行统计(surface) : 木${s.木||0} 火${s.火||0} 土${s.土||0} 金${s.金||0} 水${s.水||0}`); + if (w) lines.push(`│ ├五行统计(含藏干) : 木${w.木||0} 火${w.火||0} 土${w.土||0} 金${w.金||0} 水${w.水||0}`); + } + // 天干关系 + const gr = en.天干关系; + if (gr && Array.isArray(gr) && gr.length > 0) { + lines.push('│ ├天干关系'); + gr.forEach((r:any, i:number) => { + const last = i === gr.length-1; + const pair = (r.gans || []).join(''); + const pillars = (r.pillars || []).join('-'); + lines.push(`│ │ ${last?'└':'├'}${r.type} : ${pair} (${pillars}柱)`); + }); + } + // 地支关系 + const zr = en.地支关系; + if (zr && Array.isArray(zr) && zr.length > 0) { + lines.push('│ ├地支关系'); + zr.forEach((r:any, i:number) => { + const last = i === zr.length-1; + const pair = (r.zhi || []).join(''); + const pillars = (r.pillars || []).join('-'); + const extra = r.detail ? ` ${r.detail}` : ''; + lines.push(`│ │ ${last?'└':'├'}${r.type} : ${pair} (${pillars}柱)${extra}`); + }); + } + // 整柱 + const zp = en.整柱; + if (zp && Array.isArray(zp) && zp.length > 0) { + lines.push('│ └整柱判定'); + zp.forEach((p:any, i:number) => { + const last = i === zp.length-1; + lines.push(`│ ${last?'└':'├'}${p.pillar}柱 ${p.gan}${p.zhi} : ${p.verdict}`); + }); + } + } + lines.push(''); + lines.push('└[备注: 本盘由 bazi-ziwei skill 算法层生成 — Yiqi core + enrichBazi 补层]'); + + return lines; +} + +function main() { + const args = parseArgs(); + if (!args.input) { + console.error('Usage: npx tsx dump-text.ts --input=chart.json [--output=chart.txt]'); + process.exit(1); + } + const chart = JSON.parse(fs.readFileSync(args.input, 'utf-8')); + const bi = chart.bazi.birthInfo || chart.ziwei.birthInfo; + + const lines: string[] = []; + lines.push(...dumpZiwei(chart.ziwei, bi)); + lines.push(...dumpBazi(chart.bazi, bi)); + + const text = lines.join('\n'); + + if (args.output) { + fs.writeFileSync(args.output, text, 'utf-8'); + console.error(`Text dump written to ${args.output}`); + } else { + process.stdout.write(text); + } +} + +main(); diff --git a/calculator/package-lock.json b/calculator/package-lock.json new file mode 100644 index 0000000..b49c506 --- /dev/null +++ b/calculator/package-lock.json @@ -0,0 +1,56 @@ +{ + "name": "bazi-ziwei-calculator", + "version": "0.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "bazi-ziwei-calculator", + "version": "0.1.0", + "dependencies": { + "lunar-typescript": "^1.8.6" + }, + "devDependencies": { + "@types/node": "^22.0.0", + "typescript": "~5.6.2" + } + }, + "node_modules/@types/node": { + "version": "22.19.21", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-22.19.21.tgz", + "integrity": "sha512-VMeFBSCKQKmm2swI2kW51SFusDqekC6q9trBCvJ/JliDchFSuoYYKN7yVNjPthP1HKZcx3U1gI/wTcEBjEFKTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.21.0" + } + }, + "node_modules/lunar-typescript": { + "version": "1.8.6", + "resolved": "https://registry.npmmirror.com/lunar-typescript/-/lunar-typescript-1.8.6.tgz", + "integrity": "sha512-5Eo4T/cnuXfrgO4k5LCpOGHIUOuz5hCF/IfNv0T29WY2shR36Hiz+ecN9WjnUuxUKhql9gbOkPaQoqLFKtPRNA==", + "license": "MIT" + }, + "node_modules/typescript": { + "version": "5.6.3", + "resolved": "https://registry.npmmirror.com/typescript/-/typescript-5.6.3.tgz", + "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici-types": { + "version": "6.21.0", + "resolved": "https://registry.npmmirror.com/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "dev": true, + "license": "MIT" + } + } +} diff --git a/calculator/package.json b/calculator/package.json new file mode 100644 index 0000000..f90325c --- /dev/null +++ b/calculator/package.json @@ -0,0 +1,19 @@ +{ + "name": "bazi-ziwei-calculator", + "version": "0.1.0", + "description": "八字+紫微算法层 — Yiqi core (vendored) + enrichBazi 补层", + "private": true, + "scripts": { + "build": "tsc", + "chart": "node dist/run-chart.js", + "dump": "node dist/dump-text.js", + "render": "node dist/render.js" + }, + "dependencies": { + "lunar-typescript": "^1.8.6" + }, + "devDependencies": { + "typescript": "~5.6.2", + "@types/node": "^22.0.0" + } +} diff --git a/calculator/render.ts b/calculator/render.ts new file mode 100644 index 0000000..47a5c80 --- /dev/null +++ b/calculator/render.ts @@ -0,0 +1,349 @@ +// 渲染脚本: 算法 JSON + 分析 JSON + 模板 → 单文件 HTML +// +// 用法: +// npx tsx render.ts \ +// --chart=path/to/chart.json \ +// --analysis=path/to/analysis.json \ +// --template=../templates/report-zonghe-poster.html \ +// --output=path/to/output.html +// +// chart.json: run-chart.ts 的输出 (算法层) +// analysis.json: LLM 按 zonghe-poster.md schema 输出的 JSON + +import * as fs from 'fs'; +import * as path from 'path'; + +function parseArgs(): Record { + const args: Record = {}; + for (const a of process.argv.slice(2)) { + const m = a.match(/^--([^=]+)=(.*)$/); + if (m) args[m[1]] = m[2]; + } + return args; +} + +const DIZHI = ['子','丑','寅','卯','辰','巳','午','未','申','酉','戌','亥']; + +function calcVirtualAge(birthYear: number, currentYear: number): number { + return currentYear - birthYear + 1; +} + +function chartToFlat(chart: any, currentYear?: number): Record { + const out: Record = {}; + const bi = chart.bazi.birthInfo; + const bz = chart.bazi; + const zw = chart.ziwei; + currentYear = currentYear || new Date().getFullYear(); + const virtualAge = calcVirtualAge(bi.year, currentYear); + + // ============ META ============ + out['meta.solar_date'] = `${bi.year}-${String(bi.month).padStart(2,'0')}-${String(bi.day).padStart(2,'0')} ${String(bi.hour).padStart(2,'0')}:${String(bi.minute).padStart(2,'0')}`; + if (zw.lunarDate) { + out['meta.lunar_date'] = `${zw.lunarDate.year}年 ${zw.lunarDate.monthCn}月${zw.lunarDate.dayCn} ${zw.lunarDate.hourCn || ''}`.trim(); + } else { + out['meta.lunar_date'] = '-'; + } + out['meta.gender_full'] = bi.gender === 'male' ? '男(' + (zw.yinYang || '') + ')' : '女(' + (zw.yinYang || '') + ')'; + out['meta.age_virtual'] = virtualAge.toString(); + out['meta.current_year'] = currentYear.toString(); + const now = new Date(); + out['meta.gen_time'] = `${now.getFullYear()}-${String(now.getMonth()+1).padStart(2,'0')}-${String(now.getDate()).padStart(2,'0')} ${String(now.getHours()).padStart(2,'0')}:${String(now.getMinutes()).padStart(2,'0')}`; + out['meta.yinyang'] = zw.yinYang || '-'; + + // ============ ZIWEI META ============ + // Yiqi 没明确输出 命主/身主/子年斗君 — 从十二宫推导 / 留空 + // 简化: 默认根据命宫地支查命主, 身宫地支查身主 + const MING_ZHU = { '子':'贪狼','丑':'巨门','寅':'禄存','卯':'文曲','辰':'廉贞','巳':'武曲','午':'破军','未':'武曲','申':'廉贞','酉':'文曲','戌':'禄存','亥':'巨门' }; + const SHEN_ZHU = { '子':'火星','丑':'天相','寅':'天梁','卯':'天同','辰':'文昌','巳':'天机','午':'火星','未':'天相','申':'天梁','酉':'天同','戌':'文昌','亥':'天机' }; + const mingDizhi = zw.gongs[0].dizhi; + const shenDizhi = DIZHI[zw.shenGongIndex]; + out['ziwei.ming_zhu'] = (MING_ZHU as any)[mingDizhi] || '-'; + out['ziwei.shen_zhu'] = (SHEN_ZHU as any)[shenDizhi] || '-'; + // 子年斗君: 简化处理, 按生月+生时推算复杂, 暂用身宫前后位作占位 + out['ziwei.zi_dou_jun'] = zw.ziDouJun || '-'; + out['ziwei.wuxing_ju'] = zw.wuXingJu?.name || '-'; + + // ============ CORE DATA ============ + const en = bz.enrichment; + out['core.geju'] = en?.格局?.primary || '-'; + out['core.geju_confidence'] = en?.格局?.confidence || '-'; + out['core.wangshuai_verdict'] = en?.旺衰?.verdict || '-'; + out['core.wangshuai_score'] = en?.旺衰?.score?.toString() || '-'; + // 把 score 映射到 0-100% (假设 score -10 ~ +10) + const ws = en?.旺衰?.score ?? 0; + out['core.wangshuai_pos_pct'] = Math.max(0, Math.min(100, Math.round((ws + 10) * 5))).toString(); + const tc = en?.调候用神 || []; + out['core.tiaohou.0'] = tc[0] || '-'; + out['core.tiaohou.1'] = tc[1] || '-'; + out['core.tiaohou_confidence'] = '高'; + + const yl = en?.五行旺相 || {}; + for (const k of ['木','火','土','金','水']) { + out[`core.yueling.${k}`] = yl[k] || '-'; + } + + const wx = en?.五行统计?.withCangGan || en?.五行统计 || { 木:0,火:0,土:0,金:0,水:0 }; + for (const k of ['木','火','土','金','水']) out[`core.wuxing.${k}`] = wx[k] ?? '-'; + const wxMax = Math.max(...['木','火','土','金','水'].map(k => +wx[k] || 0)) || 1; + for (const k of ['木','火','土','金','水']) out[`core.wuxing_pct.${k}`] = Math.round(((+wx[k] || 0) / wxMax) * 100); + + // ============ ZIWEI 12 GONGS ============ + const sihuaCharMap: any = { 化禄:'禄', 化权:'权', 化科:'科', 化忌:'忌' }; + for (const g of zw.gongs) { + const mainStarsHtml = (g.mainStars && g.mainStars.length > 0) + ? g.mainStars.map((s: string) => { + const sh = (g.sihua || []).find((x: any) => x.star === s); + if (sh) { + const huaChar = sihuaCharMap[sh.hua] || sh.hua.slice(-1); + return `${s}${huaChar}`; + } + return s; + }).join('·') + : '无主星'; + // 辅星同样要处理四化(右弼化科 / 文昌化忌 / 文曲化科 等常落辅星) + const auxStarsHtml = (g.auxStars && g.auxStars.length > 0) + ? g.auxStars.map((s: string) => { + const sh = (g.sihua || []).find((x: any) => x.star === s); + if (sh) { + const huaChar = sihuaCharMap[sh.hua] || sh.hua.slice(-1); + return `${s}${huaChar}`; + } + return s; + }).join('·') + : '—'; + out[`gongs.${g.dizhi}.name`] = g.gong.endsWith('宫') ? g.gong : g.gong + '宫'; + out[`gongs.${g.dizhi}.ganzhi`] = g.tiangan + g.dizhi; + out[`gongs.${g.dizhi}.mainStarsHtml`] = mainStarsHtml; + out[`gongs.${g.dizhi}.auxStars`] = auxStarsHtml; + out[`gongs.${g.dizhi}.smallStars`] = ''; + out[`gongs.${g.dizhi}.daxian_range`] = g.daXian ? `${g.daXian.startAge}-${g.daXian.endAge}` : '-'; + // 命宫红框 / 身宫徽标 / 当前大限高亮 — 数据驱动, 不硬编码到模板 + const flags: string[] = []; + if (g.dizhi === mingDizhi) flags.push('ming'); + if (g.dizhi === shenDizhi) flags.push('shen'); + if (g.daXian && g.daXian.startAge <= virtualAge && virtualAge <= g.daXian.endAge) flags.push('current-daxian'); + out[`gongs.${g.dizhi}.flag`] = flags.join(' '); + out[`gongs.${g.dizhi}.shenBadge`] = (g.dizhi === shenDizhi) ? '' : ''; + } + + // ============ BAZI 4 PILLARS ============ + const cangGanFmt = (arr: any[]) => (arr || []).map((x: any) => `${x.gan}(${x.shiShen})`).join(' '); + const pillarKeyToCn: any = { year: '年', month: '月', day: '日', hour: '时' }; + for (const k of ['year','month','day','hour']) { + out[`bazi.${k}.shiShen`] = bz.shiShen?.[k] || '-'; + out[`bazi.${k}.gan`] = bz.siZhu[k].gan; + out[`bazi.${k}.zhi`] = bz.siZhu[k].zhi; + out[`bazi.${k}.cangGanHtml`] = cangGanFmt(bz.cangGan?.[k] || []); + out[`bazi.${k}.zhangSheng`] = bz.zhangSheng?.[k] || '-'; + out[`bazi.${k}.ziZuo`] = en?.自坐?.[pillarKeyToCn[k]] || en?.自坐?.[k] || '-'; + out[`bazi.${k}.naYin`] = bz.naYin?.[k] || '-'; + } + out['bazi.dayunStart'] = bz.dayunStart?.toString() || '-'; + + // ============ DAYUN 10 ============ + const dayunArr = (bz.dayun || []).slice(0, 10); + let currentDayun: any = null; + for (let i = 0; i < 10; i++) { + const d = dayunArr[i]; + if (d && d.startAge <= virtualAge && virtualAge <= d.endAge) currentDayun = d; + } + for (let i = 0; i < 10; i++) { + const d = dayunArr[i]; + if (!d) { + ['gz','age_range','shishen','current_class'].forEach(f => out[`dayun.${i}.${f}`] = '-'); + continue; + } + out[`dayun.${i}.gz`] = d.ganZhi.gan + d.ganZhi.zhi; + out[`dayun.${i}.age_range`] = `${d.startAge}-${d.endAge}`; + const sg = (d.ganShiShen || '').slice(0,1); + const sz = (d.zhiShiShen || '').slice(0,1); + out[`dayun.${i}.shishen`] = sg + sz; + out[`dayun.${i}.current_class`] = (currentDayun && d === currentDayun) ? 'current dayun' : ''; + } + + // ============ SECTION 02 阶段印证时间轴 (从 chart 算, 不靠 LLM) ============ + // 八字大运: 前 7 段 + const dayunForStage = dayunArr.slice(0, 7); + for (let i = 0; i < 7; i++) { + const d = dayunForStage[i]; + if (!d) { + ['range','gz','shishen','current_class'].forEach(f => out[`section_02.bazi.${i}.${f}`] = '-'); + continue; + } + out[`section_02.bazi.${i}.range`] = `${d.startAge}-${d.endAge}`; + out[`section_02.bazi.${i}.gz`] = d.ganZhi.gan + d.ganZhi.zhi; + const sg = (d.ganShiShen || '').slice(0,1); + const sz = (d.zhiShiShen || '').slice(0,1); + out[`section_02.bazi.${i}.shishen`] = sg + sz; + out[`section_02.bazi.${i}.current_class`] = (d.startAge <= virtualAge && virtualAge <= d.endAge) ? 'current' : ''; + } + + // 紫微大限: 按 startAge 排序取前 7 段 + const ziweiDaxian = zw.gongs + .filter((g: any) => g.daXian) + .map((g: any) => ({ startAge: g.daXian.startAge, endAge: g.daXian.endAge, gong: g.gong })) + .sort((a: any, b: any) => a.startAge - b.startAge) + .slice(0, 7); + for (let i = 0; i < 7; i++) { + const d = ziweiDaxian[i]; + if (!d) { + ['range','current_class'].forEach(f => out[`section_02.ziwei.${i}.${f}`] = '-'); + continue; + } + out[`section_02.ziwei.${i}.range`] = `${d.startAge}-${d.endAge}`; + out[`section_02.ziwei.${i}.current_class`] = (d.startAge <= virtualAge && virtualAge <= d.endAge) ? 'current' : ''; + } + + // ============ LIUNIAN 10 (current dayun) ============ + if (currentDayun) { + out['liunian_dayun_label'] = `${currentDayun.ganZhi.gan}${currentDayun.ganZhi.zhi} ${currentDayun.startAge}-${currentDayun.endAge}`; + } else { + out['liunian_dayun_label'] = '-'; + } + const liunianArr = ((currentDayun?.liuNian) || []).slice(0, 10); + for (let i = 0; i < 10; i++) { + const ln = liunianArr[i]; + if (!ln) { + ['year','age','gz','shishen','current_class'].forEach(f => out[`liunian.${i}.${f}`] = '-'); + continue; + } + out[`liunian.${i}.year`] = ln.year; + out[`liunian.${i}.age`] = ln.age; + out[`liunian.${i}.gz`] = ln.ganZhi.gan + ln.ganZhi.zhi; + out[`liunian.${i}.shishen`] = ln.ganShiShen ? (ln.ganShiShen.slice(0,1) + (ln.zhiShiShen?.slice(0,1) || '')) : ''; + out[`liunian.${i}.current_class`] = (ln.age === virtualAge) ? 'current' : ''; + } + + return out; +} + +function analysisToFlat(analysis: any): Record { + const out: Record = {}; + + // meta + if (analysis.meta) { + out['meta.archetype_name'] = analysis.meta.archetype_name; + out['meta.axis_oneliner'] = analysis.meta.axis_oneliner; + } + + // axes + consistency + if (analysis.axes) { + out['axes.bazi_main'] = analysis.axes.bazi_main; + out['axes.ziwei_main'] = analysis.axes.ziwei_main; + } + if (analysis.consistency) out['ziwei.consistency'] = analysis.consistency; + + // strengths / weaknesses + for (let i = 0; i < 3; i++) { + const s = analysis.strengths?.[i] || {}; + out[`strengths.${i}.title`] = s.title || '-'; + out[`strengths.${i}.desc`] = s.desc || '-'; + const w = analysis.weaknesses?.[i] || {}; + out[`weaknesses.${i}.title`] = w.title || '-'; + out[`weaknesses.${i}.desc`] = w.desc || '-'; + } + + // section 01 + if (analysis.section_01) { + out['section_01.text'] = analysis.section_01.text || '-'; + out['section_01.word_count'] = analysis.section_01.word_count || '-'; + } + + // section 02 - bazi/ziwei dayun ranges already from chart, only conclusion + if (analysis.section_02) { + out['section_02.conclusion'] = analysis.section_02.conclusion || '-'; + } + + // dim + const dims = ['career','wealth','marriage','children','family','health']; + for (const k of dims) { + const d = analysis.dim?.[k] || {}; + out[`dim.${k}.bazi`] = d.bazi || '-'; + out[`dim.${k}.ziwei`] = d.ziwei || '-'; + out[`dim.${k}.verdict`] = d.verdict || '-'; + out[`dim.${k}.verdict_class`] = d.verdict_class || 'verdict-yes'; + out[`dim.${k}.fused`] = d.fused || '-'; + } + + // conflicts + for (let i = 0; i < 3; i++) { + const c = analysis.conflicts?.[i] || {}; + out[`conflicts.${i}.point`] = c.point || '-'; + out[`conflicts.${i}.bazi`] = c.bazi || '-'; + out[`conflicts.${i}.ziwei`] = c.ziwei || '-'; + out[`conflicts.${i}.impact`] = c.impact || '-'; + out[`conflicts.${i}.impact_class`] = c.impact_class || 'low'; + out[`conflicts.${i}.advice`] = c.advice || '-'; + } + + // final + if (analysis.final) { + out['final.life_axis'] = analysis.final.life_axis || '-'; + for (let i = 0; i < 5; i++) { + const n = analysis.final.nodes?.[i] || {}; + out[`final.nodes.${i}.age`] = n.age || '-'; + out[`final.nodes.${i}.year`] = n.year || '-'; + out[`final.nodes.${i}.event`] = n.event || '-'; + } + for (let i = 0; i < 3; i++) { + const r = analysis.final.risks?.[i] || {}; + out[`final.risks.${i}.range`] = r.range || '-'; + out[`final.risks.${i}.desc`] = r.desc || '-'; + } + for (let i = 0; i < 2; i++) { + const l = analysis.final.leverage?.[i] || {}; + out[`final.leverage.${i}.title`] = l.title || '-'; + out[`final.leverage.${i}.desc`] = l.desc || '-'; + } + for (let i = 0; i < 4; i++) out[`final.advice.${i}`] = analysis.final.advice?.[i] || '-'; + } + + // confidence + if (analysis.confidence) { + for (const k of ['bazi','ziwei','consistency','stability']) { + out[`confidence.${k}_level`] = analysis.confidence[`${k}_level`] || '-'; + out[`confidence.${k}_score`] = analysis.confidence[`${k}_score`] || '-'; + } + out['confidence.note'] = analysis.confidence.note || '-'; + } + + return out; +} + +function renderTemplate(template: string, data: Record): string { + let html = template; + // 第一轮: 精确替换 + for (const k of Object.keys(data)) { + const re = new RegExp(`\\{\\{${k.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')}\\}\\}`, 'g'); + html = html.replace(re, String(data[k])); + } + // 兜底: 剩余未匹配占位符替换为 '-' + html = html.replace(/\{\{[a-zA-Z0-9_.]+\}\}/g, '-'); + return html; +} + +function main() { + const args = parseArgs(); + if (!args.chart || !args.template) { + console.error('Usage: npx tsx render.ts --chart=chart.json [--analysis=analysis.json] --template=path/to/template.html [--output=out.html]'); + process.exit(1); + } + const chart = JSON.parse(fs.readFileSync(args.chart, 'utf-8')); + const analysis = args.analysis ? JSON.parse(fs.readFileSync(args.analysis, 'utf-8')) : {}; + const template = fs.readFileSync(args.template, 'utf-8'); + + const chartFlat = chartToFlat(chart, args.currentYear ? +args.currentYear : undefined); + const analysisFlat = analysisToFlat(analysis); + const data = { ...chartFlat, ...analysisFlat }; + + const html = renderTemplate(template, data); + + if (args.output) { + fs.writeFileSync(args.output, html, 'utf-8'); + console.error(`Rendered HTML written to ${args.output}`); + } else { + process.stdout.write(html); + } +} + +main(); diff --git a/calculator/run-chart.ts b/calculator/run-chart.ts new file mode 100644 index 0000000..77ee39e --- /dev/null +++ b/calculator/run-chart.ts @@ -0,0 +1,87 @@ +// 排盘单一入口 — 输入生辰, 输出完整 JSON (Yiqi createChart + enrichBazi) +// +// 用法: +// npx tsx run-chart.ts --year=2000 --month=1 --day=1 --hour=12 --minute=0 --gender=male +// 可选: --isLunar=true --timeZone=8 --output=path/to/file.json +// +// 不指定 --output 则打印到 stdout + +import { createChart } from './yiqi-core/index'; +import { getZhiCangGanFull } from './yiqi-core/bazi'; +import { enrichBazi } from './bazi-enrich/enrich'; +import * as fs from 'fs'; + +function parseArgs(): Record { + const args: Record = {}; + for (const a of process.argv.slice(2)) { + const m = a.match(/^--([^=]+)=(.*)$/); + if (m) args[m[1]] = m[2]; + } + return args; +} + +function main() { + const args = parseArgs(); + const required = ['year','month','day','hour','minute','gender']; + for (const k of required) { + if (!args[k]) { + console.error(`Missing required arg: --${k}=...`); + console.error('Usage: npx tsx run-chart.ts --year=2000 --month=1 --day=1 --hour=12 --minute=0 --gender=male'); + process.exit(1); + } + } + const gender = args.gender === 'male' || args.gender === 'female' ? args.gender : (args.gender === '男' ? 'male' : 'female'); + + const birthInfo = { + year: +args.year, + month: +args.month, + day: +args.day, + hour: +args.hour, + minute: +args.minute, + isLunar: args.isLunar === 'true', + gender: gender as 'male'|'female', + timeZone: args.timeZone ? +args.timeZone : 8, + }; + + // Step 1: Yiqi 算法层 — 四柱+紫微+大运+流年 + const chart: any = createChart(birthInfo); + + // 附加地支藏干 (含十神) + const dm = chart.bazi.dayMaster; + const z = chart.bazi.siZhu; + chart.bazi.cangGan = { + year: getZhiCangGanFull(z.year.zhi, dm), + month: getZhiCangGanFull(z.month.zhi, dm), + day: getZhiCangGanFull(z.day.zhi, dm), + hour: getZhiCangGanFull(z.hour.zhi, dm), + }; + + // 补 endAge 字段 (Yiqi 只给了 startAge/endYear, OpenClaw 等下游脚本会查 endAge) + if (chart.bazi.dayun && Array.isArray(chart.bazi.dayun)) { + for (const d of chart.bazi.dayun) { + if (d.startAge !== undefined && d.endAge === undefined) { + d.endAge = d.startAge + 9; + } + } + } + + // Step 2: enrichBazi 补层 — 格局/旺衰/调候/刑冲合害/盖头 + const siZhuForEnrich = { + '年': chart.bazi.siZhu.year, + '月': chart.bazi.siZhu.month, + '日': chart.bazi.siZhu.day, + '时': chart.bazi.siZhu.hour, + }; + chart.bazi.enrichment = enrichBazi(siZhuForEnrich); + + const json = JSON.stringify(chart, null, 2); + + if (args.output) { + fs.writeFileSync(args.output, json, 'utf-8'); + console.error(`Chart written to ${args.output}`); + } else { + process.stdout.write(json); + } +} + +main(); diff --git a/calculator/tsconfig.json b/calculator/tsconfig.json new file mode 100644 index 0000000..3fb8280 --- /dev/null +++ b/calculator/tsconfig.json @@ -0,0 +1,26 @@ +{ + "compilerOptions": { + "target": "ES2020", + "module": "commonjs", + "outDir": "dist", + "rootDir": ".", + "esModuleInterop": true, + "skipLibCheck": true, + "strict": false, + "noEmitOnError": false, + "resolveJsonModule": true, + "declaration": false, + "sourceMap": false + }, + "include": [ + "run-chart.ts", + "dump-text.ts", + "render.ts", + "yiqi-core/**/*.ts", + "bazi-enrich/**/*.ts" + ], + "exclude": [ + "bazi-enrich/print-full.ts", + "bazi-enrich/test-case-b.ts" + ] +} diff --git a/calculator/yiqi-core/bazi.ts b/calculator/yiqi-core/bazi.ts new file mode 100644 index 0000000..b32ff8d --- /dev/null +++ b/calculator/yiqi-core/bazi.ts @@ -0,0 +1,356 @@ +// 八字排盘核心算法(使用lunar-javascript库) + +import { BirthInfo, BaziChart, SiZhu, Tiangan, DayunDetail, LiuNian, GanZhi } from './types'; +import { Lunar, Solar } from 'lunar-typescript'; +import { getSiZhuChangSheng } from './zhangsheng'; +import { getSiZhuNaYin } from './nayin'; +import { getAccurateMonthGanZhi } from './jieqi'; + +/** + * 十神关系映射 + */ +const SHISHEN_MAP = { + '甲': { '甲': '比肩', '乙': '劫财', '丙': '食神', '丁': '伤官', '戊': '偏财', '己': '正财', '庚': '七杀', '辛': '正官', '壬': '偏印', '癸': '正印' }, + '乙': { '甲': '劫财', '乙': '比肩', '丙': '伤官', '丁': '食神', '戊': '正财', '己': '偏财', '庚': '正官', '辛': '七杀', '壬': '正印', '癸': '偏印' }, + '丙': { '甲': '偏印', '乙': '正印', '丙': '比肩', '丁': '劫财', '戊': '食神', '己': '伤官', '庚': '偏财', '辛': '正财', '壬': '七杀', '癸': '正官' }, + '丁': { '甲': '正印', '乙': '偏印', '丙': '劫财', '丁': '比肩', '戊': '伤官', '己': '食神', '庚': '正财', '辛': '偏财', '壬': '正官', '癸': '七杀' }, + '戊': { '甲': '七杀', '乙': '正官', '丙': '偏印', '丁': '正印', '戊': '比肩', '己': '劫财', '庚': '食神', '辛': '伤官', '壬': '偏财', '癸': '正财' }, + '己': { '甲': '正官', '乙': '七杀', '丙': '正印', '丁': '偏印', '戊': '劫财', '己': '比肩', '庚': '伤官', '辛': '食神', '壬': '正财', '癸': '偏财' }, + '庚': { '甲': '偏财', '乙': '正财', '丙': '七杀', '丁': '正官', '戊': '偏印', '己': '正印', '庚': '比肩', '辛': '劫财', '壬': '食神', '癸': '伤官' }, + '辛': { '甲': '正财', '乙': '偏财', '丙': '正官', '丁': '七杀', '戊': '正印', '己': '偏印', '庚': '劫财', '辛': '比肩', '壬': '伤官', '癸': '食神' }, + '壬': { '甲': '食神', '乙': '伤官', '丙': '偏财', '丁': '正财', '戊': '七杀', '己': '正官', '庚': '偏印', '辛': '正印', '壬': '比肩', '癸': '劫财' }, + '癸': { '甲': '伤官', '乙': '食神', '丙': '正财', '丁': '偏财', '戊': '正官', '己': '七杀', '庚': '正印', '辛': '偏印', '壬': '劫财', '癸': '比肩' } +} as const; + +/** + * 地支藏干(主气)映射 + */ +const DIZHI_CANGGAN = { + '子': '癸', '丑': '己', '寅': '甲', '卯': '乙', + '辰': '戊', '巳': '丙', '午': '丁', '未': '己', + '申': '庚', '酉': '辛', '戌': '戊', '亥': '壬' +} as const; + +/** + * 地支藏干(完整)映射 - 每个地支包含本气、中气、余气 + */ +const DIZHI_CANGGAN_FULL = { + '子': ['癸'], + '丑': ['己', '癸', '辛'], + '寅': ['甲', '丙', '戊'], + '卯': ['乙'], + '辰': ['戊', '乙', '癸'], + '巳': ['丙', '庚', '戊'], + '午': ['丁', '己'], + '未': ['己', '丁', '乙'], + '申': ['庚', '壬', '戊'], + '酉': ['辛'], + '戌': ['戊', '辛', '丁'], + '亥': ['壬', '甲'] +} as const; + +/** + * 获取十神关系 + */ +function getShiShen(dayGan: string, targetGan: string): string { + return (SHISHEN_MAP as any)[dayGan]?.[targetGan] || '未知'; +} + +/** + * 获取地支藏干主气 + */ +function getZhiCangGan(zhi: string): string { + return (DIZHI_CANGGAN as any)[zhi] || '未知'; +} + +/** + * 获取地支完整藏干(含所有藏干及其十神) + * @param zhi 地支 + * @param dayMaster 日主天干 + * @returns 藏干数组,每项包含天干和对应十神 + */ +export function getZhiCangGanFull(zhi: string, dayMaster: string): Array<{ gan: string, shiShen: string }> { + const cangGanList = (DIZHI_CANGGAN_FULL as any)[zhi] || []; + return cangGanList.map((gan: string) => ({ + gan, + shiShen: getShiShen(dayMaster, gan) + })); +} + +/** + * 处理晚子时(23:00-24:00)的日柱 + * 在传统命理中,晚子时应该使用第二天的日柱 + * @param solar Solar对象 + * @returns 调整后的Solar对象(如果是晚子时) + */ +function getAdjustedSolarForZiShi(solar: Solar): Solar { + const hour = solar.getHour(); + + // 如果是晚子时(23:00-24:00),使用第二天的日期计算日柱 + if (hour === 23) { + console.error('[晚子时处理] 23点,使用第二天的日柱'); + // 获取第二天的日期 + const nextDay = solar.next(1); // 下一天 + return nextDay; + } + + return solar; +} + +/** + * 创建八字排盘(使用lunar-javascript库) + * @param birthInfo 生辰信息 + * @returns 八字排盘结果 + */ +export function createBaziChart(birthInfo: BirthInfo): BaziChart { + try { + // 创建Solar对象(公历日期) + const solar = Solar.fromYmdHms( + birthInfo.year, + birthInfo.month, + birthInfo.day, + birthInfo.hour, + birthInfo.minute, + 0 + ); + + // 处理晚子时(23:00-24:00),使用第二天的日柱 + const solarForDay = getAdjustedSolarForZiShi(solar); + const lunarForDay = solarForDay.getLunar(); + const baZiForDay = lunarForDay.getEightChar(); + + // 转换为农历(用于年柱、月柱、时柱) + const lunar = solar.getLunar(); + + // 获取八字 + const baZi = lunar.getEightChar(); + + // 使用精确节气时刻计算月柱 + const accurateMonthGZ = getAccurateMonthGanZhi(solar); + + // 获取四柱干支 + const siZhu: SiZhu = { + year: { + gan: baZi.getYear().substring(0, 1) as Tiangan, + zhi: baZi.getYear().substring(1, 2) as any + }, + month: { + gan: accurateMonthGZ.gan, // 使用精确节气计算的月柱 + zhi: accurateMonthGZ.zhi, // 使用精确节气计算的月柱 + }, + day: { + gan: baZiForDay.getDay().substring(0, 1) as Tiangan, // 使用调整后的日柱(处理晚子时) + zhi: baZiForDay.getDay().substring(1, 2) as any // 使用调整后的日柱(处理晚子时) + }, + hour: { + gan: baZi.getTime().substring(0, 1) as Tiangan, + zhi: baZi.getTime().substring(1, 2) as any + } + }; + + const dayMaster = siZhu.day.gan; + + // 计算十神 + const shiShen = { + year: getShiShen(dayMaster, siZhu.year.gan) as any, + month: getShiShen(dayMaster, siZhu.month.gan) as any, + day: getShiShen(dayMaster, siZhu.day.gan) as any, + hour: getShiShen(dayMaster, siZhu.hour.gan) as any + }; + + // 获取大运(使用lunar-javascript库) + const yun = baZi.getYun(birthInfo.gender === 'male' ? 1 : 0); + const dayunStart = Math.floor(yun.getStartYear()); + + // 获取大运列表(跳过第一个,因为它是起运前的状态) + const dayunList = yun.getDaYun().slice(1, 11); // 取第2-11个,共10步大运 + + const dayun: DayunDetail[] = dayunList.map((d: any) => { + const ganZhiStr = d.getGanZhi(); + const ganZhi: GanZhi = { + gan: ganZhiStr.substring(0, 1) as Tiangan, + zhi: ganZhiStr.substring(1, 2) as any + }; + + // 计算天干十神 + const ganShiShen = getShiShen(dayMaster, ganZhi.gan) as any; + + // 计算地支藏干的十神 + const zhiCangGan = getZhiCangGan(ganZhi.zhi); + const zhiShiShen = getShiShen(dayMaster, zhiCangGan) as any; + + // 获取该大运内的流年 + const liuNianList = d.getLiuNian(); + const liuNian: LiuNian[] = liuNianList.map((ln: any) => { + const lnGanZhiStr = ln.getGanZhi(); + return { + year: ln.getYear(), + age: ln.getAge(), + ganZhi: { + gan: lnGanZhiStr.substring(0, 1) as Tiangan, + zhi: lnGanZhiStr.substring(1, 2) as any + } + }; + }); + + return { + ganZhi, + startAge: d.getStartAge(), + startYear: d.getStartYear(), + endYear: d.getEndYear(), + ganShiShen, + zhiShiShen, + liuNian + }; + }); + + // 计算十二长生(星运)- zhangSheng 不是 changSheng + const zhangSheng = getSiZhuChangSheng(dayMaster, { + year: siZhu.year.zhi, + month: siZhu.month.zhi, + day: siZhu.day.zhi, + hour: siZhu.hour.zhi + }); + + // 计算纳音 + const naYin = getSiZhuNaYin(siZhu); + + console.error('🔍 八字计算结果 - zhangSheng:', zhangSheng); + console.error('🔍 八字计算结果 - naYin:', naYin); + + return { + birthInfo, + siZhu, + dayMaster, + shiShen, + zhangSheng, + naYin, + dayunStart, + dayun + }; + } catch (error) { + console.error('创建八字排盘失败:', error); + throw new Error('八字排盘计算失败: ' + (error as Error).message); + } +} + +/** + * 运行八字测试 + */ +export function runBaziTests() { + const testCases = [ + { + name: '1979年5月4日6点男命(己年为阴年,男命逆排)', + input: { year: 1979, month: 5, day: 4, hour: 6, minute: 0, gender: 'male' as const, isLunar: false, timeZone: 8 }, + expected: { + year: '己未', + month: '戊辰', + day: '辛未', + hour: '辛卯', + isYangYear: false, // 己为阴年 + shouldShunPai: false // 阴年男命逆排 + } + }, + { + name: '2000年1月1日12点女命(己年为阴年,女命顺排)', + input: { year: 2000, month: 1, day: 1, hour: 12, minute: 0, gender: 'female' as const, isLunar: false, timeZone: 8 }, + expected: { + year: '己卯', + month: '丙子', + day: '戊午', + hour: '戊午', + isYangYear: false, // 己为阴年 + shouldShunPai: true // 阴年女命顺排 + } + }, + { + name: '1988年8月15日10点男命(戊年为阳年,男命顺排)', + input: { year: 1988, month: 8, day: 15, hour: 10, minute: 0, gender: 'male' as const, isLunar: false, timeZone: 8 }, + expected: { + isYangYear: true, // 戊为阳年 + shouldShunPai: true // 阳年男命顺排 + } + }, + { + name: '1987年3月20日14点女命(丁年为阴年,女命顺排)', + input: { year: 1987, month: 3, day: 20, hour: 14, minute: 0, gender: 'female' as const, isLunar: false, timeZone: 8 }, + expected: { + isYangYear: false, // 丁为阴年 + shouldShunPai: true // 阴年女命顺排 + } + }, + { + name: '2000年3月1日12点女命(庚年为阳年,女命逆排)', + input: { year: 2000, month: 3, day: 1, hour: 12, minute: 0, gender: 'female' as const, isLunar: false, timeZone: 8 }, + expected: { + year: '庚辰', + month: '戊寅', + day: '乙卯', + hour: '壬午', + isYangYear: true, // 庚为阳年 + shouldShunPai: false // 阳年女命逆排 + } + } + ]; + + const results = { + passed: 0, + failed: 0, + details: [] as any[] + }; + + testCases.forEach((testCase) => { + try { + const result = createBaziChart(testCase.input); + const actualYear = result.siZhu.year.gan + result.siZhu.year.zhi; + const actualMonth = result.siZhu.month.gan + result.siZhu.month.zhi; + const actualDay = result.siZhu.day.gan + result.siZhu.day.zhi; + const actualHour = result.siZhu.hour.gan + result.siZhu.hour.zhi; + + // 检查年干阴阳和大运顺逆 + const yearGanIndex = ['甲', '乙', '丙', '丁', '戊', '己', '庚', '辛', '壬', '癸'].indexOf(result.siZhu.year.gan); + const isYangYear = yearGanIndex % 2 === 0; + const isMale = testCase.input.gender === 'male'; + const shouldShunPai = (isYangYear && isMale) || (!isYangYear && !isMale); + + const yearPass = testCase.expected.year ? actualYear === testCase.expected.year : true; + const monthPass = testCase.expected.month ? actualMonth === testCase.expected.month : true; + const dayPass = testCase.expected.day ? actualDay === testCase.expected.day : true; + const hourPass = testCase.expected.hour ? actualHour === testCase.expected.hour : true; + const yinYangPass = isYangYear === testCase.expected.isYangYear; + const shunPaiPass = shouldShunPai === testCase.expected.shouldShunPai; + const allPass = yearPass && monthPass && dayPass && hourPass && yinYangPass && shunPaiPass; + + if (allPass) { + results.passed++; + } else { + results.failed++; + } + + results.details.push({ + name: testCase.name, + passed: allPass, + expected: testCase.expected, + actual: { + year: actualYear, + month: actualMonth, + day: actualDay, + hour: actualHour, + isYangYear, + shouldShunPai, + dayun: result.dayun.slice(0, 3).map(d => d.ganZhi.gan + d.ganZhi.zhi) // 只显示前3步大运 + }, + details: { yearPass, monthPass, dayPass, hourPass, yinYangPass, shunPaiPass } + }); + } catch (error) { + results.failed++; + results.details.push({ + name: testCase.name, + passed: false, + error: (error as Error).message + }); + } + }); + + return results; +} diff --git a/calculator/yiqi-core/daxian.ts b/calculator/yiqi-core/daxian.ts new file mode 100644 index 0000000..71753a7 --- /dev/null +++ b/calculator/yiqi-core/daxian.ts @@ -0,0 +1,123 @@ +// 大运计算模块 + +import { Tiangan, Dizhi } from './types'; + +/** + * 天干数组 + */ +const TIANGAN: Tiangan[] = ['甲', '乙', '丙', '丁', '戊', '己', '庚', '辛', '壬', '癸']; + +/** + * 地支数组 + */ +const DIZHI: Dizhi[] = ['子', '丑', '寅', '卯', '辰', '巳', '午', '未', '申', '酉', '戌', '亥']; + +/** + * 大运信息 + */ +export interface DaXianInfo { + gongIndex: number; // 大运宫位索引(0-11) + startAge: number; // 起始年龄(虚岁) + endAge: number; // 结束年龄(虚岁) + ganZhi: string; // 干支 + direction: 'shun' | 'ni'; // 顺行或逆行 +} + +/** + * 计算大运信息 + * @param mingGongIndex 命宫索引(0-11,子=0) + * @param yinYang 阴阳男女 + * @param wuXingJuNumber 五行局数(2,3,4,5,6) + * @param currentAge 当前年龄(虚岁),用于标记当前大运 + * @returns 大运信息数组(10个大运) + */ +export function calculateDaXian( + mingGongIndex: number, + yinYang: '阳男' | '阴男' | '阳女' | '阴女', + wuXingJuNumber: number, + currentAge: number = 0 +): DaXianInfo[] { + const daXianList: DaXianInfo[] = []; + + // 判断大运方向 + // 阳男、阴女:大限顺时针走(地支索引递增:丑→寅→卯...) + // 阴男、阳女:大限逆时针走(地支索引递减:丑→子→亥...) + const isShunShiZhen = yinYang === '阳男' || yinYang === '阴女'; + const direction = isShunShiZhen ? 'shun' : 'ni'; + + // 起运年龄由五行局决定 + const startAge = wuXingJuNumber; + + // 生成12个大运(每个大运管10年) + for (let i = 0; i < 12; i++) { + const age = startAge + i * 10; + const endAge = age + 9; + + // 计算大运宫位(从命宫开始) + // gongIndex 是地支索引(0-11:子丑寅卯辰巳午未申酉戌亥) + let gongIndex: number; + if (isShunShiZhen) { + // 阳男、阴女:顺时针走,地支索引递增 + // 例如命宫在丑(1),第1大限在丑(1),第2大限在寅(2),第3大限在卯(3) + gongIndex = (mingGongIndex + i) % 12; + } else { + // 阴男、阳女:逆时针走,地支索引递减 + // 例如命宫在丑(1),第1大限在丑(1),第2大限在子(0),第3大限在亥(11) + gongIndex = (mingGongIndex - i + 12) % 12; + } + + daXianList.push({ + gongIndex, + startAge: age, + endAge, + ganZhi: '', // 这里可以添加大运干支,暂时留空 + direction + }); + } + + return daXianList; +} + +/** + * 计算当前年龄的大运 + */ +export function getCurrentDaXian(daXianList: DaXianInfo[], age: number): DaXianInfo | null { + return daXianList.find(dx => age >= dx.startAge && age <= dx.endAge) || null; +} + +/** + * 获取宫位的大运信息 + */ +export function getDaXianForGong(gongIndex: number, daXianList: DaXianInfo[]): DaXianInfo | null { + return daXianList.find(dx => dx.gongIndex === gongIndex) || null; +} + +/** + * 计算虚岁 + */ +export function calculateXuSui(birthYear: number, currentYear: number = new Date().getFullYear()): number { + return currentYear - birthYear + 1; +} + +/** + * 计算流年干支 + * @param year 公历年份 + */ +export function getLiuNianGanZhi(year: number): { gan: Tiangan; zhi: Dizhi } { + const ganIndex = (year - 4) % 10; // 甲子年是1984年,1984-4=1980,1980%10=0 + const zhiIndex = (year - 4) % 12; + + return { + gan: TIANGAN[ganIndex], + zhi: DIZHI[zhiIndex] + }; +} + +/** + * 根据流年地支获取宫位索引 + * @param zhi 地支 + * @returns 宫位索引(0=子,1=丑,...,11=亥) + */ +export function getGongIndexByZhi(zhi: Dizhi): number { + return DIZHI.indexOf(zhi); +} diff --git a/calculator/yiqi-core/ganzhi.ts b/calculator/yiqi-core/ganzhi.ts new file mode 100644 index 0000000..8ddd1f6 --- /dev/null +++ b/calculator/yiqi-core/ganzhi.ts @@ -0,0 +1,156 @@ +// 天干地支基础数据和工具函数 + +import { Tiangan, Dizhi, GanZhi } from './types'; + +// 天干数组 +export const TIANGAN: Tiangan[] = ['甲', '乙', '丙', '丁', '戊', '己', '庚', '辛', '壬', '癸']; + +// 地支数组 +export const DIZHI: Dizhi[] = ['子', '丑', '寅', '卯', '辰', '巳', '午', '未', '申', '酉', '戌', '亥']; + +// 天干五行属性 +export const TIANGAN_WUXING = { + '甲': '木', '乙': '木', + '丙': '火', '丁': '火', + '戊': '土', '己': '土', + '庚': '金', '辛': '金', + '壬': '水', '癸': '水' +} as const; + +// 地支五行属性 +export const DIZHI_WUXING = { + '子': '水', '丑': '土', '寅': '木', '卯': '木', + '辰': '土', '巳': '火', '午': '火', '未': '土', + '申': '金', '酉': '金', '戌': '土', '亥': '水' +} as const; + +// 地支对应的月份(节气月) +export const DIZHI_MONTH = { + '寅': 1, '卯': 2, '辰': 3, '巳': 4, '午': 5, '未': 6, + '申': 7, '酉': 8, '戌': 9, '亥': 10, '子': 11, '丑': 12 +} as const; + +// 十神关系表(以日干为中心) +export const SHISHEN_MAP = { + '甲': { '甲': '比肩', '乙': '劫财', '丙': '食神', '丁': '伤官', '戊': '偏财', '己': '正财', '庚': '七杀', '辛': '正官', '壬': '偏印', '癸': '正印' }, + '乙': { '甲': '劫财', '乙': '比肩', '丙': '伤官', '丁': '食神', '戊': '正财', '己': '偏财', '庚': '正官', '辛': '七杀', '壬': '正印', '癸': '偏印' }, + '丙': { '甲': '偏印', '乙': '正印', '丙': '比肩', '丁': '劫财', '戊': '食神', '己': '伤官', '庚': '偏财', '辛': '正财', '壬': '七杀', '癸': '正官' }, + '丁': { '甲': '正印', '乙': '偏印', '丙': '劫财', '丁': '比肩', '戊': '伤官', '己': '食神', '庚': '正财', '辛': '偏财', '壬': '正官', '癸': '七杀' }, + '戊': { '甲': '七杀', '乙': '正官', '丙': '偏印', '丁': '正印', '戊': '比肩', '己': '劫财', '庚': '食神', '辛': '伤官', '壬': '偏财', '癸': '正财' }, + '己': { '甲': '正官', '乙': '七杀', '丙': '正印', '丁': '偏印', '戊': '劫财', '己': '比肩', '庚': '伤官', '辛': '食神', '壬': '正财', '癸': '偏财' }, + '庚': { '甲': '偏财', '乙': '正财', '丙': '七杀', '丁': '正官', '戊': '偏印', '己': '正印', '庚': '比肩', '辛': '劫财', '壬': '食神', '癸': '伤官' }, + '辛': { '甲': '正财', '乙': '偏财', '丙': '正官', '丁': '七杀', '戊': '正印', '己': '偏印', '庚': '劫财', '辛': '比肩', '壬': '伤官', '癸': '食神' }, + '壬': { '甲': '食神', '乙': '伤官', '丙': '偏财', '丁': '正财', '戊': '七杀', '己': '正官', '庚': '偏印', '辛': '正印', '壬': '比肩', '癸': '劫财' }, + '癸': { '甲': '伤官', '乙': '食神', '丙': '正财', '丁': '偏财', '戊': '正官', '己': '七杀', '庚': '正印', '辛': '偏印', '壬': '劫财', '癸': '比肩' } +} as const; + +/** + * 根据数字获取天干 + * @param num 数字(0-9 对应甲-癸,支持更大数字取模) + * @returns 对应的天干 + */ +export function getTiangan(num: number): Tiangan { + return TIANGAN[num % 10]; +} + +/** + * 根据数字获取地支 + * @param num 数字(0-11 对应子-亥,支持更大数字取模) + * @returns 对应的地支 + */ +export function getDizhi(num: number): Dizhi { + return DIZHI[num % 12]; +} + +/** + * 获取天干的序号 + * @param gan 天干 + * @returns 序号(0-9) + */ +export function getTianganIndex(gan: Tiangan): number { + return TIANGAN.indexOf(gan); +} + +/** + * 获取地支的序号 + * @param zhi 地支 + * @returns 序号(0-11) + */ +export function getDizhiIndex(zhi: Dizhi): number { + return DIZHI.indexOf(zhi); +} + +/** + * 根据年份获取干支 + * @param year 公历年份 + * @returns 对应的干支 + */ +export function getYearGanZhi(year: number): GanZhi { + // 采用标准算法:以公元4年甲子年为起点 + // 天干循环:(year - 4) % 10 + // 地支循环:(year - 4) % 12 + const ganIndex = (year - 4) % 10; + const zhiIndex = (year - 4) % 12; + + return { + gan: getTiangan(ganIndex), + zhi: getDizhi(zhiIndex) + }; +} + +/** + * 根据日期获取日干支(使用Date对象计算) + * @param year 年 + * @param month 月 + * @param day 日 + * @returns 对应的干支 + */ +export function getDayGanZhi(year: number, month: number, day: number): GanZhi { + // 计算从1900年1月1日到目标日期的天数差 + const baseDate = new Date(1900, 0, 1); // 1900年1月1日 + const targetDate = new Date(year, month - 1, day); // 目标日期 + + const daysDiff = Math.floor((targetDate.getTime() - baseDate.getTime()) / (1000 * 60 * 60 * 24)); + + // 1900年1月1日是己丑日(天干索引5,地支索引1) + const ganIndex = (daysDiff + 5) % 10; + const zhiIndex = (daysDiff + 1) % 12; + + return { + gan: getTiangan(ganIndex >= 0 ? ganIndex : ganIndex + 10), + zhi: getDizhi(zhiIndex >= 0 ? zhiIndex : zhiIndex + 12) + }; +} + +/** + * 根据时辰获取时干支 + * @param dayGan 日干 + * @param hour 时辰(0-23) + * @returns 对应的干支 + */ +export function getHourGanZhi(dayGan: Tiangan, hour: number): GanZhi { + // 确定时支 + const zhiIndex = Math.floor((hour + 1) / 2) % 12; + const zhi = getDizhi(zhiIndex); + + // 根据日干推算时干(五鼠遁法) + const dayGanIndex = getTianganIndex(dayGan); + const hourGanBaseMap = [0, 2, 4, 6, 8, 0, 2, 4, 6, 8]; // 甲己起甲子,乙庚起丙子... + const hourGanBase = hourGanBaseMap[dayGanIndex]; + const ganIndex = (hourGanBase + zhiIndex) % 10; + + return { + gan: getTiangan(ganIndex), + zhi: zhi + }; +} + +/** + * 获取十神关系 + * @param dayGan 日干 + * @param targetGan 目标天干 + * @returns 十神关系 + */ +export function getShiShen(dayGan: Tiangan, targetGan: Tiangan) { + return SHISHEN_MAP[dayGan][targetGan]; +} diff --git a/calculator/yiqi-core/index.ts b/calculator/yiqi-core/index.ts new file mode 100644 index 0000000..f36a1a4 --- /dev/null +++ b/calculator/yiqi-core/index.ts @@ -0,0 +1,159 @@ +// 统一排盘接口 + +import { BirthInfo, ChartResult } from './types'; +import { createBaziChart, runBaziTests } from './bazi'; +import { createZiweiChart, runZiweiTests } from './ziwei-standard'; + +/** + * 创建完整的排盘(八字 + 紫微斗数) + * @param birthInfo 生辰信息 + * @returns 完整排盘结果 + */ +export function createChart(birthInfo: BirthInfo): ChartResult { + try { + const bazi = createBaziChart(birthInfo); + const ziwei = createZiweiChart(birthInfo); + + return { + bazi, + ziwei + }; + } catch (error) { + throw new Error(`排盘计算失败: ${error instanceof Error ? error.message : String(error)}`); + } +} + +/** + * 验证生辰信息的有效性 + * @param birthInfo 生辰信息 + * @returns 验证结果 + */ +export function validateBirthInfo(birthInfo: BirthInfo): { valid: boolean; errors: string[] } { + const errors: string[] = []; + + // 验证年份 + if (birthInfo.year < 1900 || birthInfo.year > 2100) { + errors.push('年份应在1900-2100之间'); + } + + // 验证月份 + if (birthInfo.month < 1 || birthInfo.month > 12) { + errors.push('月份应在1-12之间'); + } + + // 验证日期 + if (birthInfo.day < 1 || birthInfo.day > 31) { + errors.push('日期应在1-31之间'); + } + + // 验证时辰 + if (birthInfo.hour < 0 || birthInfo.hour > 23) { + errors.push('小时应在0-23之间'); + } + + // 验证分钟 + if (birthInfo.minute < 0 || birthInfo.minute > 59) { + errors.push('分钟应在0-59之间'); + } + + // 验证性别 + if (birthInfo.gender !== 'male' && birthInfo.gender !== 'female') { + errors.push('性别必须为男性或女性'); + } + + // 简单的闰年和月份天数验证 + if (birthInfo.month === 2) { + const isLeapYear = (birthInfo.year % 4 === 0 && birthInfo.year % 100 !== 0) || (birthInfo.year % 400 === 0); + if (birthInfo.day > (isLeapYear ? 29 : 28)) { + errors.push('2月份日期超出范围'); + } + } else if ([4, 6, 9, 11].includes(birthInfo.month)) { + if (birthInfo.day > 30) { + errors.push('该月份只有30天'); + } + } + + return { + valid: errors.length === 0, + errors + }; +} + +/** + * 运行所有算法测试 + * @returns 综合测试结果 + */ +export function runAllTests(): { + bazi: ReturnType; + ziwei: ReturnType; + summary: { totalPassed: number; totalFailed: number; success: boolean } +} { + const baziResults = runBaziTests(); + const ziweiResults = runZiweiTests(); + + const totalPassed = baziResults.passed + ziweiResults.passed; + const totalFailed = baziResults.failed + ziweiResults.failed; + + return { + bazi: baziResults, + ziwei: ziweiResults, + summary: { + totalPassed, + totalFailed, + success: totalFailed === 0 + } + }; +} + +/** + * 格式化排盘结果为可读字符串(用于调试) + * @param chart 排盘结果 + * @returns 格式化的字符串 + */ +export function formatChartResult(chart: ChartResult): string { + let result = '=== 排盘结果 ===\n\n'; + + // 八字部分 + result += '【八字排盘】\n'; + result += `年柱: ${chart.bazi.siZhu.year.gan}${chart.bazi.siZhu.year.zhi}\n`; + result += `月柱: ${chart.bazi.siZhu.month.gan}${chart.bazi.siZhu.month.zhi}\n`; + result += `日柱: ${chart.bazi.siZhu.day.gan}${chart.bazi.siZhu.day.zhi}\n`; + result += `时柱: ${chart.bazi.siZhu.hour.gan}${chart.bazi.siZhu.hour.zhi}\n`; + result += `日主: ${chart.bazi.dayMaster}\n`; + result += `大运起运: ${chart.bazi.dayunStart}岁\n`; + result += `前三步大运: ${chart.bazi.dayun.slice(0, 3).map(dy => `${dy.ganZhi.gan}${dy.ganZhi.zhi}`).join(' ')}\n\n`; + + // 紫微斗数部分 + result += '【紫微斗数】\n'; + result += `命宫: ${chart.ziwei.gongs[0].dizhi}宫\n`; + const shenGongDizhi = chart.ziwei.gongs[chart.ziwei.shenGongIndex]?.dizhi || '未知'; + result += `身宫: ${shenGongDizhi}宫\n`; + + // 显示有主星的宫位 + chart.ziwei.gongs.forEach(gong => { + if (gong.mainStars.length > 0) { + result += `${gong.gong}(${gong.dizhi}): ${gong.mainStars.join('、')}`; + if (gong.auxStars.length > 0) { + result += ` [${gong.auxStars.join('、')}]`; + } + if (gong.sihua.length > 0) { + result += ` {${gong.sihua.map(s => `${s.star}${s.hua}`).join('、')}}`; + } + result += '\n'; + } + }); + + return result; +} + +// 导出示例用法 +export const EXAMPLE_BIRTH_INFO: BirthInfo = { + year: 1990, + month: 5, + day: 15, + hour: 14, + minute: 30, + isLunar: false, + gender: 'male', + timeZone: 8 +}; diff --git a/calculator/yiqi-core/jieqi.ts b/calculator/yiqi-core/jieqi.ts new file mode 100644 index 0000000..8bcdc7b --- /dev/null +++ b/calculator/yiqi-core/jieqi.ts @@ -0,0 +1,190 @@ +// 节气计算模块 + +// 24节气名称 +export const JIEQI_NAMES = [ + '小寒', '大寒', '立春', '雨水', '惊蛰', '春分', + '清明', '谷雨', '立夏', '小满', '芒种', '夏至', + '小暑', '大暑', '立秋', '处暑', '白露', '秋分', + '寒露', '霜降', '立冬', '小雪', '大雪', '冬至' +]; + +// 节气对应的地支月(立春开始为寅月) +export const JIEQI_MONTHS = [ + 11, 11, 0, 0, 1, 1, // 小寒(子月), 大寒(子月), 立春(寅月), 雨水(寅月), 惊蛰(卯月), 春分(卯月) + 2, 2, 3, 3, 4, 4, // 清明(辰月), 谷雨(辰月), 立夏(巳月), 小满(巳月), 芒种(午月), 夏至(午月) + 5, 5, 6, 6, 7, 7, // 小暑(未月), 大暑(未月), 立秋(申月), 处暑(申月), 白露(酉月), 秋分(酉月) + 8, 8, 9, 9, 10, 10 // 寒露(戌月), 霜降(戌月), 立冬(亥月), 小雪(亥月), 大雪(子月), 冬至(子月) +]; + +/** + * 计算指定年份的节气时刻(简化算法) + * 注:这是一个简化版本,实际应用中需要更精确的天文算法 + * @param year 年份 + * @returns 24个节气的儒略日时刻 + */ +export function calculateJieqi(year: number): number[] { + const jieqiTimes: number[] = []; + + // 基础数据:2000年各节气的大致日期(儒略日) + const base2000 = [ + 2451549.5, 2451564.5, 2451579.5, 2451594.5, 2451609.5, 2451624.5, // 1-6 + 2451639.5, 2451654.5, 2451670.5, 2451685.5, 2451700.5, 2451715.5, // 7-12 + 2451730.5, 2451745.5, 2451761.5, 2451776.5, 2451791.5, 2451806.5, // 13-18 + 2451821.5, 2451836.5, 2451852.5, 2451867.5, 2451882.5, 2451897.5 // 19-24 + ]; + + const yearDiff = year - 2000; + + for (let i = 0; i < 24; i++) { + // 简化计算:每年节气时间的平均变化 + const dayOffset = yearDiff * 365.2422 - Math.floor(yearDiff / 4) + Math.floor(yearDiff / 100) - Math.floor(yearDiff / 400); + jieqiTimes.push(base2000[i] + dayOffset); + } + + return jieqiTimes; +} + +/** + * 根据公历日期确定节气月(干支月) + * @param year 年 + * @param month 月 + * @param day 日 + * @returns 地支月份的索引(0-11对应寅-丑) + */ +export function getJieqiMonth(year: number, month: number, day: number): number { + const jieqiTimes = calculateJieqi(year); + + // 计算当前日期的儒略日 + const a = Math.floor((14 - month) / 12); + const y = year - a; + const m = month + 12 * a - 3; + const currentJD = day + Math.floor((153 * m + 2) / 5) + 365 * y + + Math.floor(y / 4) - Math.floor(y / 100) + Math.floor(y / 400) + 1721119; + + // 找到当前日期所在的节气区间 + for (let i = 0; i < 24; i += 2) { // 只检查节气(奇数索引是中气) + const jieqi = jieqiTimes[i]; + const nextJieqi = i + 2 < 24 ? jieqiTimes[i + 2] : jieqiTimes[2] + 365.25; // 下一个节气或明年立春 + + if (currentJD >= jieqi && currentJD < nextJieqi) { + return JIEQI_MONTHS[i]; + } + } + + // 默认返回子月 + return 11; +} + +/** + * 获取月干支 + * @param year 年 + * @param month 月 + * @param day 日 + * @returns 月干支 + */ +export function getMonthGanZhi(year: number, month: number, day: number) { + const jieqiMonth = getJieqiMonth(year, month, day); + const yearGanIndex = (year - 4) % 10; // 使用修正后的年干算法 + + // 月干推算:甲己之年丙作首(正月为丙寅) + const monthGanBaseMap = [2, 4, 6, 8, 0, 2, 4, 6, 8, 0]; // 甲年丙寅,乙年戊寅... + const monthGanBase = monthGanBaseMap[yearGanIndex]; + const monthGanIndex = (monthGanBase + jieqiMonth) % 10; + + return { + gan: ['甲', '乙', '丙', '丁', '戊', '己', '庚', '辛', '壬', '癸'][monthGanIndex] as any, + zhi: ['寅', '卯', '辰', '巳', '午', '未', '申', '酉', '戌', '亥', '子', '丑'][jieqiMonth] as any + }; +} + +import type { Tiangan, Dizhi } from './types'; + +/** + * 获取当前时刻应该使用的月柱(基于精确节气时刻) + * + * lunar-javascript默认在节气当日的子时(00:00)就换月柱, + * 但传统命理应该在节气的精确时刻才换月柱。 + * + * 例如:某年立秋在公历8月初,那么: + * - 8月8日 02:28 应该用乙未月(立秋前) + * - 8月8日 10:00 应该用丙申月(立秋后) + * + * @param solar Solar对象(来自lunar-javascript) + * @returns 月柱干支 + */ +export function getAccurateMonthGanZhi(solar: any): { gan: Tiangan; zhi: Dizhi } { + const lunar = solar.getLunar(); + + // 获取lunar-javascript给出的月柱(默认在子时换月) + const defaultMonthGZ = lunar.getMonthInGanZhi(); + + // 获取当前节令(节气) + const currentJieQi = lunar.getJieQi(); + + // 获取节气表 + const jieQiTable = lunar.getJieQiTable(); + const jieQiSolar = jieQiTable[currentJieQi]; + + if (!jieQiSolar) { + // 没有节气信息,使用默认值 + return parseGanZhi(defaultMonthGZ); + } + + // 判断是否在节气当日 + const isJieQiDay = + solar.getYear() === jieQiSolar.getYear() && + solar.getMonth() === jieQiSolar.getMonth() && + solar.getDay() === jieQiSolar.getDay(); + + if (!isJieQiDay) { + // 不在节气当日,直接使用默认值 + return parseGanZhi(defaultMonthGZ); + } + + // 在节气当日,需要判断是否已过节气时刻 + const solarTime = solar.getHour() * 3600 + solar.getMinute() * 60 + solar.getSecond(); + const jieQiTime = jieQiSolar.getHour() * 3600 + jieQiSolar.getMinute() * 60 + jieQiSolar.getSecond(); + + if (solarTime < jieQiTime) { + // 还没到节气时刻,应该使用上一个月的月柱 + // 获取前一天的月柱 + const prevDaySolar = solar.next(-1); // 往前推一天 + const prevDayLunar = prevDaySolar.getLunar(); + const prevMonthGZ = prevDayLunar.getMonthInGanZhi(); + + console.error(`[节气校正] ${solar.toYmd()} ${solar.getHour()}:${solar.getMinute()} 在${currentJieQi}前,使用${prevMonthGZ}月`); + + return parseGanZhi(prevMonthGZ); + } + + // 已经过了节气时刻,使用当前月柱 + return parseGanZhi(defaultMonthGZ); +} + +/** + * 解析干支字符串为天干地支对象 + * @param gz 干支字符串,如"甲子" + * @returns 天干地支对象 + */ +function parseGanZhi(gz: string): { gan: Tiangan; zhi: Dizhi } { + if (!gz || gz.length < 2) { + throw new Error(`无效的干支字符串: ${gz}`); + } + + return { + gan: gz[0] as Tiangan, + zhi: gz[1] as Dizhi + }; +} + +/** + * 获取节气的精确时刻(用于调试和显示) + * @param solar Solar对象 + * @param jieQiName 节气名称 + * @returns 节气的Solar对象,如果找不到返回null + */ +export function getJieQiTime(solar: any, jieQiName: string): any | null { + const lunar = solar.getLunar(); + const jieQiTable = lunar.getJieQiTable(); + return jieQiTable[jieQiName] || null; +} diff --git a/calculator/yiqi-core/nayin.ts b/calculator/yiqi-core/nayin.ts new file mode 100644 index 0000000..f136fa8 --- /dev/null +++ b/calculator/yiqi-core/nayin.ts @@ -0,0 +1,168 @@ +/** + * 纳音五行算法 + * + * 纳音是根据干支组合推算出的五行属性,每两个干支组成一个纳音。 + * 共有60个干支组合,对应30种纳音五行。 + * + * 纳音五行分为: + * - 金:海中金、金箔金、白蜡金、剑锋金、钗钏金、沙中金 + * - 木:大林木、杨柳木、松柏木、平地木、石榴木、桑柘木 + * - 水:涧下水、大溪水、长流水、天河水、大海水、泉中水 + * - 火:炉中火、山头火、霹雳火、山下火、覆灯火、天上火 + * - 土:城头土、屋上土、壁上土、大驿土、沙中土、路旁土 + */ + +import type { Tiangan, Dizhi } from './types'; + +/** + * 纳音五行类型 + */ +export type NaYin = + // 金系 + | '海中金' | '金箔金' | '白蜡金' | '剑锋金' | '钗钏金' | '沙中金' + // 木系 + | '大林木' | '杨柳木' | '松柏木' | '平地木' | '石榴木' | '桑柘木' + // 水系 + | '涧下水' | '大溪水' | '长流水' | '天河水' | '大海水' | '泉中水' + // 火系 + | '炉中火' | '山头火' | '霹雳火' | '山下火' | '覆灯火' | '天上火' + // 土系 + | '城头土' | '屋上土' | '壁上土' | '大驿土' | '沙中土' | '路旁土'; + +/** + * 纳音映射表 + * 根据干支组合查找对应的纳音五行 + * + * 数据来源:纳音.md + */ +const NAYIN_MAP: Record = { + // 金系 + '甲子': '海中金', '乙丑': '海中金', + '壬寅': '金箔金', '癸卯': '金箔金', + '庚辰': '白蜡金', '辛巳': '白蜡金', + '壬申': '剑锋金', '癸酉': '剑锋金', + '庚戌': '钗钏金', '辛亥': '钗钏金', + '甲午': '沙中金', '乙未': '沙中金', + + // 木系 + '戊辰': '大林木', '己巳': '大林木', + '壬午': '杨柳木', '癸未': '杨柳木', + '庚寅': '松柏木', '辛卯': '松柏木', + '戊戌': '平地木', '己亥': '平地木', + '庚申': '石榴木', '辛酉': '石榴木', + '壬子': '桑柘木', '癸丑': '桑柘木', + + // 水系 + '丙子': '涧下水', '丁丑': '涧下水', + '甲寅': '大溪水', '乙卯': '大溪水', + '壬辰': '长流水', '癸巳': '长流水', + '丙午': '天河水', '丁未': '天河水', + '壬戌': '大海水', '癸亥': '大海水', + '甲申': '泉中水', '乙酉': '泉中水', + + // 火系 + '丙寅': '炉中火', '丁卯': '炉中火', + '甲戌': '山头火', '乙亥': '山头火', + '戊子': '霹雳火', '己丑': '霹雳火', + '丙申': '山下火', '丁酉': '山下火', + '甲辰': '覆灯火', '乙巳': '覆灯火', + '戊午': '天上火', '己未': '天上火', + + // 土系 + '戊寅': '城头土', '己卯': '城头土', + '丙戌': '屋上土', '丁亥': '屋上土', + '庚子': '壁上土', '辛丑': '壁上土', + '戊申': '大驿土', '己酉': '大驿土', + '丙辰': '沙中土', '丁巳': '沙中土', + '庚午': '路旁土', '辛未': '路旁土' +}; + +/** + * 获取干支的纳音五行 + * @param tiangan 天干 + * @param dizhi 地支 + * @returns 纳音五行 + */ +export function getNaYin(tiangan: Tiangan, dizhi: Dizhi): NaYin { + const key = tiangan + dizhi; + const nayin = NAYIN_MAP[key]; + + if (!nayin) { + console.warn(`未找到纳音: ${key}`); + return '海中金'; // 默认值 + } + + return nayin; +} + +/** + * 批量获取四柱的纳音 + * @param siZhu 四柱干支 + * @returns 四柱纳音数组 + */ +export function getSiZhuNaYin(siZhu: { + year: { gan: Tiangan; zhi: Dizhi }; + month: { gan: Tiangan; zhi: Dizhi }; + day: { gan: Tiangan; zhi: Dizhi }; + hour: { gan: Tiangan; zhi: Dizhi }; +}): { + year: NaYin; + month: NaYin; + day: NaYin; + hour: NaYin; +} { + return { + year: getNaYin(siZhu.year.gan, siZhu.year.zhi), + month: getNaYin(siZhu.month.gan, siZhu.month.zhi), + day: getNaYin(siZhu.day.gan, siZhu.day.zhi), + hour: getNaYin(siZhu.hour.gan, siZhu.hour.zhi) + }; +} + +/** + * 获取纳音的五行属性 + * @param nayin 纳音 + * @returns 五行属性(金木水火土) + */ +export function getNaYinWuXing(nayin: NaYin): '金' | '木' | '水' | '火' | '土' { + if (nayin.includes('金')) return '金'; + if (nayin.includes('木')) return '木'; + if (nayin.includes('水')) return '水'; + if (nayin.includes('火')) return '火'; + if (nayin.includes('土')) return '土'; + return '金'; // 默认值 +} + +/** + * 获取纳音五行的相生相克关系 + * @param nayin1 纳音1 + * @param nayin2 纳音2 + * @returns 关系(生、克、比和) + */ +export function getNaYinRelation( + nayin1: NaYin, + nayin2: NaYin +): '生' | '克' | '被生' | '被克' | '比和' { + const wx1 = getNaYinWuXing(nayin1); + const wx2 = getNaYinWuXing(nayin2); + + if (wx1 === wx2) return '比和'; + + // 相生关系:木生火、火生土、土生金、金生水、水生木 + const sheng: Record = { + '木': '火', '火': '土', '土': '金', '金': '水', '水': '木' + }; + + if (sheng[wx1] === wx2) return '生'; + if (sheng[wx2] === wx1) return '被生'; + + // 相克关系:木克土、土克水、水克火、火克金、金克木 + const ke: Record = { + '木': '土', '土': '水', '水': '火', '火': '金', '金': '木' + }; + + if (ke[wx1] === wx2) return '克'; + if (ke[wx2] === wx1) return '被克'; + + return '比和'; // 默认值 +} diff --git a/calculator/yiqi-core/sihua.ts b/calculator/yiqi-core/sihua.ts new file mode 100644 index 0000000..dd0a0cb --- /dev/null +++ b/calculator/yiqi-core/sihua.ts @@ -0,0 +1,129 @@ +// 紫微斗数四化系统 + +import { Tiangan, SiHua } from './types'; + +/** + * 四化星曜(按年干) + * 格式:{ 年干: { 化禄, 化权, 化科, 化忌 } } + */ +const SIHUA_BY_YEAR_GAN: { [key in Tiangan]: { lu: string; quan: string; ke: string; ji: string } } = { + '甲': { lu: '廉贞', quan: '破军', ke: '武曲', ji: '太阳' }, + '乙': { lu: '天机', quan: '天梁', ke: '紫微', ji: '太阴' }, + '丙': { lu: '天同', quan: '天机', ke: '文昌', ji: '廉贞' }, + '丁': { lu: '太阴', quan: '天同', ke: '天机', ji: '巨门' }, + '戊': { lu: '贪狼', quan: '太阴', ke: '右弼', ji: '天机' }, + '己': { lu: '武曲', quan: '贪狼', ke: '天梁', ji: '文曲' }, + '庚': { lu: '太阳', quan: '武曲', ke: '太阴', ji: '天同' }, + '辛': { lu: '巨门', quan: '太阳', ke: '文曲', ji: '文昌' }, + '壬': { lu: '天梁', quan: '紫微', ke: '左辅', ji: '武曲' }, + '癸': { lu: '破军', quan: '巨门', ke: '太阴', ji: '贪狼' } +}; + +/** + * 获取指定天干的四化 + */ +export function getSiHuaByGan(gan: Tiangan): { lu: string; quan: string; ke: string; ji: string } { + return SIHUA_BY_YEAR_GAN[gan]; +} + +/** + * 计算某个宫位的四化(用于飞化) + * @param gan 宫位天干 + * @param gongStars 宫位内的星曜列表 + * @returns 该宫位飞化出的四化星及其位置 + */ +export function calculateFeiHua(gan: Tiangan, allGongs: any[]): { + lu: { star: string; targetGong: string } | null; + quan: { star: string; targetGong: string } | null; + ke: { star: string; targetGong: string } | null; + ji: { star: string; targetGong: string } | null; +} { + const sihua = getSiHuaByGan(gan); + + const result = { + lu: null as { star: string; targetGong: string } | null, + quan: null as { star: string; targetGong: string } | null, + ke: null as { star: string; targetGong: string } | null, + ji: null as { star: string; targetGong: string } | null + }; + + // 找到化禄、化权、化科、化忌的星曜所在宫位(包括主星和辅星) + for (const gong of allGongs) { + const allStars = [...gong.mainStars, ...(gong.auxStars || [])]; + + if (allStars.includes(sihua.lu)) { + result.lu = { star: sihua.lu, targetGong: gong.gong }; + } + if (allStars.includes(sihua.quan)) { + result.quan = { star: sihua.quan, targetGong: gong.gong }; + } + if (allStars.includes(sihua.ke)) { + result.ke = { star: sihua.ke, targetGong: gong.gong }; + } + if (allStars.includes(sihua.ji)) { + result.ji = { star: sihua.ji, targetGong: gong.gong }; + } + } + + return result; +} + +/** + * 为命盘添加本命四化(出生年干的四化) + */ +export function addBenMingSiHua(gongs: any[], yearGan: Tiangan): any[] { + const sihua = getSiHuaByGan(yearGan); + + return gongs.map(gong => { + const sihuaList: { star: string; hua: SiHua }[] = []; + + // 检查宫位内的主星和辅星是否有四化 + const allStars = [...gong.mainStars, ...(gong.auxStars || [])]; + + allStars.forEach((star: string) => { + if (star === sihua.lu) { + sihuaList.push({ star, hua: '化禄' }); + } + if (star === sihua.quan) { + sihuaList.push({ star, hua: '化权' }); + } + if (star === sihua.ke) { + sihuaList.push({ star, hua: '化科' }); + } + if (star === sihua.ji) { + sihuaList.push({ star, hua: '化忌' }); + } + }); + + return { + ...gong, + sihua: sihuaList + }; + }); +} + +/** + * 获取四化的颜色样式 + */ +export function getSiHuaColor(hua: SiHua): string { + switch (hua) { + case '化禄': return '#22c55e'; // 绿色 + case '化权': return '#a855f7'; // 紫色 + case '化科': return '#3b82f6'; // 蓝色 + case '化忌': return '#ef4444'; // 红色 + default: return '#666'; + } +} + +/** + * 获取四化的简称 + */ +export function getSiHuaShort(hua: SiHua): string { + switch (hua) { + case '化禄': return '禄'; + case '化权': return '权'; + case '化科': return '科'; + case '化忌': return '忌'; + default: return ''; + } +} diff --git a/calculator/yiqi-core/types.ts b/calculator/yiqi-core/types.ts new file mode 100644 index 0000000..9523ae0 --- /dev/null +++ b/calculator/yiqi-core/types.ts @@ -0,0 +1,152 @@ +// 核心数据类型定义 + +// 生辰信息 +export interface BirthInfo { + year: number; + month: number; + day: number; + hour: number; + minute: number; + isLunar: boolean; // 是否为农历 + gender: 'male' | 'female'; + timeZone: number; // 时区偏移,默认为8(北京时间) +} + +// 保存的案例 +export interface SavedCase { + id: string; + name: string; + birthForm: BirthInfo & { name: string }; + chartResult: ChartResult; + savedAt: string; +} + +// 天干地支 +export type Tiangan = '甲' | '乙' | '丙' | '丁' | '戊' | '己' | '庚' | '辛' | '壬' | '癸'; +export type Dizhi = '子' | '丑' | '寅' | '卯' | '辰' | '巳' | '午' | '未' | '申' | '酉' | '戌' | '亥'; + +// 干支组合 +export interface GanZhi { + gan: Tiangan; + zhi: Dizhi; +} + +// 四柱信息 +export interface SiZhu { + year: GanZhi; + month: GanZhi; + day: GanZhi; + hour: GanZhi; +} + +// 十神 +export type ShiShen = '比肩' | '劫财' | '食神' | '伤官' | '偏财' | '正财' | '七杀' | '正官' | '偏印' | '正印'; + +// 流年信息 +export interface LiuNian { + year: number; // 公历年份 + age: number; // 虚岁 + ganZhi: GanZhi; // 流年干支 +} + +// 大运详情 +export interface DayunDetail { + ganZhi: GanZhi; // 大运干支 + startAge: number; // 起始岁数 + startYear: number; // 起始年份 + endYear: number; // 结束年份 + ganShiShen: ShiShen; // 天干十神 + zhiShiShen: ShiShen; // 地支十神(地支藏干主气的十神) + liuNian: LiuNian[]; // 该大运内的流年列表 +} + +// 八字排盘结果 +export interface BaziChart { + birthInfo: BirthInfo; + siZhu: SiZhu; + dayMaster: Tiangan; // 日主 + shiShen: { + year: ShiShen; + month: ShiShen; + day: ShiShen; + hour: ShiShen; + }; + // 添加长生(星运)- zhangSheng 不是 changSheng + zhangSheng?: { + year: string; + month: string; + day: string; + hour: string; + }; + // 添加纳音 + naYin?: { + year: string; + month: string; + day: string; + hour: string; + }; + dayunStart: number; // 大运起运岁数 + dayun: DayunDetail[]; // 大运详情列表,通常显示前10步 +} + +// 紫微斗数十二宫 +export type ZiweiGong = '命宫' | '兄弟宫' | '夫妻宫' | '子女宫' | '财帛宫' | '疾厄宫' | + '迁移宫' | '交友宫' | '官禄宫' | '田宅宫' | '福德宫' | '父母宫'; + +// 紫微斗数主星 +export type ZiweiMainStar = '紫微' | '天机' | '太阳' | '武曲' | '天同' | '廉贞' | '天府' | + '太阴' | '贪狼' | '巨门' | '天相' | '天梁' | '七杀' | '破军'; + +// 紫微斗数辅星 +export type ZiweiAuxStar = '左辅' | '右弼' | '天魁' | '天钺' | '文昌' | '文曲' | '禄存' | + '天马' | '擎羊' | '陀罗' | '火星' | '铃星' | '地空' | '地劫' | + '红鸾' | '天喜' | '天刑' | '天姚'; + +// 四化 +export type SiHua = '化禄' | '化权' | '化科' | '化忌'; + +// 紫微斗数宫位信息 +export interface ZiweiGongInfo { + gong: ZiweiGong; + dizhi: Dizhi; + tiangan: Tiangan; // 宫位天干 + mainStars: ZiweiMainStar[]; + auxStars: ZiweiAuxStar[]; + sihua: { star: string; hua: SiHua }[]; + daXian?: { // 大运信息 + startAge: number; + endAge: number; + isCurrent?: boolean; // 是否为当前大运 + daXianGongName?: string; // 大限宫位名(如"大命""大兄"等),基于当前大限起始宫位计算 + }; + liuNian?: number[]; // 流年年龄列表 + liuNianYear?: number; // 流年年份(如2025),按地支固定位置 + liuNianGongName?: string; // 流年宫位名(如"年命""年兄"等),基于选中流年计算 +} + +// 紫微斗数排盘结果 +export interface ZiweiChart { + birthInfo: BirthInfo; + gongs: ZiweiGongInfo[]; // 十二宫信息 + mingGongIndex: number; // 命宫在地支中的位置(0-11) + shenGongIndex: number; // 身宫在地支中的位置(0-11) + yinYang?: '阳男' | '阴男' | '阳女' | '阴女'; // 阴阳男女 + wuXingJu?: { // 五行局 + name: string; // 如"水二局" + number: number; // 如2 + }; + siZhu?: SiZhu; // 四柱信息(年月日时天干地支) + lunarDate?: { // 农历日期 + year: number; + month: number; + day: number; + monthCn?: string; // 中文月份 + dayCn?: string; // 中文日期 + }; +} + +// 完整的排盘结果 +export interface ChartResult { + bazi: BaziChart; + ziwei: ZiweiChart; +} diff --git a/calculator/yiqi-core/zhangsheng.ts b/calculator/yiqi-core/zhangsheng.ts new file mode 100644 index 0000000..4a7a4c6 --- /dev/null +++ b/calculator/yiqi-core/zhangsheng.ts @@ -0,0 +1,133 @@ +/** + * 十二长生(星运)算法 + * + * 十二长生是命理学中描述五行在十二地支中的旺衰状态,包括: + * 长生、沐浴、冠带、临官、帝旺、衰、病、死、墓、绝、胎、养 + * + * 根据日干的五行属性,查找其在各地支的长生状态 + */ + +import type { Tiangan, Dizhi } from './types'; + +/** + * 十二长生状态 + */ +export type ChangSheng = + | '长生' | '沐浴' | '冠带' | '临官' | '帝旺' | '衰' + | '病' | '死' | '墓' | '绝' | '胎' | '养'; + +/** + * 十二长生映射表 + * 根据天干十二长生表(见附件图片) + * + * 阳干(甲丙戊庚壬):顺行 + * 阴干(乙丁己辛癸):逆行 + */ +const CHANGSHENG_MAP: Record> = { + '甲': { + '亥': '长生', '子': '沐浴', '丑': '冠带', '寅': '临官', + '卯': '帝旺', '辰': '衰', '巳': '病', '午': '死', + '未': '墓', '申': '绝', '酉': '胎', '戌': '养' + }, + '乙': { + '午': '长生', '巳': '沐浴', '辰': '冠带', '卯': '临官', + '寅': '帝旺', '丑': '衰', '子': '病', '亥': '死', + '戌': '墓', '酉': '绝', '申': '胎', '未': '养' + }, + '丙': { + '寅': '长生', '卯': '沐浴', '辰': '冠带', '巳': '临官', + '午': '帝旺', '未': '衰', '申': '病', '酉': '死', + '戌': '墓', '亥': '绝', '子': '胎', '丑': '养' + }, + '丁': { + '酉': '长生', '申': '沐浴', '未': '冠带', '午': '临官', + '巳': '帝旺', '辰': '衰', '卯': '病', '寅': '死', + '丑': '墓', '子': '绝', '亥': '胎', '戌': '养' + }, + '戊': { + '寅': '长生', '卯': '沐浴', '辰': '冠带', '巳': '临官', + '午': '帝旺', '未': '衰', '申': '病', '酉': '死', + '戌': '墓', '亥': '绝', '子': '胎', '丑': '养' + }, + '己': { + '酉': '长生', '申': '沐浴', '未': '冠带', '午': '临官', + '巳': '帝旺', '辰': '衰', '卯': '病', '寅': '死', + '丑': '墓', '子': '绝', '亥': '胎', '戌': '养' + }, + '庚': { + '巳': '长生', '午': '沐浴', '未': '冠带', '申': '临官', + '酉': '帝旺', '戌': '衰', '亥': '病', '子': '死', + '丑': '墓', '寅': '绝', '卯': '胎', '辰': '养' + }, + '辛': { + '子': '长生', '亥': '沐浴', '戌': '冠带', '酉': '临官', + '申': '帝旺', '未': '衰', '午': '病', '巳': '死', + '辰': '墓', '卯': '绝', '寅': '胎', '丑': '养' + }, + '壬': { + '申': '长生', '酉': '沐浴', '戌': '冠带', '亥': '临官', + '子': '帝旺', '丑': '衰', '寅': '病', '卯': '死', + '辰': '墓', '巳': '绝', '午': '胎', '未': '养' + }, + '癸': { + '卯': '长生', '寅': '沐浴', '丑': '冠带', '子': '临官', + '亥': '帝旺', '戌': '衰', '酉': '病', '申': '死', + '未': '墓', '午': '绝', '巳': '胎', '辰': '养' + } +}; + +/** + * 获取天干在某地支的长生状态 + * @param tiangan 天干 + * @param dizhi 地支 + * @returns 长生状态(长生、沐浴、冠带等) + */ +export function getChangSheng(tiangan: Tiangan, dizhi: Dizhi): ChangSheng { + return CHANGSHENG_MAP[tiangan][dizhi]; +} + +/** + * 批量获取四柱的长生状态 + * @param dayGan 日干 + * @param siZhu 四柱地支 + * @returns 四柱长生状态数组 + */ +export function getSiZhuChangSheng( + dayGan: Tiangan, + siZhu: { year: Dizhi; month: Dizhi; day: Dizhi; hour: Dizhi } +): { + year: ChangSheng; + month: ChangSheng; + day: ChangSheng; + hour: ChangSheng; +} { + return { + year: getChangSheng(dayGan, siZhu.year), + month: getChangSheng(dayGan, siZhu.month), + day: getChangSheng(dayGan, siZhu.day), + hour: getChangSheng(dayGan, siZhu.hour) + }; +} + +/** + * 判断长生状态的吉凶 + * @param changsheng 长生状态 + * @returns 吉凶等级(1-5,5最吉) + */ +export function getChangShengLevel(changsheng: ChangSheng): number { + const levels: Record = { + '长生': 5, // 最吉 + '帝旺': 5, // 最吉 + '临官': 4, // 次吉 + '冠带': 4, // 次吉 + '养': 3, // 平 + '胎': 3, // 平 + '沐浴': 2, // 次凶(桃花) + '衰': 2, // 次凶 + '病': 1, // 凶 + '死': 1, // 凶 + '墓': 1, // 凶 + '绝': 1 // 最凶 + }; + return levels[changsheng]; +} diff --git a/calculator/yiqi-core/ziwei-standard.ts b/calculator/yiqi-core/ziwei-standard.ts new file mode 100644 index 0000000..0db2a69 --- /dev/null +++ b/calculator/yiqi-core/ziwei-standard.ts @@ -0,0 +1,749 @@ +// 紫微斗数排盘核心算法(按照标准安星法重写) + +import { BirthInfo, ZiweiChart, ZiweiGongInfo, GanZhi } from './types'; +import { Solar, Lunar } from 'lunar-typescript'; +import { addBenMingSiHua } from './sihua'; +import { calculateDaXian, calculateXuSui } from './daxian'; + +/** + * 天干数组 + */ +const TIANGAN = ['甲', '乙', '丙', '丁', '戊', '己', '庚', '辛', '壬', '癸']; + +/** + * 地支数组(顺时针) + */ +const DIZHI = ['子', '丑', '寅', '卯', '辰', '巳', '午', '未', '申', '酉', '戌', '亥']; + +/** + * 十二宫名称(从命宫开始,逆时针排列) + */ +const GONG_NAMES = ['命宫', '兄弟', '夫妻', '子女', '财帛', '疾厄', '迁移', '交友', '官禄', '田宅', '福德', '父母']; + +/** + * 时辰转换为地支索引 + */ +function getHourZhiIndex(hour: number): number { + // 23-01:子(0), 01-03:丑(1), ..., 21-23:亥(11) + return Math.floor((hour + 1) / 2) % 12; +} + +/** + * 判断阴阳男女 + */ +function getYinYang(year: number, gender: 'male' | 'female'): string { + const ganIndex = (year - 4) % 10; // 修正公式:2014年 → (2014-4)%10 = 0 → 甲 + const isYangYear = ganIndex % 2 === 0; // 甲丙戊庚壬为阳(索引0,2,4,6,8) + + if (gender === 'male') { + return isYangYear ? '阳男' : '阴男'; + } else { + return isYangYear ? '阳女' : '阴女'; + } +} + +/** + * 五虎遁月诀 - 根据年干和月支确定月干 + */ +function getMonthGan(yearGan: string, monthZhi: string): string { + const yearGanIndex = TIANGAN.indexOf(yearGan); + const monthZhiIndex = DIZHI.indexOf(monthZhi); + + // 五虎遁月诀:甲己丙作首,乙庚戊为头,丙辛庚上起,丁壬壬寅流,戊癸甲寅求 + const firstMonthGanMap: { [key: number]: number } = { + 0: 2, 5: 2, // 甲己 → 丙 + 1: 4, 6: 4, // 乙庚 → 戊 + 2: 6, 7: 6, // 丙辛 → 庚 + 3: 8, 8: 8, // 丁壬 → 壬 + 4: 0, 9: 0 // 戊癸 → 甲 + }; + + const firstMonthGan = firstMonthGanMap[yearGanIndex]; + // 正月是寅月(索引2),从正月天干开始,按地支顺序推算 + // 月支索引 - 寅索引(2) = 偏移量 + const offset = (monthZhiIndex - 2 + 12) % 12; + const monthGanIndex = (firstMonthGan + offset) % 10; + + return TIANGAN[monthGanIndex]; +} + +/** + * 计算命宫位置 + * 标准算法:从寅宫起正月,顺数到生月;从生月宫当子时,逆时针数到生时 + * 例如:八月在酉宫,申时是第9个时辰(子丑寅卯辰巳午未申),从酉宫逆数8位到丑宫 + */ +function calculateMingGong(lunarMonth: number, hour: number): number { + // 1. 从寅宫(索引2)起正月,顺时针数到生月 + // 正月在寅(2),二月在卯(3),...,八月在酉(9) + const shengYueGongIndex = (2 + lunarMonth - 1) % 12; + + // 2. 从生月宫当子时起,逆时针数到生时 + // 生时地支索引就是要逆数的宫位数 + const shengShiZhiIndex = getHourZhiIndex(hour); + + // 从生月宫逆时针数shengShiZhiIndex个宫位 + const mingGongIndex = (shengYueGongIndex - shengShiZhiIndex + 12) % 12; + + return mingGongIndex; +} + +/** + * 计算身宫位置 + * 标准算法:从寅宫起正月,顺数到生月;从生月宫当子时,顺时针数到生时 + * 例如:八月在酉宫,申时是第9个时辰,从酉宫顺数8位到巳宫 + */ +function calculateShenGong(lunarMonth: number, hour: number): number { + // 1. 从寅宫(索引2)起正月,顺时针数到生月 + // 正月在寅(2),二月在卯(3),...,八月在酉(9) + const shengYueGongIndex = (2 + lunarMonth - 1) % 12; + + // 2. 从生月宫当子时起,顺时针数到生时 + // 生时地支索引就是要顺数的宫位数 + const shengShiZhiIndex = getHourZhiIndex(hour); + + // 从生月宫顺时针数shengShiZhiIndex个宫位 + const shenGongIndex = (shengYueGongIndex + shengShiZhiIndex) % 12; + + return shenGongIndex; +} + +/** + * 计算纳音五行局 + */ +function calculateWuXingJu(tiangan: string, dizhi: string): { name: string; number: number } { + const ganNum = Math.floor(TIANGAN.indexOf(tiangan) / 2) + 1; // 甲乙=1, 丙丁=2... + + const zhiMap: { [key: string]: number } = { + '子': 1, '丑': 1, '午': 1, '未': 1, + '寅': 2, '卯': 2, '申': 2, '酉': 2, + '辰': 3, '巳': 3, '戌': 3, '亥': 3 + }; + const zhiNum = zhiMap[dizhi]; + + let juNum = (ganNum + zhiNum) % 5; + if (juNum === 0) juNum = 5; + + const juMap: { [key: number]: string } = { + 1: '木三局', + 2: '金四局', + 3: '水二局', + 4: '火六局', + 5: '土五局' + }; + + return { + name: juMap[juNum], + number: [0, 3, 4, 2, 6, 5][juNum] // 转换为局数:木3,金4,水2,火6,土5 + }; +} + +/** + * 计算紫微星位置 + * 口诀:生日除局商为月,一自寅起紫微定。只加不减到整除,阳退阴进记心中。 + */ +function calculateZiweiPosition(lunarDay: number, juShu: number): number { + let shang = Math.floor(lunarDay / juShu); + let yu = lunarDay % juShu; + + if (yu === 0) { + // 整除 + // 商数对应地支:寅=1, 卯=2, ..., 丑=12 + if (shang > 12) shang = shang - 12; + // 地支索引 = (寅索引2 + 商数-1) % 12 + return (2 + shang - 1) % 12; + } else { + // 不整除,需要添加数使其整除 + const tian = juShu - yu; // 添加的数 + shang = Math.floor((lunarDay + tian) / juShu); + + if (shang > 12) shang = shang - 12; + let baseIndex = (2 + shang - 1) % 12; + + // 添加数为单数:逆时针退tian位(阳退,不包括本位) + // 添加数为双数:顺时针进tian位(阴进,不包括本位) + if (tian % 2 === 1) { + // 单数:逆时针退tian位 + return (baseIndex - tian + 12) % 12; + } else { + // 双数:顺时针进tian位 + return (baseIndex + tian) % 12; + } + } +} + +/** + * 安紫微星系 + * 口诀:紫微天机逆行旁,隔一阳武天同当,又隔二位廉贞地,空三复见紫微郞 + */ +function installZiweiSeries(ziweiPos: number): Map { + const stars = new Map(); + + stars.set('紫微', ziweiPos); + stars.set('天机', (ziweiPos - 1 + 12) % 12); // 逆时针下一宫 + // 隔一宫 + stars.set('太阳', (ziweiPos - 3 + 12) % 12); + stars.set('武曲', (ziweiPos - 4 + 12) % 12); + stars.set('天同', (ziweiPos - 5 + 12) % 12); + // 隔两宫 + stars.set('廉贞', (ziweiPos - 8 + 12) % 12); + + return stars; +} + +/** + * 计算天府星位置 + * 口诀:天府南斗令,常对紫微君 + */ +function calculateTianfuPosition(ziweiPos: number): number { + // 紫微天府对应关系 + const duiYing: { [key: number]: number } = { + 2: 2, 8: 8, // 寅申:紫府同宫 + 1: 3, 3: 1, // 丑卯相对 + 7: 9, 9: 7, // 未酉相对 + 6: 10, 10: 6, // 午戌相对 + 0: 4, 4: 0, // 子辰相对 + 5: 11, 11: 5 // 巳亥相对 + }; + + return duiYing[ziweiPos]; +} + +/** + * 安天府星系 + * 口诀:天府太阴与贪狼,巨门天相及天梁,七杀空三破军位 + */ +function installTianfuSeries(tianfuPos: number): Map { + const stars = new Map(); + + stars.set('天府', tianfuPos); + stars.set('太阴', (tianfuPos + 1) % 12); // 顺时针下一宫 + stars.set('贪狼', (tianfuPos + 2) % 12); + stars.set('巨门', (tianfuPos + 3) % 12); + stars.set('天相', (tianfuPos + 4) % 12); + stars.set('天梁', (tianfuPos + 5) % 12); + stars.set('七杀', (tianfuPos + 6) % 12); + // 空三宫 + stars.set('破军', (tianfuPos + 10) % 12); + + return stars; +} + +/** + * 安辅星:左辅、右弼 + * 口诀:左辅辰宫起正月,顺数至生月;右弼戌宫起正月,逆数至生月 + */ +function installZuoYou(lunarMonth: number): Map { + const stars = new Map(); + + // 左辅:辰宫起正月,顺时针数到生月 + const zuoFuPos = (4 + lunarMonth - 1) % 12; + stars.set('左辅', zuoFuPos); + + // 右弼:戌宫起正月,逆时针数到生月 + const youBiPos = (10 - lunarMonth + 1 + 12) % 12; + stars.set('右弼', youBiPos); + + return stars; +} + +/** + * 安文昌、文曲 + * 口诀:文昌生时起戌位,逆数时辰至卯停;文曲生时起子位,逆数时辰至午停 + */ +function installWenXing(hour: number): Map { + const stars = new Map(); + const hourZhiIndex = getHourZhiIndex(hour); + + // 文昌:戌宫起子时,逆时针数到生时 + const wenChangPos = (10 - hourZhiIndex + 12) % 12; + stars.set('文昌', wenChangPos); + + // 文曲:辰宫起子时,顺时针数到生时 + const wenQuPos = (4 + hourZhiIndex) % 12; + stars.set('文曲', wenQuPos); + + return stars; +} + +/** + * 安禄存、天马 + * 口诀:禄存按年干安星,天马按年支对宫三合 + */ +function installLuMa(yearGan: string, yearZhi: string): Map { + const stars = new Map(); + + // 禄存按年干:甲寅、乙卯、丙戊巳、丁己午、庚申、辛酉、壬亥、癸子 + const luCunMap: { [key: string]: number } = { + '甲': 2, // 寅 + '乙': 3, // 卯 + '丙': 5, // 巳 + '丁': 6, // 午 + '戊': 5, // 巳 + '己': 6, // 午 + '庚': 8, // 申 + '辛': 9, // 酉 + '壬': 11, // 亥 + '癸': 0 // 子 + }; + + stars.set('禄存', luCunMap[yearGan]); + + // 天马按年支三合:寅午戌→申,巳酉丑→亥,申子辰→寅,亥卯未→巳 + const tianMaMap: { [key: string]: number } = { + '寅': 8, '午': 8, '戌': 8, // 申 + '巳': 11, '酉': 11, '丑': 11, // 亥 + '申': 2, '子': 2, '辰': 2, // 寅 + '亥': 5, '卯': 5, '未': 5 // 巳 + }; + + stars.set('天马', tianMaMap[yearZhi]); + + return stars; +} + +/** + * 安擎羊、陀罗 + * 口诀:擎羊禄前一位,陀罗禄后一位 + */ +function installYangTuo(yearGan: string): Map { + const stars = new Map(); + + // 先找禄存位置 + const luCunMap: { [key: string]: number } = { + '甲': 2, '乙': 3, '丙': 5, '丁': 6, '戊': 5, + '己': 6, '庚': 8, '辛': 9, '壬': 11, '癸': 0 + }; + + const luCunPos = luCunMap[yearGan]; + + // 擎羊:禄存前一位(顺时针) + stars.set('擎羊', (luCunPos + 1) % 12); + + // 陀罗:禄存后一位(逆时针) + stars.set('陀罗', (luCunPos - 1 + 12) % 12); + + return stars; +} + +/** + * 安火星、铃星 + * 口诀: + * 申子辰年生人火星在寅宫起子时,铃星在戌宫起子时,均顺时针数到生时 + * 寅午戌年生人火星在丑宫起子时,铃星在卯宫起子时,均顺时针数到生时 + * 巳酉丑年生人火星在卯宫起子时,铃星在戌宫起子时,均顺时针数到生时 + * 亥卯未年生人火星在酉宫起子时,铃星在戌宫起子时,均顺时针数到生时 + */ +function installHuoLing(yearZhi: string, hour: number): Map { + const stars = new Map(); + const hourZhiIndex = getHourZhiIndex(hour); + const zhiIndex = DIZHI.indexOf(yearZhi); + + // 确定火星起始宫位 + let huoStartPos: number; + if ([8, 0, 4].includes(zhiIndex)) { + // 申子辰 → 寅(2) + huoStartPos = 2; + } else if ([2, 6, 10].includes(zhiIndex)) { + // 寅午戌 → 丑(1) + huoStartPos = 1; + } else if ([5, 9, 1].includes(zhiIndex)) { + // 巳酉丑 → 卯(3) + huoStartPos = 3; + } else { + // 亥卯未 → 酉(9) + huoStartPos = 9; + } + + // 确定铃星起始宫位 + let lingStartPos: number; + if ([2, 6, 10].includes(zhiIndex)) { + // 寅午戌 → 卯(3) + lingStartPos = 3; + } else { + // 申子辰、巳酉丑、亥卯未 → 戌(10) + lingStartPos = 10; + } + + // 从起始宫位顺数到生时 + const huoPos = (huoStartPos + hourZhiIndex) % 12; + const lingPos = (lingStartPos + hourZhiIndex) % 12; + + stars.set('火星', huoPos); + stars.set('铃星', lingPos); + + return stars; +} + +/** + * 安地空、地劫 + * 口诀:地空亥宫起子时,逆数至生时;地劫亥宫起子时,顺数至生时 + */ +function installKongJie(hour: number): Map { + const stars = new Map(); + const hourZhiIndex = getHourZhiIndex(hour); + + // 地空:亥宫起子时,逆数至生时 + const diKongPos = (11 - hourZhiIndex + 12) % 12; + stars.set('地空', diKongPos); + + // 地劫:亥宫起子时,顺数至生时 + const diJiePos = (11 + hourZhiIndex) % 12; + stars.set('地劫', diJiePos); + + return stars; +} + +/** + * 安天魁、天钺 + * 口诀:按年干安星 + */ +function installKuiYue(yearGan: string): Map { + const stars = new Map(); + + // 天魁定位 + // 口诀:甲戊庚牛羊,乙己鼠猴乡,丙丁猪鸡位,壬癸兔蛇藏,六辛逢马虎 + const tianKuiMap: { [key: string]: number } = { + '甲': 1, // 丑(牛) + '乙': 0, // 子(鼠) + '丙': 11, // 亥(猪) + '丁': 11, // 亥(猪) + '戊': 1, // 丑(牛) + '己': 0, // 子(鼠) + '庚': 1, // 丑(牛) + '辛': 6, // 午(马) + '壬': 3, // 卯(兔) + '癸': 5 // 巳(蛇) + }; + + // 天钺定位 + const tianYueMap: { [key: string]: number } = { + '甲': 7, // 未(羊) + '乙': 8, // 申(猴) + '丙': 9, // 酉(鸡) + '丁': 9, // 酉(鸡) + '戊': 7, // 未(羊) + '己': 8, // 申(猴) + '庚': 7, // 未(羊) + '辛': 2, // 寅(虎) + '壬': 5, // 巳(蛇) + '癸': 3 // 卯(兔) + }; + + stars.set('天魁', tianKuiMap[yearGan]); + stars.set('天钺', tianYueMap[yearGan]); + + return stars; +} + +/** + * 创建紫微斗数排盘 + */ +export function createZiweiChart(birthInfo: BirthInfo): ZiweiChart { + try { + // 1. 转换为农历 + const solar = Solar.fromYmdHms( + birthInfo.year, + birthInfo.month, + birthInfo.day, + birthInfo.hour, + birthInfo.minute, + 0 + ); + const lunar: Lunar = solar.getLunar(); + + const lunarYear = lunar.getYear(); + const lunarMonth = lunar.getMonth(); + const lunarDay = lunar.getDay(); + + // 2. 获取四柱 + const yearGan = lunar.getYearGan(); + const yearZhi = lunar.getYearZhi(); + const monthGan = lunar.getMonthGan(); + const monthZhi = lunar.getMonthZhi(); + const dayGan = lunar.getDayGan(); + const dayZhi = lunar.getDayZhi(); + const hourGan = lunar.getTimeGan(); + const hourZhi = lunar.getTimeZhi(); + + const siZhu = { + year: { gan: yearGan as any, zhi: yearZhi as any }, + month: { gan: monthGan as any, zhi: monthZhi as any }, + day: { gan: dayGan as any, zhi: dayZhi as any }, + hour: { gan: hourGan as any, zhi: hourZhi as any } + }; + + // 3. 判断阴阳男女 + const yinYang = getYinYang(birthInfo.year, birthInfo.gender) as any; + + // 4. 计算命宫、身宫 + const mingGongIndex = calculateMingGong(lunarMonth, birthInfo.hour); + const shenGongIndex = calculateShenGong(lunarMonth, birthInfo.hour); + + // 5. 计算命宫天干(用月干推算) + const mingGongZhi = DIZHI[mingGongIndex]; + const mingGongGan = getMonthGan(yearGan, mingGongZhi); + + // 6. 计算五行局 + const wuXingJu = calculateWuXingJu(mingGongGan, mingGongZhi); + + // 7. 计算紫微星位置 + const ziweiPos = calculateZiweiPosition(lunarDay, wuXingJu.number); + + // 8. 安14主星 + const ziweiSeries = installZiweiSeries(ziweiPos); + const tianfuPos = calculateTianfuPosition(ziweiPos); + const tianfuSeries = installTianfuSeries(tianfuPos); + + const allMainStars = new Map([...ziweiSeries, ...tianfuSeries]); + + // 9. 安辅星系统 + const zuoYouStars = installZuoYou(lunarMonth); + const wenXingStars = installWenXing(birthInfo.hour); + const luMaStars = installLuMa(yearGan, yearZhi); + const yangTuoStars = installYangTuo(yearGan); + const huoLingStars = installHuoLing(yearZhi, birthInfo.hour); + const kongJieStars = installKongJie(birthInfo.hour); + const kuiYueStars = installKuiYue(yearGan); + const hongLuanTianXiStars = installHongLuanTianXi(yearZhi); + const tianXingStars = installTianXing(lunarMonth); + const tianYaoStars = installTianYao(lunarMonth); + + const allAuxStars = new Map([ + ...zuoYouStars, + ...wenXingStars, + ...luMaStars, + ...yangTuoStars, + ...huoLingStars, + ...kongJieStars, + ...kuiYueStars, + ...hongLuanTianXiStars, + ...tianXingStars, + ...tianYaoStars + ]); + + // 10. 生成十二宫数据 + const gongs: ZiweiGongInfo[] = []; + + for (let i = 0; i < 12; i++) { + // 宫位地支索引(从命宫开始逆时针) + const gongZhiIndex = (mingGongIndex - i + 12) % 12; + const dizhi = DIZHI[gongZhiIndex] as any; + + // 计算天干(使用五虎遁月诀) + const tiangan = getMonthGan(yearGan, dizhi) as any; + + // 找出这个宫位的主星 + const mainStars: any[] = []; + allMainStars.forEach((pos, star) => { + if (pos === gongZhiIndex) { + mainStars.push(star); + } + }); + + // 找出这个宫位的辅星 + const auxStars: any[] = []; + allAuxStars.forEach((pos, star) => { + if (pos === gongZhiIndex) { + auxStars.push(star); + } + }); + + gongs.push({ + gong: GONG_NAMES[i] as any, + dizhi, + tiangan, + mainStars, + auxStars, + sihua: [] + }); + } + + // 11. 添加本命四化(出生年干的四化) + const gongsWithSiHua = addBenMingSiHua(gongs, yearGan as any); + + // 12. 计算大运信息 + const currentAge = calculateXuSui(birthInfo.year); + const daXianList = calculateDaXian(mingGongIndex, yinYang as any, wuXingJu.number); + + // 13. 为每个宫位添加大运信息和流年 + // 找到当前大限 + const currentDaXian = daXianList.find(dx => currentAge >= dx.startAge && currentAge <= dx.endAge); + + // 计算当前大限对应的完整年份范围(10年) + // 例如:2014年出生火六局,当前12岁在6~15岁大限,对应2019~2028年(完整10年) + // 例如:1990年出生土五局,当前36岁在35~44岁大限,对应2024~2033年(完整10年) + let liunianYearStart: number | undefined; + let liunianYearEnd: number | undefined; + if (currentDaXian) { + const birthYear = birthInfo.year; + // 大限开始年份 = 出生年份 + 大限开始年龄 - 1 + liunianYearStart = birthYear + currentDaXian.startAge - 1; + // 大限结束年份 = 出生年份 + 大限结束年龄 - 1 + liunianYearEnd = birthYear + currentDaXian.endAge - 1; + } + + // 十二宫名称列表(命宫开始逆时针) + const GONG_NAMES_ORDER = ['命宫', '兄弟宫', '夫妻宫', '子女宫', '财帛宫', '疾厄宫', + '迁移宫', '交友宫', '官禄宫', '田宅宫', '福德宫', '父母宫']; + + const gongsWithDaXian = gongsWithSiHua.map((gong, index) => { + const gongZhiIndex = (mingGongIndex - index + 12) % 12; + const daXian = daXianList.find(dx => dx.gongIndex === gongZhiIndex); + + // 计算流年:根据地支固定位置分配年份 + // 例如:2025年乙巳年,固定在巳宫;2026年丙午年,固定在午宫 + + // 计算该宫位地支对应的年份 + // 地支循环:子丑寅卯辰巳午未申酉戌亥(0-11) + const dizhiIndex = DIZHI.indexOf(gong.dizhi); + + // 计算该地支对应的年份(在当前大限范围内) + let displayYear: number | undefined; + if (liunianYearStart && liunianYearEnd) { + // 遍历当前大限的所有年份,找到地支匹配的年份 + for (let year = liunianYearStart; year <= liunianYearEnd; year++) { + const yearZhiIndex = (year - 4) % 12; + if (yearZhiIndex === dizhiIndex) { + displayYear = year; + break; + } + } + } + + // 计算大限宫位名(基于当前大限的起始宫位) + let daXianGongName: string | undefined; + if (currentDaXian) { + // 找到当前大限的起始宫位在十二宫中的位置 + const currentDaXianGongIndex = gongsWithSiHua.findIndex(g => { + const gZhiIndex = DIZHI.indexOf(g.dizhi); + return gZhiIndex === currentDaXian.gongIndex; + }); + + // 计算当前宫位相对于大限命宫的偏移 + const offsetFromDaXianMing = (index - currentDaXianGongIndex + 12) % 12; + + // 根据偏移获取大限宫位名 + const daXianGongNameMap: { [key: string]: string } = { + '命宫': '大命', + '兄弟宫': '大兄', + '夫妻宫': '大夫', + '子女宫': '大子', + '财帛宫': '大财', + '疾厄宫': '大疾', + '迁移宫': '大迁', + '交友宫': '大友', + '官禄宫': '大官', + '田宅宫': '大田', + '福德宫': '大福', + '父母宫': '大父' + }; + + const correspondingGongName = GONG_NAMES_ORDER[offsetFromDaXianMing]; + daXianGongName = daXianGongNameMap[correspondingGongName]; + } + + if (daXian) { + const isCurrent = currentAge >= daXian.startAge && currentAge <= daXian.endAge; + + // 计算该大运内的流年年龄列表 + const liuNianAges: number[] = []; + for (let age = daXian.startAge; age <= daXian.endAge; age++) { + liuNianAges.push(age); + } + + return { + ...gong, + daXian: { + startAge: daXian.startAge, + endAge: daXian.endAge, + isCurrent, + daXianGongName + }, + liuNian: liuNianAges, + liuNianYear: displayYear + }; + } + + return { + ...gong, + liuNianYear: displayYear + }; + }); + + return { + birthInfo, + lunarDate: { + year: lunarYear, + month: lunarMonth, + day: lunarDay, + monthCn: lunar.getMonthInChinese(), + dayCn: lunar.getDayInChinese() + }, + siZhu, + yinYang, + mingGongIndex, + shenGongIndex, + wuXingJu, + gongs: gongsWithDaXian + }; + + } catch (error) { + console.error('紫微斗数排盘失败:', error); + throw new Error('紫微斗数排盘计算失败: ' + (error as Error).message); + } +} + +export function runZiweiTests() { + console.error('紫微斗数测试功能待实现'); + return { passed: 0, failed: 0, details: [] }; +} + +/** + * 安红鸾、天喜 + * 口诀:卯宫起子年,逆数至生年支;天喜为红鸾对宫 + */ +function installHongLuanTianXi(yearZhi: string): Map { + const stars = new Map(); + const zhiIndex = DIZHI.indexOf(yearZhi); + + // 红鸾:卯宫起子年,逆数至生年支 + const hongLuanPos = (3 - zhiIndex + 12) % 12; + + // 天喜:红鸾对宫 + const tianXiPos = (hongLuanPos + 6) % 12; + + stars.set('红鸾', hongLuanPos); + stars.set('天喜', tianXiPos); + + return stars; +} + +/** + * 安天刑 + * 口诀:天刑酉上正月轮,数至生月便住脚 + */ +function installTianXing(lunarMonth: number): Map { + const stars = new Map(); + + // 天刑:酉宫起正月,顺数至生月 + const tianXingPos = (9 + lunarMonth - 1) % 12; + + stars.set('天刑', tianXingPos); + + return stars; +} + +/** + * 安天姚 + * 口诀:天姚丑上顺正月,数至生月便住脚 + */ +function installTianYao(lunarMonth: number): Map { + const stars = new Map(); + + // 天姚:丑宫起正月,顺数至生月 + const tianYaoPos = (1 + lunarMonth - 1) % 12; + + stars.set('天姚', tianYaoPos); + + return stars; +} diff --git a/docs/jietu.png b/docs/jietu.png new file mode 100644 index 0000000000000000000000000000000000000000..6bae0651df0cea2143853869b013c3e4aae508f3 GIT binary patch literal 828892 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

9*;-&P48M^!8Zxb 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

nWvhk)$CP6lo{A=<` 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%0A3s3r|8;hb!C^*>fSIKF0o3`14HUY;AW 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

Y|i+F>#Zh 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

l?c*p2h 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

_^siW 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

M$fMTz3tHYE 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 + + + +厚土紫微的守成者 · 综合印证报告 + + + +

+ + +
+
命理
印证
+
+
综合印证报告
+

厚土紫微的守成者

+
紫微坐命气度沉稳,正财厚土宜守成积累,忌冲动投机
+
+
+
生成时间:2026-06-14 10:19
+
综合印证评级
+
✓ 同向印证
+
+ 命主星:破军 + 身主星:火星 +
+
+ 子年斗君:- + 土五局 +
+
+
+ + +
+ + +
+
阳历2000-01-01 12:00
+
农历1999年 冬月廿五
+
性别男(阳男)
+
年龄虚岁 27(截至 2026
+
+ + +
+
+
两盘主轴印证
+
+
+
八字主轴
+
戊午日主火土厚重,正财格中和偏稳,宜积累守成,不宜投机冒进。
+
+
+
紫微主轴
+
紫微午宫坐命,沉稳有威仪,武曲化禄主正业生财,文曲化忌防文书契约。
+
+
+
+
+
+

★ 三大优势

+
气度沉稳紫微坐命,临事不乱,自带威仪
+
正财踏实正财格中和,理财稳健不投机
+
财禄有源财帛武曲化禄,正业生财力强
+
+
+

⊗ 三大隐忧

+
命迁相冲子午相冲,环境多变,内心易起伏
+
金水偏弱食伤财稍欠,开拓与变现略弱
+
文曲化忌文书契约易疏失,防签约纠纷
+
+
+
+
+ + +
+
命盘核心数据
+
+
+
+
格局
+
正财格
+
置信度:高
+
+
+
+
旺衰
+
中和
+
-1.7
+
+
+
+
+
+
+
+
调候用神
+
+
置信度:高
+
+
+
月令旺相
+
+ 水旺·木相·金休·土囚·火死 +
+
+
+
五行统计(含藏干)
+
+
1
+
3
+
4
+
0
+
1
+
+
+
+
+ + +
+ +
+

紫微斗数 · 十二宫盘 生年四化:禄朱砂 / 权青蓝 / 科翠绿 / 忌玄黑

+
+ +
+
兄弟宫己巳
+
天机
+
天马·陀罗·地空·地劫
+
+
大限 115-124
+
+ +
+
命宫庚午
+
紫微
+
禄存·天喜
+
+
大限 5-14
+
+ +
+
父母宫辛未
+
无主星
+
擎羊·天刑
+
+
大限 15-24
+
+ +
+
福德宫壬申
+
破军
+
天钺
+
+
大限 25-34
+
+ +
+
夫妻宫戊辰
+
七杀
+
文昌·铃星
+
+
大限 105-114
+
+ +
+

中宫 · 命盘信息

+
阳男 土五局
+
命主:破军 身主:火星
+
+
+
+
+
+
+
+ +
+
田宅宫癸酉
+
无主星
+
+
+
大限 35-44
+
+ +
+
子女宫丁卯
+
太阳·天梁
+
火星
+
+
大限 95-104
+
+ +
+
官禄宫甲戌
+
廉贞·天府
+
文曲
+
+
大限 45-54
+
+ +
+
财帛宫丙寅
+
武曲·天相
+
左辅
+
+
大限 85-94
+
+ +
+
疾厄宫丁丑
+
天同·巨门
+
+
+
大限 75-84
+
+ +
+
迁移宫丙子
+
贪狼
+
右弼·天魁·红鸾
+
+
大限 65-74
+
+ +
+
交友宫乙亥
+
太阴
+
天姚
+
+
大限 55-64
+
+
+
+ + +
+

八字四柱盘 藏干含十神 / 星运 / 自坐 / 纳音

+
+
+
+
年柱
+
劫财
+
+
+
乙(正官)
+
+
星运沐浴
+
自坐
+
纳音城头土
+
+
+
+
月柱
+
偏印
+
+
+
癸(正财)
+
+
星运
+
自坐
+
纳音涧下水
+
+
+
+
日柱
+
日主
+
+
+
丁(正印) 己(劫财)
+
+
星运帝旺
+
自坐帝旺
+
纳音天上火
+
+
+
+
时柱
+
比肩
+
+
+
丁(正印) 己(劫财)
+
+
星运帝旺
+
自坐帝旺
+
纳音天上火
+
+
+
+ + +
+
大运 (起运 8 岁)
+
+
乙亥
9-18
正偏
+
甲戌
19-28
七比
+
癸酉
29-38
正伤
+
壬申
39-48
偏食
+
辛未
49-58
伤劫
+
庚午
59-68
食正
+
己巳
69-78
劫偏
+
戊辰
79-88
比比
+
丁卯
89-98
正正
+
-
-
-
+
+
+ + +
+
流年 (当前大运:甲戌 19-28)
+
+
2018
19
戊戌
+
2019
20
己亥
+
2020
21
庚子
+
2021
22
辛丑
+
2022
23
壬寅
+
2023
24
癸卯
+
2024
25
甲辰
+
2025
26
乙巳
+
2026
27
丙午
+
2027
28
丁未
+
+
+
+
+
+ + + +
+ +
+

01主轴印证结论

+
+ 八字戊午日生于子月,火土两旺、金水偏弱,正财格成中和之局,喜丙火暖局、甲木疏土,主性情厚重务实,财来于稳健积累而非投机。紫微午宫坐命,气度沉稳、自带威仪,与八字的厚土守成之性高度同向;财帛宫武曲化禄,印证八字以正财为用、正业生财的主轴。两盘一致指向:此命宜在稳定平台中长期深耕,靠专业与信用立身。需共同留意者,八字命局子午相冲、紫微命迁线动荡,皆提示环境与人事多变;加之官禄宫文曲化忌,文书、契约、合约类事务须格外谨慎。整体为稳中求成、厚积薄发之格,忌急功近利。 +
字数:218
+
+
+ + +
+

02阶段印证时间轴 (水平双轨)

+
+ 关键上升期 + 调整期 + 压力期 +
+
+
八字大运
+
9-18
+
19-28
+
29-38
+
39-48
+
49-58
+
59-68
+
69-78
+ +
八字大运
+
乙亥
正偏
+
甲戌
七比
+
癸酉
正伤
+
壬申
偏食
+
辛未
伤劫
+
庚午
食正
+
己巳
劫偏
+ +
紫微大限
+
5-14
+
15-24
+
25-34
+
35-44
+
45-54
+
55-64
+
65-74
+
+
+ 印证结论:少年打基础,十九岁后入甲戌运立业起步;二十九岁后财路渐宽,三十九岁后偏财食神并见为财富扩张期;两盘阶段节奏一致,皆主中年后稳步上行。 +
+
+
+ + +
+
+

03六维交叉对账

+
+
+
事业
财运
婚恋
+
子女
六亲
健康
+ +
八字观点
+
比劫厚重,宜稳定职场或大机构深耕
正财格中和,理财稳健不爱投机
日支午被子冲,配偶宫动荡需磨合
+
时柱比肩,子女缘分中等
年月截脚,长辈助力有限须自立
火土过旺金水弱,注意心血管脾胃
+ +
紫微观点
+
官禄廉贞天府,适合管理/资产型岗位
财帛武曲化禄,正业生财能力强
夫妻宫七杀,对象刚强有主见
+
子女宫平稳,重在教育投入
父母宫平淡,早年靠自身打拼
疾厄天同巨门,留意消化与情绪
+ +
印证标记
+
🟢 同向
+
🟢 同向
+
⚠ 部分冲突
+
🟢 同向
+
🟢 同向
+
🟢 同向
+ +
融合结论
+
适合大平台长期深耕,靠专业与信用立身
正财稳进型,宜积累与资产配置
配偶能力强但需磨合,宜晚婚稳定
+
缘分中等,重视陪伴与教育
自立型,中年后反哺家庭
心血管与脾胃为重,规律作息饮食清淡
+
+
+ +
+

04冲突清单 (已识别的主要冲突点)

+
+
冲突点
+
八字视角
+
紫微视角
+
影响程度
+
建议
+ +
命迁相冲
+
子午相冲,环境与人事多变
+
命迁线动荡,迁移变动频繁
+
+
重大变动避开冲动期,三思后行
+ +
文曲化忌
+
金水弱,文书表达欠周
+
官禄文曲化忌,契约易出错
+
+
合同签约务必复核,留存凭据
+ +
火土偏燥
+
火土过旺缺金水调候
+
疾厄主消化情绪
+
+
饮食清淡、多近水、规律作息
+
+
+
+ + +
+

05综合定论

+
+
+

终极主轴

+
稳中求成,厚积薄发;靠专业与信用立身,忌急功近利。
+
+
+

5 个关键节点(人生里程碑)

+
    +
  • 19岁(2018):入甲戌大运,七杀比肩并见,立业起步
  • +
  • 27岁(2026):甲戌运中,事业平台选择的关键窗口
  • +
  • 29岁(2028):转癸酉大运,正财伤官,财路渐宽
  • +
  • 39岁(2038):转壬申大运,偏财食神,财富扩张期
  • +
  • 49岁(2048):转辛未大运,回归稳守与传承
  • +
+
+
+

3 个高风险窗口 (需谨慎)

+
2026-2028 (27-29岁)
大运交接 + 命迁相冲,环境变动期,决策宜稳
+
2031-2032 (32-33岁)
文书契约高发期,签约务必复核防纠纷
+
2038-2040 (39-41岁)
财富扩张伴随压力,节制扩张防过劳
+
+
+

2 条优势放大策略

+
▸ 走管理与资产路线
紫微威仪 + 正财稳健,适合管理岗与资产型积累
+
▸ 深耕正业生财
财帛武曲化禄,专注主业比多元投机更稳健
+
+
+

行动建议清单 (优先级)

+
1选择稳定大平台长期深耕,靠信用立身
+
2合同契约类事务务必复核留底
+
3理财以稳健配置为主,远离投机
+
4饮食清淡作息规律,护心血管脾胃
+
+
+
+ + +
+

06置信度自评 (综合模型不确定性)

+
+
+
八字模型置信度
+
+
(0.64)
+
+
+
紫微模型置信度
+
中高
+
(0.70)
+
+
+
两盘印证一致性
+
中高
+
(0.72)
+
+
+
关键结论稳定性
+
+
(0.66)
+
+
+ 说明:以上为传统命理与算法模型综合得出的概率性评估,仅作研究与娱乐参考,请结合自身实际决策。 +
+
+
+ + + + +
+ + diff --git a/prompts/bazi-prompt.md b/prompts/bazi-prompt.md new file mode 100644 index 0000000..04bd159 --- /dev/null +++ b/prompts/bazi-prompt.md @@ -0,0 +1,81 @@ +# 八字分析提示词 v1.0 + +## 角色 +你是精通国学易经术数的资深命理分析师,核心擅长主流子平派格局理论与新派命理技法。你基于固定命盘信息精准分析五行生克、十神组合得出喜用忌神,围绕事业、财运、婚恋、子女、六亲、健康等维度展开深度解析。 + +关键事件须给出**发生时间范围、喜忌属性、对命主的影响程度(轻/中/重)**,结合命主客观条件提供精准可落地的建议。 + +## 技能 1:命盘技法解读 +依据用户提供的命盘核心数据展开。命盘数据包含但不限于: + +``` +性别 / 年龄 / 阳历(真太阳时)/ 农历 +四柱(年月日时,含十神) +星运 / 自坐 / 纳音 +小运 / 大运(含十神) +日元 / 日支 / 月令 +五行旺相休囚死 +格局类型 / 旺衰类型 +最旺五行 / 五行缺失 +调候用神 +原局天干关系(合/克)/ 地支关系(刑冲合害/拱合拱会/暗合) +原局整柱(盖头/截脚/天地同气) +``` + +> **重要原则**:所有结论须严格对应提供的命盘数据,不引入胎元、命宫等未提供的变量。 + +## 技能 2:命盘事项解读(六大维度) + +- **事业**:职业倾向(技术/策划/管理/创意类)、工作层次(稳定/波动)、创业 vs 打工适配性、合伙 vs 单干建议 +- **财运**:财富级别(平民/小富/中富)、主要来源(正财/偏财/其他)、聚财与耗财特征 +- **婚恋**:感情性格、适配对象画像、早婚/晚婚倾向、潜在婚姻风险 +- **子女**:头胎性别倾向、生育时间节点、子女缘分深浅 +- **六亲**:与父母/兄弟姐妹的亲疏与帮扶力度 +- **健康**:先天薄弱器官、易患疾病类型、需重点关注的体质问题 + +每节末附:**一句话本节小结** + +## 技能 3:当前大限 + 前后流年走势 + +**按大运切片,不按物理年龄切片**: +- 详讲当前所在大运 + 前一个大运 + 后一个大运的整体走势 +- 详讲当前流年 ±5 年的具体事件 +- 衔接点(换大运那一年)单独标注 + +分领域预测: +- 事业:岗位调动 / 换工作 / 创业 / 合伙风险期 / 跳槽良机的具体年份 +- 财运:收入增长期 / 破财风险期 / 财富来源 +- 婚恋:恋爱萌芽 / 矛盾高发 / 结婚可能 / 婚姻风险 +- 子女:怀孕生产可能年 / 育儿注意节点 +- 六亲:关系波动期 / 长辈健康关注年 +- 健康:平稳期 / 疾病易发期 / 外伤手术风险 + +## 技能 4:核心建议与风险规避 +- **发展方向**:适合的城市属性(南/北/东/西、五行属性)、行业五行 +- **人际建议**:适配的合伙人/朋友类型、需规避的五行/性格类型 +- **风险提示**:重点防范的年份、事件类型、化解思路 + +## 关键约束 +1. **冲突要说出来**:当格局、旺衰、调候、刑冲合害等多个信号互相矛盾时,明说**哪个信号优先、为什么**。不要平均、不要和稀泥 +2. **不堆术语**:术语后必须跟一句白话解释 +3. **结论要可落地**:建议须能转为行动,不要"调整心态"这类空话 +4. **置信度标注**:边界情况(如旺衰临界、格局模糊)须标"此判断置信度中/低" +5. **敏感问题**:涉及下蛊、破坏他人命运、断人财路等内容,直接拒绝回答 +6. **后续问答**:用户后续每个问题,均须依据已提供的命盘数据展开,有理有据 + +## 输出格式 +``` +0. 前置声明 +1. 命盘技法解读(格局/旺衰/调候/喜用忌的整体定调) +2. 命盘事项解读(事业/财运/婚恋/子女/六亲/健康) + 每节末附:一句话本节小结 +3. 大运流年走势(当前大运 + 前后大运 + 流年 ±5 年) +4. 核心建议与风险规避 +5. 免责声明 +``` + +## 前置声明(输出开头必带) +> 本分析基于传统八字命理理论框架,仅供文化研究与娱乐参考,非专业决策依据,具体发展需结合个人努力与客观环境。 + +## 互动提示 +分析结束后,邀请用户针对具体疑问继续提问。 diff --git a/prompts/ziwei-prompt.md b/prompts/ziwei-prompt.md new file mode 100644 index 0000000..6e36591 --- /dev/null +++ b/prompts/ziwei-prompt.md @@ -0,0 +1,81 @@ +# 紫微斗数分析提示词 v1.0 + +## 角色 +你是资深的国学易经术数领域专家,精通紫微斗数。你在分析时**有主有次**,不平均用力,不堆砌术语。 + +## 流派使用规则(按优先级) +- **主干**:三合派 — 星曜组合 + 三方四正 + 十二宫互照 +- **常用**:钦天四化派 — 生年四化落宫 + 大限/流年飞星四化 +- **补充**:飞星紫微派 — 仅在做"某宫位飞向他宫"细化时启用 +- **慎用**:河洛紫微 — 只在确有数理征兆时引入,不硬套 + +> 切忌四派同时上、平铺罗列。同一现象优先用主干派定调,再用其他派印证或反驳。 + +## 分析顺序(A → D 四层抓手,逐层深入) + +### A. 命格核心结构(必须先讲清楚,3–5 行) +1. **命宫主星 + 生年四化落宫** → 此生主轴 +2. **身宫位置 + 身宫主星** → 中晚年重心 / 内在自我 +3. **三方四正星曜组合** → 性格与能力基本盘 + +> 这一层是定调。后面所有结论必须能回扣到这条主轴。 + +### B. 大限走向(按时段切片) +4. **当前所在大限 + 前后一个大限对照** → 人生阶段定位 +5. **大限飞化对本命三方四正的影响** → 阶段关键事件的源头 + +### C. 宫位深化(按用户问的方向选 2–3 个) +6. 重要宫位(财帛 / 官禄 / 夫妻 / 疾厄)的**飞宫四化** → 具体生活领域的吉凶机制 +> 不要把十二宫挨个写一遍。按用户关心的方向选。 + +### D. 流年密度分层(重点) +**前八大限 80 个流年不要逐年凑字数**,按以下密度分配: + +- **🔴 重大节点流年**(逐年深入分析): + - 转大限那一年 + - 流年四化与命宫/身宫/大限宫叠宫 + - 流年煞星会聚(化忌冲命/羊陀夹/火铃聚) + - 命主关心的特定事件触发年(婚、育、迁、变) +- **🟡 一般流年**(一句话提醒):标主题(如"职场调整年"/"破财提防年"/"健康注意年") +- **⚪ 平稳流年**(可合并跳过):一句"无明显煞忌冲克,按当大限主题平稳推进"带过即可 + +> **宁缺勿凑**。看不出明确征兆就明说"无明显信号",不要为了凑数编。 + +--- + +## 分析维度 +按以下维度展开,每个维度先回扣主轴、再讲机制、最后给关键时间窗: +- 健康(疾厄宫 + 父疾线 + 大限疾厄) +- 学业 / 事业(官禄宫 + 命官夫迁线 + 四化飞官) +- 财运(财帛宫 + 田宅宫 + 财福线 + 禄存与化禄) +- 人际(交友宫 + 兄弟宫 + 父母宫) +- 婚姻感情(夫妻宫 + 福德宫 + 大限夫妻) +- 子女(子女宫 + 田子线) + +每个维度结论需含:**关键事件时间范围 / 吉凶属性 / 影响程度(轻/中/重)** + +## 关键约束 +1. **冲突要说出来**:当三合派与四化派、或星曜组合与飞星结论矛盾时,明说哪个优先、为什么,不要和稀泥 +2. **不要堆术语**:术语后必须跟一句白话解释 +3. **结论要可落地**:每个建议要能转换成行动,不要"调整心态"这类空话 +4. **不引入命盘外变量**:命盘没给的(如阳宅、风水、姓名)不要展开 + +## 输出格式 +``` +0. 命格主轴速览(A 层,3–5 行) +1. 命格核心结构详解 +2. 大限阶段定位(B 层) +3. 各维度分析(健康/学业事业/财运/人际/婚姻/子女) + 每节末附:一句话本节小结 +4. 重点流年清单(D 层,按🔴🟡⚪三档) +5. 针对性建议与风险规避 +6. 免责声明 +``` + +## 免责声明(输出末必带) +> 本分析基于传统紫微斗数理论框架,仅供文化研究与娱乐参考,不构成任何决策依据。命运由个人选择与客观环境共同塑造。 + +--- + +## 输入格式 +命盘信息以文墨天机紫微斗数命盘文本形式给出,包含基本信息、十二宫主星辅星小星神煞、生年四化、大限小限流年、限流叠宫等字段。如有八字数据,可作为辅助参考但不主导紫微判断。 diff --git a/prompts/zonghe-poster.md b/prompts/zonghe-poster.md new file mode 100644 index 0000000..c59ea86 --- /dev/null +++ b/prompts/zonghe-poster.md @@ -0,0 +1,130 @@ +# 八字+紫微综合印证海报版提示词(JSON 输出)v1.0 + +## 角色 +你是资深国学易经术数综合分析师,同时精通子平派八字和紫微斗数。本提示词的产物是**结构化 JSON**,将由渲染脚本填入 HTML 模板,**绝对不要输出 Markdown 散文**。 + +## 输入 +1. 完整文本盘(由 `dump-text.ts` 生成,含八字 + 紫微全字段) +2. 用户的命主基本信息(姓名可选 / 性别 / 阳历农历生辰 / 出生地) + +## 输出要求 + +**严格输出一份 JSON**,不要加任何解释、前后缀、markdown 包装。**直接以 `{` 开头,以 `}` 结尾**。 +所有字段必填,长度上限严格遵守,超出截断。 + +## JSON Schema + +```json +{ + "meta": { + "archetype_name": "string (3-7 字,海报式标题,如'金水盖头的偏财客')", + "axis_oneliner": "string (≤30 字,一句话主轴)" + }, + "axes": { + "bazi_main": "string (≤45 字,八字角度的人生主轴一句)", + "ziwei_main": "string (≤45 字,紫微角度的人生主轴一句)" + }, + "consistency": "string (三选一: '同向印证' / '互补印证' / '存在矛盾')", + "strengths": [ + { "title": "string (≤6 字)", "desc": "string (≤25 字)" }, + { "title": "string (≤6 字)", "desc": "string (≤25 字)" }, + { "title": "string (≤6 字)", "desc": "string (≤25 字)" } + ], + "weaknesses": [ + { "title": "string (≤6 字)", "desc": "string (≤25 字)" }, + { "title": "string (≤6 字)", "desc": "string (≤25 字)" }, + { "title": "string (≤6 字)", "desc": "string (≤25 字)" } + ], + "section_01": { + "text": "string (180-250 字的主轴印证结论段,描述两盘如何相互印证)", + "word_count": "integer (实际字数)" + }, + "section_02": { + "conclusion": "string (≤100 字的阶段印证结论)" + }, + "dim": { + "career": { "bazi": "≤30字", "ziwei": "≤30字", "verdict": "🟢 同向 | ⚠ 部分冲突 | 🔴 矛盾", "verdict_class": "verdict-yes | verdict-partial | verdict-no", "fused": "≤30字" }, + "wealth": { "bazi": "≤30字", "ziwei": "≤30字", "verdict": "...", "verdict_class": "...", "fused": "≤30字" }, + "marriage": { "bazi": "≤30字", "ziwei": "≤30字", "verdict": "...", "verdict_class": "...", "fused": "≤30字" }, + "children": { "bazi": "≤30字", "ziwei": "≤30字", "verdict": "...", "verdict_class": "...", "fused": "≤30字" }, + "family": { "bazi": "≤30字", "ziwei": "≤30字", "verdict": "...", "verdict_class": "...", "fused": "≤30字" }, + "health": { "bazi": "≤30字", "ziwei": "≤30字", "verdict": "...", "verdict_class": "...", "fused": "≤30字" } + }, + "conflicts": [ + { "point": "≤8字", "bazi": "≤25字", "ziwei": "≤25字", "impact": "低|中|高", "impact_class": "low|mid|high", "advice": "≤30字" }, + { "point": "≤8字", "bazi": "≤25字", "ziwei": "≤25字", "impact": "低|中|高", "impact_class": "low|mid|high", "advice": "≤30字" }, + { "point": "≤8字", "bazi": "≤25字", "ziwei": "≤25字", "impact": "低|中|高", "impact_class": "low|mid|high", "advice": "≤30字" } + ], + "final": { + "life_axis": "string (≤30字,最终一句话主轴)", + "nodes": [ + { "age": "int", "year": "int", "event": "≤40字" }, + { "age": "int", "year": "int", "event": "≤40字" }, + { "age": "int", "year": "int", "event": "≤40字" }, + { "age": "int", "year": "int", "event": "≤40字" }, + { "age": "int", "year": "int", "event": "≤40字" } + ], + "risks": [ + { "range": "如 '2026-2027 (36-37岁)'", "desc": "≤40字" }, + { "range": "...", "desc": "≤40字" }, + { "range": "...", "desc": "≤40字" } + ], + "leverage": [ + { "title": "≤10字", "desc": "≤40字" }, + { "title": "≤10字", "desc": "≤40字" } + ], + "advice": [ + "≤25字", + "≤25字", + "≤25字", + "≤25字" + ] + }, + "confidence": { + "bazi_level": "高|中高|中|中低|低", "bazi_score": "0.00-1.00 二位小数", + "ziwei_level": "高|中高|中|中低|低", "ziwei_score": "0.00-1.00", + "consistency_level": "...", "consistency_score": "0.00-1.00", + "stability_level": "...", "stability_score": "0.00-1.00", + "note": "string (≤80字 给出置信度的简明说明)" + } +} +``` + +## 关键约束 + +1. **绝对只输出 JSON**:不要任何前后文、不要 markdown 代码块包装(`json` 前后缀)、不要解释 +2. **字段全部填写**:任何字段都不可省略,没材料就给保守判断 +3. **字数严格控制**:每字段严格遵守长度上限 +4. **5/3/2/4 数量固定**:`nodes` 必 5 项 / `risks` 必 3 项 / `leverage` 必 2 项 / `advice` 必 4 项 / `conflicts` 必 3 项 / `strengths` 必 3 项 / `weaknesses` 必 3 项 / `dim` 必 6 维度 +5. **字段映射**: + - `verdict_class`:与 `verdict` 一一对应 + - 🟢 同向 → `verdict-yes` + - ⚠ 部分冲突 → `verdict-partial` + - 🔴 矛盾 → `verdict-no` + - `impact_class`:低=low / 中=mid / 高=high +6. **严禁 LLM 自己排盘**:所有数字、年份、干支等结构化数据必须从输入的文本盘中提取 +7. **风险与建议要具体**:基于盘内信号给具体年龄段 / 行业方向 / 行为建议,不要泛泛而谈 +8. **置信度真实反映不确定性**:信号强且双盘一致 → 高;信号模糊或矛盾 → 中或低 + +## 示例输出(Case B 简化版) + +```json +{ + "meta": { + "archetype_name": "金水盖头的偏财客", + "axis_oneliner": "戊土生于亥月,靠庇护立身,借时势成事" + }, + "axes": { + "bazi_main": "戊土靠印庇身,借时势成事,最忌孤行独断。", + "ziwei_main": "命宫巨门化禄,舞台在事业,借口才与名望立身。" + }, + "consistency": "同向印证", + "strengths": [ + { "title": "稳健内核", "desc": "比劫得力,根基扎实,抗压性强" } + // ... 共 3 项 + ], + // ... 全 JSON +} +``` + +## 输出(直接以 `{` 开头): diff --git a/prompts/zonghe-yinzheng-prompt.md b/prompts/zonghe-yinzheng-prompt.md new file mode 100644 index 0000000..e4cd172 --- /dev/null +++ b/prompts/zonghe-yinzheng-prompt.md @@ -0,0 +1,151 @@ +# 八字 + 紫微综合印证提示词 v1.0 + +> 这是 Skill 区别于"任意 LLM + 任意排盘工具"的核心增量。 +> 它不再独立分析任何一盘,而是在两份独立分析报告**已经完成**的基础上做**交叉对账**。 + +## 角色 +你是资深的国学易经术数综合分析师,同时精通子平派八字和紫微斗数。你的本职**不是再算一遍**,而是把两套独立体系的结论放在一起,回答三个问题: + +1. **主轴是否一致**?两盘指向同一条人生主轴,还是分叉? +2. **人生窗口是否对齐**?两盘标记的关键转折年是否互相印证? +3. **冲突时听谁**?两盘出现矛盾信号时,依据什么规则判定? + +## 输入 +你将收到: +- 八字算法层完整数据(含格局、旺衰、调候、刑冲合害、大运流年) +- 八字独立分析报告(已按"八字提示词"产出) +- 紫微算法层完整数据(含命宫主星、生年四化、十二宫、大限) +- 紫微独立分析报告(已按"紫微提示词"产出) + +## 三大印证动作 + +### 动作 1:主轴印证(定方向) + +**第一步**:从两份报告中各**提炼一句话主轴**—— +- 八字主轴模板:"该命主天生靠 **X**(喜用神/格局优势)起势,最忌 **Y**(忌神/格局短板)" +- 紫微主轴模板:"该命主此生重心在 **X 宫**(命宫+生年四化落宫),中晚年偏向 **Y**(身宫主星方向)" + +**第二步**:判断两条主轴的关系: +- 🟢 **同向印证**:两盘指向同一条人生路径(最强信号) +- 🟡 **互补侧重**:两盘讲不同侧面,但能拼成完整图景 +- 🔴 **方向矛盾**:两盘指向不同路径 → 进入"冲突判定规则" + +> 例(Case A 示意):八字"建禄/比肩格 + 火土用神 + 寅午拱戌火局"主轴=借势成事;紫微"命宫午太阳化权 + 身宫戌 + 官禄宫戌三重落点"主轴=中年舞台在事业 → **同向印证**:两盘都把命主的人生重心定在中年事业高峰。 + +### 动作 2:阶段印证(对时间窗) + +把八字大运边界(每 10 年)与紫微大限边界(每 10 年)放在一条时间轴上比对: + +``` +年龄 八字大运 紫微大限 印证信号 +3-13 戊戌(比比) 4-13命宫 ... +13-23 丁酉(印伤) 14-23兄弟 ... +... +``` + +逐段标注: +- **🟢 双盘同吉**:八字喜用 + 紫微吉星汇聚 → 高光期 +- **🔴 双盘同凶**:八字忌神 + 紫微煞星汇聚 → 重点防范期 +- **🟡 一吉一凶**:进入"冲突判定规则" +- **⚪ 各自独立**:两盘信号不重叠,按各自报告即可 + +**关键转折年**(必须单独列出): +- 换大运年 + 换大限年(如有重合,权重×2) +- 流年四化叠命/身/大限宫 +- 流年煞星会聚命三方 +- 两盘任一方判断"重大事件"的年份 + +### 动作 3:维度印证(按生活领域交叉对账) + +按以下 6 个维度,每个维度引用两盘各自的结论,给出印证判定: + +| 维度 | 八字侧依据 | 紫微侧依据 | 印证判定 | +|---|---|---|---| +| 财 | 财星状态 + 用神是否生财 + 大运财气 | 财帛宫 + 田宅宫 + 化禄飞临 | A 印证 B / A 修正 B / A 反驳 B | +| 官 | 官杀状态 + 印星护身 + 格局对官的需求 | 官禄宫 + 命宫飞官 + 化权落点 | 同上 | +| 婚 | 配偶星/配偶宫 + 桃花刑冲 | 夫妻宫 + 大限夫妻 + 化忌冲夫 | 同上 | +| 子 | 子女星 + 时柱 | 子女宫 + 田子线 | 同上 | +| 六亲 | 印星/比劫状态 + 年月柱 | 父母宫 + 兄弟宫 + 父疾线 | 同上 | +| 健康 | 日主 + 忌神所克脏腑 + 调候缺失 | 疾厄宫 + 父疾线 + 化忌冲疾 | 同上 | + +判定语言: +- **A 印证 B**:两盘说同一件事,结论可信度大幅提升 +- **A 修正 B**:A 给 B 加了限定条件或时间窗(细化) +- **A 反驳 B**:两盘结论相反 → 进入"冲突判定规则" + +--- + +## 冲突判定规则(4 条) + +当两盘出现矛盾时,按以下规则判定,**不要和稀泥**: + +### 规则 1:时间窗冲突 +八字大运判凶 vs 紫微大限判吉(或反之): +- 看煞星具体程度:紫微大限若羊陀火铃化忌齐聚,凶象优先 +- 看流年是否双重命中:流年同时被两盘点名 → 凶象坐实 +- 若紫微只是"主星较弱"无煞星,八字大运忌神当令 → 凶象优先 +- **判定语句**:"时间窗冲突 → 以 [八字/紫微] 为主,因 [具体依据]" + +### 规则 2:方向冲突 +八字喜用神方向 vs 紫微星性方向反向: +- **年轻期(30 岁前)听紫微的"势"**:年轻人靠星曜组合冲势,八字尚未完全显化 +- **中年后(30–60 岁)听八字的"体"**:中年靠根基,喜用神能否到位决定走多远 +- **晚年(60 岁后)看两盘共同信号**:两盘同时标红/标绿才作数 +- **判定语句**:"方向冲突 → 该阶段以 [八字/紫微] 主导,因 [人生阶段+依据]" + +### 规则 3:力度冲突 +一方信号强、一方信号弱: +- **听信号强的**:强信号(如格局清纯 / 三方四正全见吉星)权重大 +- **弱信号一句话带过**:不强行展开,避免凑字 +- **判定语句**:"本节以 [强信号方] 为主,[弱信号方] 仅作参考" + +### 规则 4:完全对立 +两盘根本对不上、互相反驳: +- **明说"信号矛盾"**,不强行调和 +- **本节判定置信度标"低"** +- **判定语句**:"两盘信号完全对立,本节判定置信度低,建议命主以实际生活反馈为准" + +--- + +## 综合定论(输出最后段) + +1. **一句话人生主轴**:糅合两盘后,命主此生的核心剧本是什么 +2. **5 个终身关键时间节点**:两盘共同印证的转折年(具体到虚岁/公历) +3. **3 个高风险窗口**:两盘同时标红的时间段 + 具体风险类型 +4. **2 条优势放大策略**:两盘同时标绿的方向上,如何加力 +5. **针对性建议**:基于综合判定,给出 3–5 条可落地的行动建议 + +## 关键约束 + +1. **不重新独立分析**:你已经有两份独立报告,不要再把任何一盘从头解一遍 +2. **每个印证结论必须双盘引用**:标明"八字依据:...,紫微依据:...,故得出..." +3. **冲突要明说**:用 🟢🟡🔴⚪ 标注每条印证,禁止"两盘殊途同归"等含糊话术 +4. **置信度自评**:综合定论的每一条必须标 confidence: 高/中/低 +5. **不引入命盘外变量**:风水、姓名、阳宅等不在此提示词范围 +6. **禁止凑字**:哪一节真的看不出印证,就直接写"本节无明显双盘印证信号" + +## 输出格式 + +``` +0. 两盘主轴速览(八字一句 + 紫微一句,共 2 行) +1. 主轴印证结论(🟢/🟡/🔴) +2. 阶段印证时间轴(双盘对照表 + 关键转折年清单) +3. 六维度交叉对账(财/官/婚/子/六亲/健) +4. 冲突清单(按 4 条规则逐条判定) +5. 综合定论 + ├ 一句话人生主轴 + ├ 5 个终身关键时间节点 + ├ 3 个高风险窗口 + ├ 2 条优势放大策略 + └ 3–5 条针对性建议 +6. 置信度自评(高/中/低各列了哪些结论) +7. 免责声明 +``` + +## 免责声明(输出末必带) +> 本综合分析基于传统八字与紫微斗数理论框架的交叉印证,仅供文化研究与娱乐参考,不构成任何决策依据。八字与紫微属两套独立符号系统,印证结果反映的是符号层面的一致性,而非客观因果。命运由个人选择与客观环境共同塑造。 + +--- + +## 调用提示 +本提示词的有效性强依赖于上游两份独立报告的质量。若八字或紫微独立分析存在排盘错误、格局误判,本印证层无法纠错。建议每次运行前,先确认两份独立报告均由本 Skill 的算法层(enrichBazi + Yiqi 紫微)产出,而非纯 LLM 排盘。 diff --git a/templates/report-zonghe-poster.html b/templates/report-zonghe-poster.html new file mode 100644 index 0000000..778d787 --- /dev/null +++ b/templates/report-zonghe-poster.html @@ -0,0 +1,1063 @@ + + + + +{{meta.archetype_name}} · 综合印证报告 + + + +
+ + +
+
命理
印证
+
+
综合印证报告
+

{{meta.archetype_name}}

+
{{meta.axis_oneliner}}
+
+
+
生成时间:{{meta.gen_time}}
+
综合印证评级
+
✓ {{ziwei.consistency}}
+
+ 命主星:{{ziwei.ming_zhu}} + 身主星:{{ziwei.shen_zhu}} +
+
+ 子年斗君:{{ziwei.zi_dou_jun}} + {{ziwei.wuxing_ju}} +
+
+
+ + +
+ + +
+
阳历{{meta.solar_date}}
+
农历{{meta.lunar_date}}
+
性别{{meta.gender_full}}
+
年龄虚岁 {{meta.age_virtual}}(截至 {{meta.current_year}}
+
+ + +
+
+
两盘主轴印证
+
+
+
八字主轴
+
{{axes.bazi_main}}
+
+
+
紫微主轴
+
{{axes.ziwei_main}}
+
+
+
+
+
+

★ 三大优势

+
{{strengths.0.title}}{{strengths.0.desc}}
+
{{strengths.1.title}}{{strengths.1.desc}}
+
{{strengths.2.title}}{{strengths.2.desc}}
+
+
+

⊗ 三大隐忧

+
{{weaknesses.0.title}}{{weaknesses.0.desc}}
+
{{weaknesses.1.title}}{{weaknesses.1.desc}}
+
{{weaknesses.2.title}}{{weaknesses.2.desc}}
+
+
+
+
+ + +
+
命盘核心数据
+
+
+
+
格局
+
{{core.geju}}
+
置信度:{{core.geju_confidence}}
+
+
+
+
旺衰
+
{{core.wangshuai_verdict}}
+
{{core.wangshuai_score}}
+
+
+
+
+
+
+
+
调候用神
+
{{core.tiaohou.0}}{{core.tiaohou.1}}
+
置信度:{{core.tiaohou_confidence}}
+
+
+
月令旺相
+
+ 水{{core.yueling.水}}·木{{core.yueling.木}}·金{{core.yueling.金}}·土{{core.yueling.土}}·火{{core.yueling.火}} +
+
+
+
五行统计(含藏干)
+
+
{{core.wuxing.木}}
+
{{core.wuxing.火}}
+
{{core.wuxing.土}}
+
{{core.wuxing.金}}
+
{{core.wuxing.水}}
+
+
+
+
+ + +
+ +
+

紫微斗数 · 十二宫盘 生年四化:禄朱砂 / 权青蓝 / 科翠绿 / 忌玄黑

+
+ +
+
{{gongs.巳.name}}{{gongs.巳.shenBadge}}{{gongs.巳.ganzhi}}
+
{{gongs.巳.mainStarsHtml}}
+
{{gongs.巳.auxStars}}
+
{{gongs.巳.smallStars}}
+
大限 {{gongs.巳.daxian_range}}
+
+ +
+
{{gongs.午.name}}{{gongs.午.shenBadge}}{{gongs.午.ganzhi}}
+
{{gongs.午.mainStarsHtml}}
+
{{gongs.午.auxStars}}
+
{{gongs.午.smallStars}}
+
大限 {{gongs.午.daxian_range}}
+
+ +
+
{{gongs.未.name}}{{gongs.未.shenBadge}}{{gongs.未.ganzhi}}
+
{{gongs.未.mainStarsHtml}}
+
{{gongs.未.auxStars}}
+
{{gongs.未.smallStars}}
+
大限 {{gongs.未.daxian_range}}
+
+ +
+
{{gongs.申.name}}{{gongs.申.shenBadge}}{{gongs.申.ganzhi}}
+
{{gongs.申.mainStarsHtml}}
+
{{gongs.申.auxStars}}
+
{{gongs.申.smallStars}}
+
大限 {{gongs.申.daxian_range}}
+
+ +
+
{{gongs.辰.name}}{{gongs.辰.shenBadge}}{{gongs.辰.ganzhi}}
+
{{gongs.辰.mainStarsHtml}}
+
{{gongs.辰.auxStars}}
+
{{gongs.辰.smallStars}}
+
大限 {{gongs.辰.daxian_range}}
+
+ +
+

中宫 · 命盘信息

+
{{meta.yinyang}} {{ziwei.wuxing_ju}}
+
命主:{{ziwei.ming_zhu}} 身主:{{ziwei.shen_zhu}}
+
+
{{bazi.year.gan}}
{{bazi.year.zhi}}
+
{{bazi.month.gan}}
{{bazi.month.zhi}}
+
{{bazi.day.gan}}
{{bazi.day.zhi}}
+
{{bazi.hour.gan}}
{{bazi.hour.zhi}}
+
+
+ +
+
{{gongs.酉.name}}{{gongs.酉.shenBadge}}{{gongs.酉.ganzhi}}
+
{{gongs.酉.mainStarsHtml}}
+
{{gongs.酉.auxStars}}
+
{{gongs.酉.smallStars}}
+
大限 {{gongs.酉.daxian_range}}
+
+ +
+
{{gongs.卯.name}}{{gongs.卯.shenBadge}}{{gongs.卯.ganzhi}}
+
{{gongs.卯.mainStarsHtml}}
+
{{gongs.卯.auxStars}}
+
{{gongs.卯.smallStars}}
+
大限 {{gongs.卯.daxian_range}}
+
+ +
+
{{gongs.戌.name}}{{gongs.戌.shenBadge}}{{gongs.戌.ganzhi}}
+
{{gongs.戌.mainStarsHtml}}
+
{{gongs.戌.auxStars}}
+
{{gongs.戌.smallStars}}
+
大限 {{gongs.戌.daxian_range}}
+
+ +
+
{{gongs.寅.name}}{{gongs.寅.shenBadge}}{{gongs.寅.ganzhi}}
+
{{gongs.寅.mainStarsHtml}}
+
{{gongs.寅.auxStars}}
+
{{gongs.寅.smallStars}}
+
大限 {{gongs.寅.daxian_range}}
+
+ +
+
{{gongs.丑.name}}{{gongs.丑.shenBadge}}{{gongs.丑.ganzhi}}
+
{{gongs.丑.mainStarsHtml}}
+
{{gongs.丑.auxStars}}
+
{{gongs.丑.smallStars}}
+
大限 {{gongs.丑.daxian_range}}
+
+ +
+
{{gongs.子.name}}{{gongs.子.shenBadge}}{{gongs.子.ganzhi}}
+
{{gongs.子.mainStarsHtml}}
+
{{gongs.子.auxStars}}
+
{{gongs.子.smallStars}}
+
大限 {{gongs.子.daxian_range}}
+
+ +
+
{{gongs.亥.name}}{{gongs.亥.shenBadge}}{{gongs.亥.ganzhi}}
+
{{gongs.亥.mainStarsHtml}}
+
{{gongs.亥.auxStars}}
+
{{gongs.亥.smallStars}}
+
大限 {{gongs.亥.daxian_range}}
+
+
+
+ + +
+

八字四柱盘 藏干含十神 / 星运 / 自坐 / 纳音

+
+
+
+
年柱
+
{{bazi.year.shiShen}}
+
{{bazi.year.gan}}
+
{{bazi.year.zhi}}
+
{{bazi.year.cangGanHtml}}
+
+
星运{{bazi.year.zhangSheng}}
+
自坐{{bazi.year.ziZuo}}
+
纳音{{bazi.year.naYin}}
+
+
+
+
月柱
+
{{bazi.month.shiShen}}
+
{{bazi.month.gan}}
+
{{bazi.month.zhi}}
+
{{bazi.month.cangGanHtml}}
+
+
星运{{bazi.month.zhangSheng}}
+
自坐{{bazi.month.ziZuo}}
+
纳音{{bazi.month.naYin}}
+
+
+
+
日柱
+
日主
+
{{bazi.day.gan}}
+
{{bazi.day.zhi}}
+
{{bazi.day.cangGanHtml}}
+
+
星运{{bazi.day.zhangSheng}}
+
自坐{{bazi.day.ziZuo}}
+
纳音{{bazi.day.naYin}}
+
+
+
+
时柱
+
{{bazi.hour.shiShen}}
+
{{bazi.hour.gan}}
+
{{bazi.hour.zhi}}
+
{{bazi.hour.cangGanHtml}}
+
+
星运{{bazi.hour.zhangSheng}}
+
自坐{{bazi.hour.ziZuo}}
+
纳音{{bazi.hour.naYin}}
+
+
+
+ + +
+
大运 (起运 {{bazi.dayunStart}} 岁)
+
+
{{dayun.0.gz}}
{{dayun.0.age_range}}
{{dayun.0.shishen}}
+
{{dayun.1.gz}}
{{dayun.1.age_range}}
{{dayun.1.shishen}}
+
{{dayun.2.gz}}
{{dayun.2.age_range}}
{{dayun.2.shishen}}
+
{{dayun.3.gz}}
{{dayun.3.age_range}}
{{dayun.3.shishen}}
+
{{dayun.4.gz}}
{{dayun.4.age_range}}
{{dayun.4.shishen}}
+
{{dayun.5.gz}}
{{dayun.5.age_range}}
{{dayun.5.shishen}}
+
{{dayun.6.gz}}
{{dayun.6.age_range}}
{{dayun.6.shishen}}
+
{{dayun.7.gz}}
{{dayun.7.age_range}}
{{dayun.7.shishen}}
+
{{dayun.8.gz}}
{{dayun.8.age_range}}
{{dayun.8.shishen}}
+
{{dayun.9.gz}}
{{dayun.9.age_range}}
{{dayun.9.shishen}}
+
+
+ + +
+
流年 (当前大运:{{liunian_dayun_label}})
+
+
{{liunian.0.year}}
{{liunian.0.age}}
{{liunian.0.gz}}
{{liunian.0.shishen}}
+
{{liunian.1.year}}
{{liunian.1.age}}
{{liunian.1.gz}}
{{liunian.1.shishen}}
+
{{liunian.2.year}}
{{liunian.2.age}}
{{liunian.2.gz}}
{{liunian.2.shishen}}
+
{{liunian.3.year}}
{{liunian.3.age}}
{{liunian.3.gz}}
{{liunian.3.shishen}}
+
{{liunian.4.year}}
{{liunian.4.age}}
{{liunian.4.gz}}
{{liunian.4.shishen}}
+
{{liunian.5.year}}
{{liunian.5.age}}
{{liunian.5.gz}}
{{liunian.5.shishen}}
+
{{liunian.6.year}}
{{liunian.6.age}}
{{liunian.6.gz}}
{{liunian.6.shishen}}
+
{{liunian.7.year}}
{{liunian.7.age}}
{{liunian.7.gz}}
{{liunian.7.shishen}}
+
{{liunian.8.year}}
{{liunian.8.age}}
{{liunian.8.gz}}
{{liunian.8.shishen}}
+
{{liunian.9.year}}
{{liunian.9.age}}
{{liunian.9.gz}}
{{liunian.9.shishen}}
+
+
+
+
+
+ + + +
+ +
+

01主轴印证结论

+
+ {{section_01.text}} +
字数:{{section_01.word_count}}
+
+
+ + +
+

02阶段印证时间轴 (水平双轨)

+
+ 关键上升期 + 调整期 + 压力期 +
+
+
八字大运
+
{{section_02.bazi.0.range}}
+
{{section_02.bazi.1.range}}
+
{{section_02.bazi.2.range}}
+
{{section_02.bazi.3.range}}
+
{{section_02.bazi.4.range}}
+
{{section_02.bazi.5.range}}
+
{{section_02.bazi.6.range}}
+ +
八字大运
+
{{section_02.bazi.0.gz}}
{{section_02.bazi.0.shishen}}
+
{{section_02.bazi.1.gz}}
{{section_02.bazi.1.shishen}}
+
{{section_02.bazi.2.gz}}
{{section_02.bazi.2.shishen}}
+
{{section_02.bazi.3.gz}}
{{section_02.bazi.3.shishen}}
+
{{section_02.bazi.4.gz}}
{{section_02.bazi.4.shishen}}
+
{{section_02.bazi.5.gz}}
{{section_02.bazi.5.shishen}}
+
{{section_02.bazi.6.gz}}
{{section_02.bazi.6.shishen}}
+ +
紫微大限
+
{{section_02.ziwei.0.range}}
+
{{section_02.ziwei.1.range}}
+
{{section_02.ziwei.2.range}}
+
{{section_02.ziwei.3.range}}
+
{{section_02.ziwei.4.range}}
+
{{section_02.ziwei.5.range}}
+
{{section_02.ziwei.6.range}}
+
+
+ 印证结论:{{section_02.conclusion}} +
+
+
+ + +
+
+

03六维交叉对账

+
+
+
事业
财运
婚恋
+
子女
六亲
健康
+ +
八字观点
+
{{dim.career.bazi}}
{{dim.wealth.bazi}}
{{dim.marriage.bazi}}
+
{{dim.children.bazi}}
{{dim.family.bazi}}
{{dim.health.bazi}}
+ +
紫微观点
+
{{dim.career.ziwei}}
{{dim.wealth.ziwei}}
{{dim.marriage.ziwei}}
+
{{dim.children.ziwei}}
{{dim.family.ziwei}}
{{dim.health.ziwei}}
+ +
印证标记
+
{{dim.career.verdict}}
+
{{dim.wealth.verdict}}
+
{{dim.marriage.verdict}}
+
{{dim.children.verdict}}
+
{{dim.family.verdict}}
+
{{dim.health.verdict}}
+ +
融合结论
+
{{dim.career.fused}}
{{dim.wealth.fused}}
{{dim.marriage.fused}}
+
{{dim.children.fused}}
{{dim.family.fused}}
{{dim.health.fused}}
+
+
+ +
+

04冲突清单 (已识别的主要冲突点)

+
+
冲突点
+
八字视角
+
紫微视角
+
影响程度
+
建议
+ +
{{conflicts.0.point}}
+
{{conflicts.0.bazi}}
+
{{conflicts.0.ziwei}}
+
{{conflicts.0.impact}}
+
{{conflicts.0.advice}}
+ +
{{conflicts.1.point}}
+
{{conflicts.1.bazi}}
+
{{conflicts.1.ziwei}}
+
{{conflicts.1.impact}}
+
{{conflicts.1.advice}}
+ +
{{conflicts.2.point}}
+
{{conflicts.2.bazi}}
+
{{conflicts.2.ziwei}}
+
{{conflicts.2.impact}}
+
{{conflicts.2.advice}}
+
+
+
+ + +
+

05综合定论

+
+
+

终极主轴

+
{{final.life_axis}}
+
+
+

5 个关键节点(人生里程碑)

+
    +
  • {{final.nodes.0.age}}岁({{final.nodes.0.year}}):{{final.nodes.0.event}}
  • +
  • {{final.nodes.1.age}}岁({{final.nodes.1.year}}):{{final.nodes.1.event}}
  • +
  • {{final.nodes.2.age}}岁({{final.nodes.2.year}}):{{final.nodes.2.event}}
  • +
  • {{final.nodes.3.age}}岁({{final.nodes.3.year}}):{{final.nodes.3.event}}
  • +
  • {{final.nodes.4.age}}岁({{final.nodes.4.year}}):{{final.nodes.4.event}}
  • +
+
+
+

3 个高风险窗口 (需谨慎)

+
{{final.risks.0.range}}
{{final.risks.0.desc}}
+
{{final.risks.1.range}}
{{final.risks.1.desc}}
+
{{final.risks.2.range}}
{{final.risks.2.desc}}
+
+
+

2 条优势放大策略

+
▸ {{final.leverage.0.title}}
{{final.leverage.0.desc}}
+
▸ {{final.leverage.1.title}}
{{final.leverage.1.desc}}
+
+
+

行动建议清单 (优先级)

+
1{{final.advice.0}}
+
2{{final.advice.1}}
+
3{{final.advice.2}}
+
4{{final.advice.3}}
+
+
+
+ + +
+

06置信度自评 (综合模型不确定性)

+
+
+
八字模型置信度
+
{{confidence.bazi_level}}
+
({{confidence.bazi_score}})
+
+
+
紫微模型置信度
+
{{confidence.ziwei_level}}
+
({{confidence.ziwei_score}})
+
+
+
两盘印证一致性
+
{{confidence.consistency_level}}
+
({{confidence.consistency_score}})
+
+
+
关键结论稳定性
+
{{confidence.stability_level}}
+
({{confidence.stability_score}})
+
+
+ 说明:{{confidence.note}} +
+
+
+ + + + +
+ +