1
0
mirror of synced 2026-04-15 21:08:40 +08:00

Compare commits

...

4 Commits

7 changed files with 225 additions and 284 deletions

5
CHANGELOG.md Normal file
View File

@@ -0,0 +1,5 @@
# Changelog
## [1.6.10] - 2024-02-06
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', () => {
@@ -189,3 +189,55 @@ test('流月', () => {
const yun = eightChar.getYun(1); const yun = eightChar.getYun(1);
expect(yun.getDaYun()[0].getLiuNian()[0].getLiuYue()[0].getGanZhi()).toBe('甲寅'); expect(yun.getDaYun()[0].getLiuNian()[0].getLiuYue()[0].getGanZhi()).toBe('甲寅');
}); });
test('test19', () => {
const solarList = Solar.fromBaZi('丁丑','癸卯','癸丑','辛酉', 2, 1900);
const timeList = [];
solarList.forEach(solar => {
timeList.push(solar.toYmdHms());
})
expect(timeList).toStrictEqual(['1937-03-27 18:00:00', '1997-03-12 18:00:00']);
});
test('test20', () => {
const lunar = Solar.fromYmdHms(2024, 1, 29, 9, 30, 0).getLunar();
const eightChar = lunar.getEightChar();
expect(eightChar.getMingGong()).toBe('癸亥');
expect(eightChar.getShenGong()).toBe('己未');
});
test('test21', () => {
expect(Solar.fromYmdHms(1990, 1, 27, 0, 0, 0).getLunar().getEightChar().getShenGong()).toBe('丙寅');
});
test('test23', () => {
expect(Solar.fromYmdHms(2019, 3, 7, 8, 0, 0).getLunar().getEightChar().getMingGong()).toBe('甲戌');
});
test('test24', () => {
expect(Solar.fromYmdHms(2019, 3, 27, 2, 0, 0).getLunar().getEightChar().getMingGong()).toBe('丁丑');
});
test('test25', () => {
expect(Lunar.fromYmdHms(1994, 5, 20, 18, 0 ,0).getEightChar().getMingGong()).toBe('丙寅');
});
test('test26', () => {
const lunar = Solar.fromYmdHms(1986, 2, 16, 8, 0, 0).getLunar();
const eightChar = lunar.getEightChar();
expect(eightChar.getMingGong()).toBe('己亥');
expect(eightChar.getShenGong()).toBe('乙未');
});
test('test27', () => {
const lunar = Solar.fromYmdHms(1972, 11, 27, 10, 0, 0).getLunar();
const eightChar = lunar.getEightChar();
expect(eightChar.getShenGong()).toBe('乙巳');
});

View File

@@ -655,3 +655,11 @@ test('test071', () => {
const solar = Solar.fromYmd(918, 1, 1); const solar = Solar.fromYmd(918, 1, 1);
expect(solar.getLunar().toString()).toBe('九一七年冬月十六'); expect(solar.getLunar().toString()).toBe('九一七年冬月十六');
}); });
test('test072', () => {
const solar = Solar.fromYmd(1991, 2, 15);
const lunar = solar.getLunar();
expect(lunar.toString()).toBe('一九九一年正月初一');
expect(lunar.getYearInGanZhi()).toBe('辛未');
expect(lunar.getYearShengXiao()).toBe('羊');
});

View File

@@ -63,7 +63,7 @@ test('16', () => {
solarList.forEach(solar => { solarList.forEach(solar => {
timeList.push(solar.toYmdHms()); timeList.push(solar.toYmdHms());
}) })
expect(timeList).toStrictEqual(['1976-09-21 12:00:00', '1916-10-06 12:00:00']); expect(timeList).toStrictEqual(['1916-10-06 12:00:00', '1976-09-21 12:00:00']);
}); });
test('17', () => { test('17', () => {
@@ -72,7 +72,7 @@ test('17', () => {
solarList.forEach(solar => { solarList.forEach(solar => {
timeList.push(solar.toYmdHms()); timeList.push(solar.toYmdHms());
}) })
expect(timeList).toStrictEqual(['1999-07-21 16:00:00', '1939-08-05 16:00:00']); expect(timeList).toStrictEqual(['1939-08-05 16:00:00', '1999-07-21 16:00:00']);
}); });
test('18', () => { test('18', () => {
@@ -81,7 +81,7 @@ test('18', () => {
solarList.forEach(solar => { solarList.forEach(solar => {
timeList.push(solar.toYmdHms()); timeList.push(solar.toYmdHms());
}) })
expect(timeList).toStrictEqual(['1960-12-17 12:00:00', '1901-01-01 12:00:00']); expect(timeList).toStrictEqual(['1901-01-01 12:00:00', '1960-12-17 12:00:00']);
}); });
test('19', () => { test('19', () => {
@@ -90,7 +90,7 @@ test('19', () => {
solarList.forEach(solar => { solarList.forEach(solar => {
timeList.push(solar.toYmdHms()); timeList.push(solar.toYmdHms());
}) })
expect(timeList).toStrictEqual(['2020-07-21 22:00:00', '1960-08-05 22:00:00']); expect(timeList).toStrictEqual(['1960-08-05 22:00:00', '2020-07-21 22:00:00']);
}); });
test('20', () => { test('20', () => {
@@ -109,12 +109,12 @@ test('22', () => {
}); });
test('23', () => { test('23', () => {
const solarList = Solar.fromBaZi('癸卯', '甲寅', '癸丑', '甲子', 2, 1843); const solarList = Solar.fromBaZi('癸卯', '甲寅', '甲寅', '甲子', 2, 1843);
const timeList = []; const timeList = [];
solarList.forEach(solar => { solarList.forEach(solar => {
timeList.push(solar.toYmdHms()); timeList.push(solar.toYmdHms());
}) })
expect(timeList).toStrictEqual(['2023-02-24 23:00:00', '1843-02-08 23:00:00']); expect(timeList).toStrictEqual(['1843-02-09 00:00:00', '2023-02-25 00:00:00']);
}); });
test('24', () => { test('24', () => {
@@ -123,7 +123,7 @@ test('24', () => {
solarList.forEach(solar => { solarList.forEach(solar => {
timeList.push(solar.toYmdHms()); timeList.push(solar.toYmdHms());
}) })
expect(timeList).toStrictEqual(['1960-01-15 16:00:00', '1900-01-29 16:00:00']); expect(timeList).toStrictEqual(['1900-01-29 16:00:00', '1960-01-15 16:00:00']);
}); });
test('25', () => { test('25', () => {

View File

@@ -65,3 +65,13 @@ test('test9', () => {
test('test10', () => { test('test10', () => {
expect(Solar.fromYmd(9865, 7, 26).getWeek()).toBe(3); expect(Solar.fromYmd(9865, 7, 26).getWeek()).toBe(3);
}); });
test('test11', () => {
expect(Solar.fromYmd(1961, 9, 30).getWeek()).toBe(6);
expect(Solar.fromYmdHms(1961, 9, 30, 23, 59, 59).getWeek()).toBe(6);
});
test('test12', () => {
expect(Solar.fromYmdHms(2021, 9, 15, 0, 0, 0).getWeek()).toBe(3);
expect(Solar.fromYmdHms(2021, 9, 15, 23, 59, 59).getWeek()).toBe(3);
});

416
lunar.js

File diff suppressed because one or more lines are too long

View File

@@ -1,6 +1,6 @@
{ {
"name": "lunar-javascript", "name": "lunar-javascript",
"version": "1.6.6", "version": "1.6.10",
"description": "lunar is a calendar library for Solar and Chinese Lunar.", "description": "lunar is a calendar library for Solar and Chinese Lunar.",
"main": "index.js", "main": "index.js",
"scripts": { "scripts": {