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

Compare commits

...

9 Commits

10 changed files with 3778 additions and 491 deletions

View File

@@ -181,3 +181,20 @@ test('test11', () => {
test('test12', () => {
expect(Solar.fromYmdHms('1999', '06', '07', '09', '11', '00').getLunar().getEightChar().toString()).toBe('己卯 庚午 庚寅 辛巳');
});
test('流月', () => {
const solar = Solar.fromYmdHms(2023, 5, 3, 9, 0, 0);
const lunar = solar.getLunar();
const eightChar = lunar.getEightChar();
const yun = eightChar.getYun(1);
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(['1997-03-12 18:00:00', '1937-03-27 18:00:00']);
});

12
__tests__/I18n.test.js Normal file
View File

@@ -0,0 +1,12 @@
const {Lunar, I18n} = require('../lunar');
test('test1', () => {
const lunar = Lunar.fromYmd(2023,1,1);
console.log(lunar.toFullString());
I18n.setLanguage('en');
console.log(lunar.toFullString());
I18n.setLanguage('chs');
});

View File

@@ -88,12 +88,12 @@ test('test6', () => {
test('test7', () => {
const lunar = Lunar.fromYmd(2012, 9, 1);
expect(lunar.getJieQiTable()['白露'].toYmdHms()).toBe('2012-09-07 13:29:00');
expect(lunar.getJieQiTable()['白露'].toYmdHms()).toBe('2012-09-07 13:29:01');
});
test('test8', () => {
const lunar = Lunar.fromYmd(2050, 12, 1);
expect(lunar.getJieQiTable()['DA_XUE'].toYmdHms()).toBe('2050-12-07 06:41:00');
expect(lunar.getJieQiTable()['DA_XUE'].toYmdHms()).toBe('2050-12-07 06:41:13');
});
test('test9', () => {
@@ -103,3 +103,8 @@ test('test9', () => {
expect(lunar.getJie()).toBe('');
expect(lunar.getQi()).toBe('冬至');
});
test('test10', () => {
const lunar = Lunar.fromYmd(2023, 6, 1);
expect(lunar.getJieQiTable()['冬至'].toYmdHms()).toBe('2022-12-22 05:48:11');
});

View File

@@ -558,7 +558,7 @@ test('test051', () => {
test('test052', () => {
const lunar = Solar.fromYmd(2011, 11, 12).getLunar();
expect(lunar.getDayPositionTai()).toBe('厕灶厨 外西南');
expect(lunar.getDayPositionTai()).toBe('厨灶厕 外西南');
});
test('test053', () => {
@@ -640,3 +640,26 @@ test('test068', () => {
const lunar = Lunar.fromYmd(345, 1, 1);
expect(lunar.getSolar().toString()).toBe('0345-02-18');
});
test('test069', () => {
const solar = Solar.fromYmd(917, 12, 1);
expect(solar.getLunar().toString()).toBe('九一七年闰十月十四');
});
test('test070', () => {
const solar = Solar.fromYmd(917, 12, 31);
expect(solar.getLunar().toString()).toBe('九一七年冬月十五');
});
test('test071', () => {
const solar = Solar.fromYmd(918, 1, 1);
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

@@ -88,11 +88,6 @@ test('test17', () => {
expect(year.getYun()).toBe('八运');
});
test('test18', () => {
const year = LunarYear.fromYear(2022);
expect(year.getJieQiJulianDays()).toStrictEqual([2459555.7478605337, 2459570.499405936, 2459585.217980813, 2459599.9437018055, 2459614.7018054826, 2459629.5297495862, 2459644.446920318, 2459659.4814200983, 2459674.6389274267, 2459689.9334118855, 2459705.3512322665, 2459720.890569021, 2459736.517794922, 2459752.2178259823, 2459767.9429320656, 2459783.6713957503, 2459799.3534378354, 2459814.969435438, 2459830.480632029, 2459845.8774438635, 2459861.140466851, 2459876.2746654437, 2459891.281458942, 2459906.1807667296, 2459920.9903281447, 2459935.741672728, 2459950.461561025, 2459965.187040542, 2459979.9460747372, 2459994.7736723446, 2460009.6916930582]);
});
test('test19', () => {
const year = LunarYear.fromYear(2021);
expect(year.getDayCount()).toBe(354);

View File

@@ -29,7 +29,7 @@ test('9', () => {
});
test('10', () => {
expect(SolarUtil.isLeapYear(1500)).toBe(false);
expect(SolarUtil.isLeapYear(1500)).toBe(true);
});
test('11', () => {
@@ -134,3 +134,18 @@ test('25', () => {
})
expect(timeList).toStrictEqual(['1959-12-17 16:00:00']);
});
test('26', () => {
const solar = Solar.fromYmd(2023, 8, 31);
expect(solar.nextMonth(2).toYmd()).toBe('2023-10-31');
});
test('27', () => {
const solar = Solar.fromYmd(2023, 8, 31);
expect(solar.nextYear(2).toYmd()).toBe('2025-08-31');
});
test('28', () => {
const solar = Solar.fromYmd(2023, 8, 31);
expect(solar.nextMonth(6).toYmd()).toBe('2024-02-29');
});

View File

@@ -1,4 +1,4 @@
var {SolarWeek,SolarUtil} = require('../lunar');
var {SolarWeek,SolarUtil,Solar} = require('../lunar');
test('testFromMonday', () => {
const start = 1;
@@ -37,3 +37,41 @@ test('test3', () => {
const week = SolarWeek.fromYmd(2022, 3, 6, start);
expect(week.getIndexInYear()).toBe(11);
});
test('test4', () => {
expect(Solar.fromYmd(1129, 11, 17).getWeek()).toBe(0);
});
test('test5', () => {
expect(Solar.fromYmd(1129, 11, 1).getWeek()).toBe(5);
});
test('test6', () => {
expect(Solar.fromYmd(8, 11, 1).getWeek()).toBe(4);
});
test('test7', () => {
expect(Solar.fromYmd(1582, 9, 30).getWeek()).toBe(0);
});
test('test8', () => {
expect(Solar.fromYmd(1582, 1, 1).getWeek()).toBe(1);
});
test('test9', () => {
expect(Solar.fromYmd(1500, 2, 29).getWeek()).toBe(6);
});
test('test10', () => {
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);
});

View File

@@ -1,4 +1,4 @@
const {Solar, Lunar, Foto, Tao, NineStar, EightChar, SolarWeek, SolarMonth, SolarSeason, SolarHalfYear, SolarYear, LunarMonth, LunarYear, LunarTime, ShouXingUtil, SolarUtil, LunarUtil, FotoUtil, TaoUtil, HolidayUtil} = require('./lunar.js')
const {Solar, Lunar, Foto, Tao, NineStar, EightChar, SolarWeek, SolarMonth, SolarSeason, SolarHalfYear, SolarYear, LunarMonth, LunarYear, LunarTime, ShouXingUtil, SolarUtil, LunarUtil, FotoUtil, TaoUtil, HolidayUtil, NineStarUtil, I18n} = require('./lunar.js')
module.exports = {
Solar: Solar,
@@ -20,5 +20,7 @@ module.exports = {
LunarUtil: LunarUtil,
FotoUtil: FotoUtil,
TaoUtil: TaoUtil,
HolidayUtil: HolidayUtil
HolidayUtil: HolidayUtil,
NineStarUtil: NineStarUtil,
I18n: I18n
}

4136
lunar.js

File diff suppressed because one or more lines are too long

View File

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