1
0
mirror of synced 2026-04-17 13:58:41 +08:00

Compare commits

...

4 Commits

5 changed files with 37 additions and 10 deletions

View File

@@ -19,3 +19,16 @@
## [1.7.0] - 2025-02-12 ## [1.7.0] - 2025-02-12
1. 修复每日宜忌错别字。 1. 修复每日宜忌错别字。
2. 去除每日宜忌的重复项。 2. 去除每日宜忌的重复项。
## [1.7.1] - 2025-03-05
1. 调整每日宜忌的默认流派。
2. 更新2018之后的△T参数。
## [1.7.2] - 2025-04-07
1. 修复八字身宫计算错误的问题。
## [1.7.3] - 2025-04-29
1. 修复身宫报错的问题。
## [1.7.4] - 2025-09-07
1. 修复极端情况下八字转公历时刻出现遗漏的问题。

View File

@@ -152,7 +152,7 @@ test('身宫1', () => {
const solar = Solar.fromYmdHms(1994, 12, 6, 2, 0, 0); const solar = Solar.fromYmdHms(1994, 12, 6, 2, 0, 0);
const lunar = solar.getLunar(); const lunar = solar.getLunar();
const eightChar = lunar.getEightChar(); const eightChar = lunar.getEightChar();
expect(eightChar.getShenGong()).toBe('丑'); expect(eightChar.getShenGong()).toBe('丑');
}); });
test('身宫2', () => { test('身宫2', () => {
@@ -249,3 +249,12 @@ test('test28', () => {
}) })
expect(timeList).toStrictEqual(['1987-08-03 02:00:00']); expect(timeList).toStrictEqual(['1987-08-03 02:00:00']);
}); });
test('test29', () => {
const solarList = Solar.fromBaZi('壬申','壬寅','庚辰','甲申', 1, 1801);
const timeList = [];
solarList.forEach(solar => {
timeList.push(solar.toYmdHms());
})
expect(timeList).toStrictEqual(['1812-02-18 16:00:00', '1992-03-05 15:00:00']);
});

View File

@@ -93,7 +93,7 @@ test('test7', () => {
test('test8', () => { test('test8', () => {
const lunar = Lunar.fromYmd(2050, 12, 1); const lunar = Lunar.fromYmd(2050, 12, 1);
expect(lunar.getJieQiTable()['DA_XUE'].toYmdHms()).toBe('2050-12-07 06:41:13'); expect(lunar.getJieQiTable()['DA_XUE'].toYmdHms()).toBe('2050-12-07 06:40:53');
}); });
test('test9', () => { test('test9', () => {
@@ -106,7 +106,7 @@ test('test9', () => {
test('test10', () => { test('test10', () => {
const lunar = Lunar.fromYmd(2023, 6, 1); const lunar = Lunar.fromYmd(2023, 6, 1);
expect(lunar.getJieQiTable()['冬至'].toYmdHms()).toBe('2022-12-22 05:48:11'); expect(lunar.getJieQiTable()['冬至'].toYmdHms()).toBe('2022-12-22 05:48:01');
}); });
test('test11', () => { test('test11', () => {

View File

@@ -603,6 +603,9 @@
} }
// 验证一下 // 验证一下
var solar = Solar.fromYmdHms(solarTime.getYear(), solarTime.getMonth(), solarTime.getDay(), hour, mi, s); var solar = Solar.fromYmdHms(solarTime.getYear(), solarTime.getMonth(), solarTime.getDay(), hour, mi, s);
if (d === 30) {
solar = solar.nextHour(-1);
}
var lunar = solar.getLunar(); var lunar = solar.getLunar();
var dgz = (2 === sect) ? lunar.getDayInGanZhiExact2() : lunar.getDayInGanZhiExact(); var dgz = (2 === sect) ? lunar.getDayInGanZhiExact2() : lunar.getDayInGanZhiExact();
if (lunar.getYearInGanZhiExact() === yearGanZhi && lunar.getMonthInGanZhiExact() === monthGanZhi && dgz === dayGanZhi && lunar.getTimeInGanZhi() === timeGanZhi) { if (lunar.getYearInGanZhiExact() === yearGanZhi && lunar.getMonthInGanZhiExact() === monthGanZhi && dgz === dayGanZhi && lunar.getTimeInGanZhi() === timeGanZhi) {
@@ -1455,14 +1458,14 @@
getDayYi:function(sect){ getDayYi:function(sect){
sect *= 1; sect *= 1;
if(isNaN(sect)){ if(isNaN(sect)){
sect = 2; sect = 1;
} }
return LunarUtil.getDayYi(2 === sect ? this.getMonthInGanZhiExact() : this.getMonthInGanZhi(), this.getDayInGanZhi()); return LunarUtil.getDayYi(2 === sect ? this.getMonthInGanZhiExact() : this.getMonthInGanZhi(), this.getDayInGanZhi());
}, },
getDayJi:function(sect){ getDayJi:function(sect){
sect *= 1; sect *= 1;
if(isNaN(sect)){ if(isNaN(sect)){
sect = 2; sect = 1;
} }
return LunarUtil.getDayJi(2 === sect ? this.getMonthInGanZhiExact() : this.getMonthInGanZhi(), this.getDayInGanZhi()); return LunarUtil.getDayJi(2 === sect ? this.getMonthInGanZhiExact() : this.getMonthInGanZhi(), this.getDayInGanZhi());
}, },
@@ -3039,8 +3042,10 @@
2000, 63.87, 0.1, 0, 0, 2000, 63.87, 0.1, 0, 0,
2005, 64.7, 0.21, 0, 0, 2005, 64.7, 0.21, 0, 0,
2012, 66.8, 0.22, 0, 0, 2012, 66.8, 0.22, 0, 0,
2018, 69.0, 0.36, 0, 0, 2018, 73.6, 0.40, 0, 0,
2028, 72.6 2021, 78.1, 0.44, 0, 0,
2024, 83.1, 0.55, 0, 0,
2028, 98.6
], ],
XL0:[ XL0:[
10000000000, 10000000000,
@@ -5726,10 +5731,10 @@
var monthZhiIndex = LunarUtil.index(this.getMonthZhi(), LunarUtil.MONTH_ZHI, 0); var monthZhiIndex = LunarUtil.index(this.getMonthZhi(), LunarUtil.MONTH_ZHI, 0);
var timeZhiIndex = LunarUtil.index(this.getTimeZhi(), LunarUtil.ZHI, 0); var timeZhiIndex = LunarUtil.index(this.getTimeZhi(), LunarUtil.ZHI, 0);
var offset = monthZhiIndex + timeZhiIndex; var offset = monthZhiIndex + timeZhiIndex;
while (offset > 12) { if (offset > 12) {
offset -= 12; offset -= 12;
} }
var ganIndex = (this._p.lunar.getYearGanIndexExact() + 1) * 2 + (offset % 12); var ganIndex = (this._p.lunar.getYearGanIndexExact() + 1) * 2 + offset;
while (ganIndex > 10) { while (ganIndex > 10) {
ganIndex -= 10; ganIndex -= 10;
} }

View File

@@ -1,6 +1,6 @@
{ {
"name": "lunar-javascript", "name": "lunar-javascript",
"version": "1.7.0", "version": "1.7.4",
"description": "lunar是一款无第三方依赖的公历(阳历)、农历(阴历、老黄历)、佛历和道历工具,支持星座、儒略日、干支、生肖、节气、节日、彭祖百忌、每日宜忌、吉神宜趋、凶煞宜忌、吉神(喜神/福神/财神/阳贵神/阴贵神)方位、胎神方位、冲煞、纳音、星宿、八字、五行、十神、建除十二值星、青龙名堂等十二神、黄道日及吉凶等。lunar is a calendar library for Solar and Chinese Lunar.", "description": "lunar是一款无第三方依赖的公历(阳历)、农历(阴历、老黄历)、佛历和道历工具,支持星座、儒略日、干支、生肖、节气、节日、彭祖百忌、每日宜忌、吉神宜趋、凶煞宜忌、吉神(喜神/福神/财神/阳贵神/阴贵神)方位、胎神方位、冲煞、纳音、星宿、八字、五行、十神、建除十二值星、青龙名堂等十二神、黄道日及吉凶等。lunar is a calendar library for Solar and Chinese Lunar.",
"main": "index.js", "main": "index.js",
"scripts": { "scripts": {