From b2600d7c5a2ef2db5f208c723be8fbfab0246487 Mon Sep 17 00:00:00 2001 From: 6tail <6tail@6tail.cn> Date: Mon, 7 Apr 2025 20:44:08 +0800 Subject: [PATCH] =?UTF-8?q?v1.7.2=20=E4=BF=AE=E5=A4=8D=E5=85=AB=E5=AD=97?= =?UTF-8?q?=E8=BA=AB=E5=AE=AB=E8=AE=A1=E7=AE=97=E9=94=99=E8=AF=AF=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 3 +++ __tests__/EightChar.test.js | 2 +- lunar.js | 9 +++------ package.json | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7d358dc..ce3dbd6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,3 +23,6 @@ ## [1.7.1] - 2025-03-05 1. 调整每日宜忌的默认流派。 2. 更新2018之后的△T参数。 + +## [1.7.2] - 2025-04-07 +1. 修复八字身宫计算错误的问题。 diff --git a/__tests__/EightChar.test.js b/__tests__/EightChar.test.js index ffa3f24..60e00fe 100644 --- a/__tests__/EightChar.test.js +++ b/__tests__/EightChar.test.js @@ -152,7 +152,7 @@ test('身宫1', () => { const solar = Solar.fromYmdHms(1994, 12, 6, 2, 0, 0); const lunar = solar.getLunar(); const eightChar = lunar.getEightChar(); - expect(eightChar.getShenGong()).toBe('乙丑'); + expect(eightChar.getShenGong()).toBe('丁丑'); }); test('身宫2', () => { diff --git a/lunar.js b/lunar.js index b36a587..84139a9 100644 --- a/lunar.js +++ b/lunar.js @@ -5727,15 +5727,12 @@ getShenGong:function(){ var monthZhiIndex = LunarUtil.index(this.getMonthZhi(), LunarUtil.MONTH_ZHI, 0); var timeZhiIndex = LunarUtil.index(this.getTimeZhi(), LunarUtil.ZHI, 0); - var offset = monthZhiIndex + timeZhiIndex; - while (offset > 12) { - offset -= 12; - } - var ganIndex = (this._p.lunar.getYearGanIndexExact() + 1) * 2 + (offset % 12); + var offset = (monthZhiIndex + timeZhiIndex - 1) % 12; + var ganIndex = (this._p.lunar.getYearGanIndexExact() + 1) * 2 + offset; while (ganIndex > 10) { ganIndex -= 10; } - return LunarUtil.GAN[ganIndex] + LunarUtil.MONTH_ZHI[offset]; + return LunarUtil.GAN[ganIndex + 1] + LunarUtil.MONTH_ZHI[offset + 1]; }, getShenGongNaYin:function(){return LunarUtil.NAYIN[this.getShenGong()];}, getLunar:function(){return this._p.lunar;}, diff --git a/package.json b/package.json index b3fd60e..e56ad08 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "lunar-javascript", - "version": "1.7.1", + "version": "1.7.2", "description": "lunar是一款无第三方依赖的公历(阳历)、农历(阴历、老黄历)、佛历和道历工具,支持星座、儒略日、干支、生肖、节气、节日、彭祖百忌、每日宜忌、吉神宜趋、凶煞宜忌、吉神(喜神/福神/财神/阳贵神/阴贵神)方位、胎神方位、冲煞、纳音、星宿、八字、五行、十神、建除十二值星、青龙名堂等十二神、黄道日及吉凶等。lunar is a calendar library for Solar and Chinese Lunar.", "main": "index.js", "scripts": {