From eecd5d12c8221b82ce574dc2bad2d7aefcb46e56 Mon Sep 17 00:00:00 2001 From: 6tail <6tail@6tail.cn> Date: Tue, 21 Oct 2025 09:16:46 +0800 Subject: [PATCH] =?UTF-8?q?v1.7.6=20=E4=BF=AE=E5=A4=8D=E5=90=89=E7=A5=9E?= =?UTF-8?q?=E5=AE=9C=E9=A9=B1=E3=80=81=E5=87=B6=E7=A5=9E=E5=AE=9C=E5=BF=8C?= =?UTF-8?q?=E7=9A=84=E9=94=99=E8=AF=AF=EF=BC=9B=E4=BF=AE=E5=A4=8D=E5=86=9C?= =?UTF-8?q?=E5=8E=86=E9=97=B0=E6=9C=88=E5=8F=8A=E5=90=8E=E7=BB=AD=E6=9C=88?= =?UTF-8?q?=E4=BB=BD=E7=9A=84=E5=B9=B2=E6=94=AF=E9=94=99=E8=AF=AF=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 4 ++++ __tests__/Lunar.test.js | 8 ++++++++ __tests__/LunarMonth.test.js | 6 +++--- lunar.js | 8 ++++---- package.json | 2 +- 5 files changed, 20 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5063e73..e26cec3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -37,3 +37,7 @@ 1. 修复:候的错别字。 2. 优化:更新△T参数。 3. 优化:吉神宜驱、凶神宜忌。 + +## [1.7.6] - 2025-10-21 +1. 修复:吉神宜驱、凶神宜忌的错误。 +2. 修复:农历闰月及后续月份的干支错误。 diff --git a/__tests__/Lunar.test.js b/__tests__/Lunar.test.js index 2d703c4..c6911bb 100644 --- a/__tests__/Lunar.test.js +++ b/__tests__/Lunar.test.js @@ -674,3 +674,11 @@ test('test100', () => { expect(lunar.getDayJiShen().toString()).toBe('时德,阳德,民日,玉宇,司命'); expect(lunar.getDayXiongSha().toString()).toBe('河魁,死神,天吏,致死,往亡'); }); + +test('test101', () => { + const lunar = Solar.fromYmd(2025, 12, 15).getLunar(); + expect(lunar.getMonthZhiIndex()).toBe(0); + expect(lunar.getDayInGanZhi().toString()).toBe('戊午'); + expect(lunar.getDayJiShen().toString()).toBe('阳德,六仪,续世,解神,司命'); + expect(lunar.getDayXiongSha().toString()).toBe('月破,大耗,灾煞,天火,厌对,招摇,五虚,血忌'); +}); diff --git a/__tests__/LunarMonth.test.js b/__tests__/LunarMonth.test.js index 3cbd820..39a191f 100644 --- a/__tests__/LunarMonth.test.js +++ b/__tests__/LunarMonth.test.js @@ -9,13 +9,13 @@ test('test1', () => { test('test2', () => { const month = LunarMonth.fromYm(2023, -2); expect(month.getIndex()).toBe(3); - expect(month.getGanZhi()).toBe('丙辰'); + expect(month.getGanZhi()).toBe('乙卯'); }); test('test3', () => { const month = LunarMonth.fromYm(2023, 3); expect(month.getIndex()).toBe(4); - expect(month.getGanZhi()).toBe('丁巳'); + expect(month.getGanZhi()).toBe('丙辰'); }); test('test4', () => { @@ -27,7 +27,7 @@ test('test4', () => { test('test5', () => { const month = LunarMonth.fromYm(2023, 12); expect(month.getIndex()).toBe(13); - expect(month.getGanZhi()).toBe('丙寅'); + expect(month.getGanZhi()).toBe('乙丑'); }); test('test6', () => { diff --git a/lunar.js b/lunar.js index 2edc0b2..88497c5 100644 --- a/lunar.js +++ b/lunar.js @@ -2808,12 +2808,12 @@ dayCount: dayCount, firstJulianDay: firstJulianDay, index: index, - zhiIndex: (index - 1 + LunarUtil.BASE_MONTH_ZHI_INDEX) % 12 + zhiIndex: (Math.abs(lunarMonth) - 1 + LunarUtil.BASE_MONTH_ZHI_INDEX) % 12 }, getIndex:function(){return this._p.index;}, getGanIndex:function(){ var offset = (LunarYear.fromYear(this._p.year).getGanIndex() + 1) % 5 * 2; - return (this._p.index - 1 + offset) % 10; + return (Math.abs(this._p.month) - 1 + offset) % 10; }, getZhiIndex:function(){return this._p.zhiIndex;}, getGan:function(){return LunarUtil.GAN[this.getGanIndex() + 1];}, @@ -5223,7 +5223,7 @@ var l = []; var m = monthZhiIndex - 2; if (m < 0) { - m += 10; + m += 12; } var index = this.getJiaZiIndex(dayGanZhi).toString(16).toUpperCase(); if (index.length < 2) { @@ -5248,7 +5248,7 @@ var l = []; var m = monthZhiIndex - 2; if (m < 0) { - m += 10; + m += 12; } var index = this.getJiaZiIndex(dayGanZhi).toString(16).toUpperCase(); if (index.length < 2) { diff --git a/package.json b/package.json index 2c819e6..f3bd562 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "lunar-javascript", - "version": "1.7.5", + "version": "1.7.6", "description": "lunar是一款无第三方依赖的公历(阳历)、农历(阴历、老黄历)、佛历和道历工具,支持星座、儒略日、干支、生肖、节气、节日、彭祖百忌、每日宜忌、吉神宜趋、凶煞宜忌、吉神(喜神/福神/财神/阳贵神/阴贵神)方位、胎神方位、冲煞、纳音、星宿、八字、五行、十神、建除十二值星、青龙名堂等十二神、黄道日及吉凶等。lunar is a calendar library for Solar and Chinese Lunar.", "main": "index.js", "scripts": {