1
0
mirror of synced 2026-04-16 05:18:43 +08:00

Compare commits

..

8 Commits

8 changed files with 259 additions and 149 deletions

View File

@@ -12,3 +12,32 @@
## [1.6.12] - 2024-03-17
1. 修复八字转阳历存在遗漏的问题。
## [1.6.13] - 2024-11-12
1. 新增2025年法定假日数据。
## [1.7.0] - 2025-02-12
1. 修复每日宜忌错别字。
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. 修复极端情况下八字转公历时刻出现遗漏的问题。
## [1.7.5] - 2025-10-01
1. 修复:候的错别字。
2. 优化更新△T参数。
3. 优化:吉神宜驱、凶神宜忌。
## [1.7.6] - 2025-10-21
1. 修复:吉神宜驱、凶神宜忌的错误。
2. 修复:农历闰月及后续月份的干支错误。

View File

@@ -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', () => {
@@ -249,3 +249,12 @@ test('test28', () => {
})
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

@@ -51,3 +51,12 @@ test('testRemove', () => {
holiday = HolidayUtil.getHoliday('2010-01-01');
expect(holiday).toBe(null);
});
test('test2025', () => {
let names = HolidayUtil.NAMES;
names[0] = '元旦节';
HolidayUtil.fix(names, '');
const holiday = HolidayUtil.getHoliday(2025, 1, 1);
expect(holiday.getName()).toBe('元旦节');
});

View File

@@ -93,7 +93,7 @@ test('test7', () => {
test('test8', () => {
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:41:54');
});
test('test9', () => {
@@ -106,7 +106,7 @@ test('test9', () => {
test('test10', () => {
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:12');
});
test('test11', () => {

View File

@@ -663,3 +663,22 @@ test('test072', () => {
expect(lunar.getYearInGanZhi()).toBe('辛未');
expect(lunar.getYearShengXiao()).toBe('羊');
});
test('test073', () => {
const solar = Lunar.fromYmd(2024, 10, 10).getSolar();
expect(solar.toString()).toBe('2024-11-10');
});
test('test100', () => {
const lunar = Solar.fromYmd(2025, 9, 16).getLunar();
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('月破,大耗,灾煞,天火,厌对,招摇,五虚,血忌');
});

View File

@@ -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', () => {

328
lunar.js

File diff suppressed because one or more lines are too long

View File

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