Compare commits
34 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0863bb6371 | ||
|
|
5b0ed30657 | ||
|
|
e9e23ee38f | ||
|
|
0dddcf841f | ||
|
|
7a71e07ade | ||
|
|
853cb2f3a9 | ||
|
|
13c251080b | ||
|
|
1f708a8d6f | ||
|
|
b926be0022 | ||
|
|
f4e6fa3c9a | ||
|
|
1fd780f3c4 | ||
|
|
ac57a9bae0 | ||
|
|
3f2f9d702c | ||
|
|
c0bd1d5565 | ||
|
|
263f280395 | ||
|
|
5d18af8619 | ||
|
|
a41d2c6c2a | ||
|
|
234da67b0d | ||
|
|
c024e203a8 | ||
|
|
cde04a1993 | ||
|
|
69f0101c15 | ||
|
|
66d16db39e | ||
|
|
98fb502c02 | ||
|
|
44a2b408cf | ||
|
|
26557902f6 | ||
|
|
1e7f33e048 | ||
|
|
988d3f60a7 | ||
|
|
9bfb4ea312 | ||
|
|
004899148d | ||
|
|
c142ad7f6c | ||
|
|
8d131aa31a | ||
|
|
34469699a5 | ||
|
|
ca64cf0a73 | ||
|
|
1f2c867028 |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -2,3 +2,4 @@
|
||||
*.iml
|
||||
node_modules/
|
||||
package-lock.json
|
||||
.DS_Store
|
||||
|
||||
@@ -59,4 +59,4 @@ lunar是一款无第三方依赖的公历(阳历)、农历(阴历、老黄历)
|
||||
|
||||
## 文档
|
||||
|
||||
请移步至 [http://6tail.cn/calendar/api.html](http://6tail.cn/calendar/api.html "http://6tail.cn/calendar/api.html")
|
||||
请移步至 [https://6tail.cn/calendar/api.html](https://6tail.cn/calendar/api.html "https://6tail.cn/calendar/api.html")
|
||||
|
||||
@@ -59,4 +59,4 @@ Output:
|
||||
|
||||
## Documentation
|
||||
|
||||
Please visit [http://6tail.cn/calendar/api.html](http://6tail.cn/calendar/api.html "http://6tail.cn/calendar/api.html")
|
||||
Please visit [https://6tail.cn/calendar/api.html](https://6tail.cn/calendar/api.html "https://6tail.cn/calendar/api.html")
|
||||
|
||||
@@ -147,3 +147,45 @@ test('身宫', () => {
|
||||
const eightChar = lunar.getEightChar();
|
||||
expect(eightChar.getShenGong()).toBe('壬午');
|
||||
});
|
||||
|
||||
test('身宫1', () => {
|
||||
const solar = Solar.fromYmdHms(1994, 12, 6, 2, 0, 0);
|
||||
const lunar = solar.getLunar();
|
||||
const eightChar = lunar.getEightChar();
|
||||
expect(eightChar.getShenGong()).toBe('丁丑');
|
||||
});
|
||||
|
||||
test('身宫2', () => {
|
||||
const solar = Solar.fromYmdHms(1990, 12, 11, 6, 0, 0);
|
||||
const lunar = solar.getLunar();
|
||||
const eightChar = lunar.getEightChar();
|
||||
expect(eightChar.getShenGong()).toBe('庚辰');
|
||||
});
|
||||
|
||||
test('身宫3', () => {
|
||||
const solar = Solar.fromYmdHms(1993, 5, 23, 4, 0, 0);
|
||||
const lunar = solar.getLunar();
|
||||
const eightChar = lunar.getEightChar();
|
||||
expect(eightChar.getShenGong()).toBe('庚申');
|
||||
});
|
||||
|
||||
test('test11', () => {
|
||||
const lunar = Lunar.fromYmdHms(1987, 12, 28, 23, 30, 0);
|
||||
const eightChar = lunar.getEightChar();
|
||||
expect(eightChar.getYear()).toBe('戊辰');
|
||||
expect(eightChar.getMonth()).toBe('甲寅');
|
||||
expect(eightChar.getDay()).toBe('庚子');
|
||||
expect(eightChar.getTime()).toBe('戊子');
|
||||
});
|
||||
|
||||
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('甲寅');
|
||||
});
|
||||
|
||||
@@ -13,3 +13,8 @@ test('test2()', () => {
|
||||
expect(foto.getGong()).toBe('东');
|
||||
expect(foto.getShou()).toBe('青龙');
|
||||
});
|
||||
|
||||
test('test3()', () => {
|
||||
const foto = Foto.fromLunar(Lunar.fromYmd(2021, 3, 16));
|
||||
expect(foto.getOtherFestivals()).toStrictEqual(['准提菩萨圣诞']);
|
||||
});
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
var {HolidayUtil} = require('../lunar');
|
||||
const {HolidayUtil} = require('../lunar');
|
||||
|
||||
test('test1', () => {
|
||||
expect(HolidayUtil.getHoliday('2020-01-01') + '').toBe('2020-01-01 元旦节 2020-01-01');
|
||||
@@ -42,3 +42,12 @@ test('test1', () => {
|
||||
test('test2', () => {
|
||||
expect(HolidayUtil.getHoliday('2016-10-04').getTarget()).toBe('2016-10-01');
|
||||
});
|
||||
|
||||
test('testRemove', () => {
|
||||
let holiday = HolidayUtil.getHoliday('2010-01-01');
|
||||
expect(holiday.getName()).toBe('元旦');
|
||||
|
||||
HolidayUtil.fix('20100101~000000000000000000000000000');
|
||||
holiday = HolidayUtil.getHoliday('2010-01-01');
|
||||
expect(holiday).toBe(null);
|
||||
});
|
||||
|
||||
12
__tests__/I18n.test.js
Normal file
12
__tests__/I18n.test.js
Normal 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');
|
||||
});
|
||||
|
||||
@@ -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()['大雪'].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');
|
||||
});
|
||||
|
||||
@@ -413,16 +413,6 @@ test('test022', () => {
|
||||
expect(lunar.getSolar().toString()).toBe('2033-12-22');
|
||||
});
|
||||
|
||||
test('test023', () => {
|
||||
const lunar = Lunar.fromYmd(2022, 1, 1);
|
||||
expect(lunar.getYearNineStar().toString()).toBe('五黄土玉衡');
|
||||
});
|
||||
|
||||
test('test024', () => {
|
||||
const lunar = Lunar.fromYmd(2033, 1, 1);
|
||||
expect(lunar.getYearNineStar().toString()).toBe('三碧木天玑');
|
||||
});
|
||||
|
||||
test('test025', () => {
|
||||
const solar = Solar.fromYmdHms(2021, 6, 7, 21, 18, 0);
|
||||
expect(solar.getLunar().toString()).toBe('二〇二一年四月廿七');
|
||||
@@ -570,3 +560,98 @@ test('test052', () => {
|
||||
const lunar = Solar.fromYmd(2011, 11, 12).getLunar();
|
||||
expect(lunar.getDayPositionTai()).toBe('厕灶厨 外西南');
|
||||
});
|
||||
|
||||
test('test053', () => {
|
||||
const lunar = Solar.fromYmd(1722, 9, 25).getLunar();
|
||||
expect(lunar.getOtherFestivals() + '').toBe('秋社');
|
||||
});
|
||||
|
||||
test('test054', () => {
|
||||
const lunar = Solar.fromYmd(840, 9, 14).getLunar();
|
||||
expect(lunar.getOtherFestivals() + '').toBe('秋社');
|
||||
});
|
||||
|
||||
test('test055', () => {
|
||||
const lunar = Solar.fromYmd(2022, 3, 16).getLunar();
|
||||
expect(lunar.getOtherFestivals() + '').toBe('春社');
|
||||
});
|
||||
|
||||
test('test056', () => {
|
||||
const lunar = Solar.fromYmd(2021, 3, 21).getLunar();
|
||||
expect(lunar.getOtherFestivals() + '').toBe('春社');
|
||||
});
|
||||
|
||||
test('test057', () => {
|
||||
const lunar = Lunar.fromYmd(1582, 9, 18);
|
||||
expect(lunar.getSolar().toString()).toBe('1582-10-04');
|
||||
});
|
||||
|
||||
test('test058', () => {
|
||||
const lunar = Lunar.fromYmd(1582, 9, 19);
|
||||
expect(lunar.getSolar().toString()).toBe('1582-10-15');
|
||||
});
|
||||
|
||||
test('test059', () => {
|
||||
const lunar = Lunar.fromYmd(1518, 1, 1);
|
||||
expect(lunar.getSolar().toString()).toBe('1518-02-10');
|
||||
});
|
||||
|
||||
test('test060', () => {
|
||||
const lunar = Lunar.fromYmd(793, 1, 1);
|
||||
expect(lunar.getSolar().toString()).toBe('0793-02-15');
|
||||
});
|
||||
|
||||
test('test061', () => {
|
||||
const lunar = Lunar.fromYmd(2025, -6, 1);
|
||||
expect(lunar.getSolar().toString()).toBe('2025-07-25');
|
||||
});
|
||||
|
||||
test('test062', () => {
|
||||
const lunar = Lunar.fromYmd(2025, 6, 1);
|
||||
expect(lunar.getSolar().toString()).toBe('2025-06-25');
|
||||
});
|
||||
|
||||
test('test063', () => {
|
||||
const lunar = Lunar.fromYmd(193, 1, 1);
|
||||
expect(lunar.getSolar().toString()).toBe('0193-02-19');
|
||||
});
|
||||
|
||||
test('test064', () => {
|
||||
const lunar = Lunar.fromYmd(288, 1, 1);
|
||||
expect(lunar.getSolar().toString()).toBe('0288-02-19');
|
||||
});
|
||||
|
||||
test('test065', () => {
|
||||
const lunar = Lunar.fromYmd(755, 1, 1);
|
||||
expect(lunar.getSolar().toString()).toBe('0755-02-16');
|
||||
});
|
||||
|
||||
test('test066', () => {
|
||||
const lunar = Lunar.fromYmd(41, 1, 1);
|
||||
expect(lunar.getSolar().toString()).toBe('0041-02-20');
|
||||
});
|
||||
|
||||
test('test067', () => {
|
||||
const lunar = Lunar.fromYmd(57, 1, 1);
|
||||
expect(lunar.getSolar().toString()).toBe('0057-02-23');
|
||||
});
|
||||
|
||||
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('九一七年冬月十六');
|
||||
});
|
||||
|
||||
37
__tests__/LunarMonth.test.js
Normal file
37
__tests__/LunarMonth.test.js
Normal file
@@ -0,0 +1,37 @@
|
||||
var {LunarMonth} = require('../lunar');
|
||||
|
||||
test('test1', () => {
|
||||
const month = LunarMonth.fromYm(2023, 1);
|
||||
expect(month.getIndex()).toBe(1);
|
||||
expect(month.getGanZhi()).toBe('甲寅');
|
||||
});
|
||||
|
||||
test('test2', () => {
|
||||
const month = LunarMonth.fromYm(2023, -2);
|
||||
expect(month.getIndex()).toBe(3);
|
||||
expect(month.getGanZhi()).toBe('丙辰');
|
||||
});
|
||||
|
||||
test('test3', () => {
|
||||
const month = LunarMonth.fromYm(2023, 3);
|
||||
expect(month.getIndex()).toBe(4);
|
||||
expect(month.getGanZhi()).toBe('丁巳');
|
||||
});
|
||||
|
||||
test('test4', () => {
|
||||
const month = LunarMonth.fromYm(2024, 1);
|
||||
expect(month.getIndex()).toBe(1);
|
||||
expect(month.getGanZhi()).toBe('丙寅');
|
||||
});
|
||||
|
||||
test('test5', () => {
|
||||
const month = LunarMonth.fromYm(2023, 12);
|
||||
expect(month.getIndex()).toBe(13);
|
||||
expect(month.getGanZhi()).toBe('丙寅');
|
||||
});
|
||||
|
||||
test('test6', () => {
|
||||
const month = LunarMonth.fromYm(2022, 1);
|
||||
expect(month.getIndex()).toBe(1);
|
||||
expect(month.getGanZhi()).toBe('壬寅');
|
||||
});
|
||||
@@ -87,3 +87,18 @@ test('test17', () => {
|
||||
const year = LunarYear.fromYear(2004);
|
||||
expect(year.getYun()).toBe('八运');
|
||||
});
|
||||
|
||||
test('test19', () => {
|
||||
const year = LunarYear.fromYear(2021);
|
||||
expect(year.getDayCount()).toBe(354);
|
||||
});
|
||||
|
||||
test('test20', () => {
|
||||
const year = LunarYear.fromYear(2023);
|
||||
expect(year.getDayCount()).toBe(384);
|
||||
});
|
||||
|
||||
test('test21', () => {
|
||||
const year = LunarYear.fromYear(1517);
|
||||
expect(year.getDayCount()).toBe(384);
|
||||
});
|
||||
|
||||
16
__tests__/NineStar.test.js
Normal file
16
__tests__/NineStar.test.js
Normal file
@@ -0,0 +1,16 @@
|
||||
const {Solar, Lunar} = require('../lunar');
|
||||
|
||||
test('test1', () => {
|
||||
const lunar = Solar.fromYmd(1985, 2, 19).getLunar();
|
||||
expect(lunar.getYearNineStar().getNumber()).toBe('六');
|
||||
});
|
||||
|
||||
test('test023', () => {
|
||||
const lunar = Lunar.fromYmd(2022, 1, 1);
|
||||
expect(lunar.getYearNineStar().toString()).toBe('六白金开阳');
|
||||
});
|
||||
|
||||
test('test024', () => {
|
||||
const lunar = Lunar.fromYmd(2033, 1, 1);
|
||||
expect(lunar.getYearNineStar().toString()).toBe('四绿木天权');
|
||||
});
|
||||
@@ -29,5 +29,108 @@ test('9', () => {
|
||||
});
|
||||
|
||||
test('10', () => {
|
||||
expect(SolarUtil.isLeapYear(1500)).toBe(false);
|
||||
expect(SolarUtil.isLeapYear(1500)).toBe(true);
|
||||
});
|
||||
|
||||
test('11', () => {
|
||||
var solar = Solar.fromYmd(2022, 3, 28);
|
||||
expect(solar.getFestivals() + '').toBe('全国中小学生安全教育日');
|
||||
});
|
||||
|
||||
test('12', () => {
|
||||
var solar = Solar.fromYmd(2021, 3, 29);
|
||||
expect(solar.getFestivals() + '').toBe('全国中小学生安全教育日');
|
||||
});
|
||||
|
||||
test('13', () => {
|
||||
var solar = Solar.fromYmd(1996, 3, 25);
|
||||
expect(solar.getFestivals() + '').toBe('全国中小学生安全教育日');
|
||||
});
|
||||
|
||||
test('14', () => {
|
||||
const solar = Solar.fromYmd(1583, 1, 13);
|
||||
expect(solar.getLunar().toString()).toBe('一五八二年腊月二十');
|
||||
});
|
||||
|
||||
test('15', () => {
|
||||
const solar = Solar.fromYmd(1583, 1, 14);
|
||||
expect(solar.getLunar().toString()).toBe('一五八二年腊月廿一');
|
||||
});
|
||||
|
||||
test('16', () => {
|
||||
const solarList = Solar.fromBaZi('丙辰', '丁酉', '丙子', '甲午');
|
||||
const timeList = [];
|
||||
solarList.forEach(solar => {
|
||||
timeList.push(solar.toYmdHms());
|
||||
})
|
||||
expect(timeList).toStrictEqual(['1976-09-21 12:00:00', '1916-10-06 12:00:00']);
|
||||
});
|
||||
|
||||
test('17', () => {
|
||||
const solarList = Solar.fromBaZi('己卯', '辛未', '甲戌', '壬申');
|
||||
const timeList = [];
|
||||
solarList.forEach(solar => {
|
||||
timeList.push(solar.toYmdHms());
|
||||
})
|
||||
expect(timeList).toStrictEqual(['1999-07-21 16:00:00', '1939-08-05 16:00:00']);
|
||||
});
|
||||
|
||||
test('18', () => {
|
||||
const solarList = Solar.fromBaZi('庚子', '戊子', '己卯', '庚午');
|
||||
const timeList = [];
|
||||
solarList.forEach(solar => {
|
||||
timeList.push(solar.toYmdHms());
|
||||
})
|
||||
expect(timeList).toStrictEqual(['1960-12-17 12:00:00', '1901-01-01 12:00:00']);
|
||||
});
|
||||
|
||||
test('19', () => {
|
||||
const solarList = Solar.fromBaZi('庚子', '癸未', '乙丑', '丁亥');
|
||||
const timeList = [];
|
||||
solarList.forEach(solar => {
|
||||
timeList.push(solar.toYmdHms());
|
||||
})
|
||||
expect(timeList).toStrictEqual(['2020-07-21 22:00:00', '1960-08-05 22:00:00']);
|
||||
});
|
||||
|
||||
test('20', () => {
|
||||
const solar = Solar.fromYmd(1582, 10, 4);
|
||||
expect(solar.nextDay(1).toYmd()).toBe('1582-10-15');
|
||||
});
|
||||
|
||||
test('21', () => {
|
||||
const solar = Solar.fromYmd(1582, 10, 15);
|
||||
expect(solar.nextDay(-1).toYmd()).toBe('1582-10-04');
|
||||
});
|
||||
|
||||
test('22', () => {
|
||||
const solar = Solar.fromYmd(1582, 10, 15);
|
||||
expect(solar.nextDay(-5).toYmd()).toBe('1582-09-30');
|
||||
});
|
||||
|
||||
test('23', () => {
|
||||
const solarList = Solar.fromBaZi('癸卯', '甲寅', '癸丑', '甲子', 2, 1843);
|
||||
const timeList = [];
|
||||
solarList.forEach(solar => {
|
||||
timeList.push(solar.toYmdHms());
|
||||
})
|
||||
expect(timeList).toStrictEqual(['2023-02-24 23:00:00', '1843-02-08 23:00:00']);
|
||||
});
|
||||
|
||||
test('24', () => {
|
||||
const solarList = Solar.fromBaZi('己亥', '丁丑', '壬寅', '戊申');
|
||||
const timeList = [];
|
||||
solarList.forEach(solar => {
|
||||
timeList.push(solar.toYmdHms());
|
||||
})
|
||||
expect(timeList).toStrictEqual(['1960-01-15 16:00:00', '1900-01-29 16:00:00']);
|
||||
});
|
||||
|
||||
test('25', () => {
|
||||
const solarList = Solar.fromBaZi('己亥', '丙子', '癸酉', '庚申');
|
||||
const timeList = [];
|
||||
solarList.forEach(solar => {
|
||||
timeList.push(solar.toYmdHms());
|
||||
})
|
||||
expect(timeList).toStrictEqual(['1959-12-17 16:00:00']);
|
||||
});
|
||||
|
||||
@@ -1,13 +1,37 @@
|
||||
var {SolarSeason} = require('../lunar');
|
||||
var {SolarMonth} = require('../lunar');
|
||||
|
||||
test('toString()', () => {
|
||||
const season = SolarSeason.fromYm(2019, 5);
|
||||
expect(season.toString()).toBe('2019.2');
|
||||
expect(season.next(1).toString()).toBe('2019.3');
|
||||
const month = SolarMonth.fromYm(2019, 5);
|
||||
expect(month.toString()).toBe('2019-5');
|
||||
expect(month.next(1).toString()).toBe('2019-6');
|
||||
});
|
||||
|
||||
test('toFullString()', () => {
|
||||
const season = SolarSeason.fromYm(2019, 5);
|
||||
expect(season.toFullString()).toBe('2019年2季度');
|
||||
expect(season.next(1).toFullString()).toBe('2019年3季度');
|
||||
const month = SolarMonth.fromYm(2019, 5);
|
||||
expect(month.toFullString()).toBe('2019年5月');
|
||||
expect(month.next(1).toFullString()).toBe('2019年6月');
|
||||
});
|
||||
|
||||
test('test1', () => {
|
||||
const month = SolarMonth.fromYm(2022, 7);
|
||||
const weeks = month.getWeeks(0);
|
||||
const lastWeek = weeks[weeks.length - 1];
|
||||
const days = lastWeek.getDays();
|
||||
expect(days[0].toFullString()).toBe('2022-07-31 00:00:00 星期日 狮子座');
|
||||
});
|
||||
|
||||
test('test2', () => {
|
||||
const month = SolarMonth.fromYm(2022, 7);
|
||||
const weeks = month.getWeeks(0);
|
||||
const lastWeek = weeks[weeks.length - 1];
|
||||
const days = lastWeek.getDays();
|
||||
expect(days[1].toFullString()).toBe('2022-08-01 00:00:00 星期一 (建军节) 狮子座');
|
||||
});
|
||||
|
||||
test('test3', () => {
|
||||
const month = SolarMonth.fromYm(2022, 7);
|
||||
const weeks = month.getWeeks(0);
|
||||
const lastWeek = weeks[weeks.length - 1];
|
||||
const days = lastWeek.getDays();
|
||||
expect(days[6].toFullString()).toBe('2022-08-06 00:00:00 星期六 狮子座');
|
||||
});
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
var {SolarMonth} = require('../lunar');
|
||||
var {SolarSeason} = require('../lunar');
|
||||
|
||||
test('toString()', () => {
|
||||
const month = SolarMonth.fromYm(2019, 5);
|
||||
expect(month.toString()).toBe('2019-5');
|
||||
expect(month.next(1).toString()).toBe('2019-6');
|
||||
const season = SolarSeason.fromYm(2019, 5);
|
||||
expect(season.toString()).toBe('2019.2');
|
||||
expect(season.next(1).toString()).toBe('2019.3');
|
||||
});
|
||||
|
||||
test('toFullString()', () => {
|
||||
const month = SolarMonth.fromYm(2019, 5);
|
||||
expect(month.toFullString()).toBe('2019年5月');
|
||||
expect(month.next(1).toFullString()).toBe('2019年6月');
|
||||
const season = SolarSeason.fromYm(2019, 5);
|
||||
expect(season.toFullString()).toBe('2019年2季度');
|
||||
expect(season.next(1).toFullString()).toBe('2019年3季度');
|
||||
});
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
var {SolarUtil} = require('../lunar');
|
||||
var {SolarUtil, Solar} = require('../lunar');
|
||||
|
||||
test('isLeapYear()', () => {
|
||||
expect(SolarUtil.isLeapYear(2020)).toBe(true);
|
||||
@@ -9,3 +9,84 @@ test('getDaysOfMonth()', () => {
|
||||
expect(SolarUtil.getDaysOfMonth(2020, 1)).toBe(31);
|
||||
expect(SolarUtil.getDaysOfMonth(2021, 2)).toBe(28);
|
||||
});
|
||||
|
||||
test('addDays', () => {
|
||||
var solar = Solar.fromYmd(2022,1,1).next(1);
|
||||
expect(solar.getYear()).toBe(2022);
|
||||
expect(solar.getMonth()).toBe(1);
|
||||
expect(solar.getDay()).toBe(2);
|
||||
});
|
||||
|
||||
test('addDays2', () => {
|
||||
var solar = Solar.fromYmd(2022,1,31).next(1);
|
||||
expect(solar.getYear()).toBe(2022);
|
||||
expect(solar.getMonth()).toBe(2);
|
||||
expect(solar.getDay()).toBe(1);
|
||||
});
|
||||
|
||||
test('addDays3', () => {
|
||||
var solar = Solar.fromYmd(2022,1,1).next(365);
|
||||
expect(solar.getYear()).toBe(2023);
|
||||
expect(solar.getMonth()).toBe(1);
|
||||
expect(solar.getDay()).toBe(1);
|
||||
});
|
||||
|
||||
test('addDays4', () => {
|
||||
var solar = Solar.fromYmd(2023,1,1).next(-365);
|
||||
expect(solar.getYear()).toBe(2022);
|
||||
expect(solar.getMonth()).toBe(1);
|
||||
expect(solar.getDay()).toBe(1);
|
||||
});
|
||||
|
||||
test('addDays5', () => {
|
||||
var solar = Solar.fromYmd(1582,10,4).next(1);
|
||||
expect(solar.getYear()).toBe(1582);
|
||||
expect(solar.getMonth()).toBe(10);
|
||||
expect(solar.getDay()).toBe(15);
|
||||
});
|
||||
|
||||
test('addDays6', () => {
|
||||
var solar = Solar.fromYmd(1582,10,4).next(18);
|
||||
expect(solar.getYear()).toBe(1582);
|
||||
expect(solar.getMonth()).toBe(11);
|
||||
expect(solar.getDay()).toBe(1);
|
||||
});
|
||||
|
||||
test('addDays7', () => {
|
||||
var solar = Solar.fromYmd(1582,11,1).next(-18);
|
||||
expect(solar.getYear()).toBe(1582);
|
||||
expect(solar.getMonth()).toBe(10);
|
||||
expect(solar.getDay()).toBe(4);
|
||||
});
|
||||
|
||||
test('addDays8', () => {
|
||||
var solar = Solar.fromYmd(1582,11,1).next(-17);
|
||||
expect(solar.getYear()).toBe(1582);
|
||||
expect(solar.getMonth()).toBe(10);
|
||||
expect(solar.getDay()).toBe(15);
|
||||
});
|
||||
|
||||
test('getDaysBetween', () => {
|
||||
var days = SolarUtil.getDaysBetween(1582, 10, 4, 1582, 10, 15);
|
||||
expect(days).toBe(1);
|
||||
});
|
||||
|
||||
test('getDaysBetween1', () => {
|
||||
var days = SolarUtil.getDaysBetween(1582, 10, 4, 1582, 11, 1);
|
||||
expect(days).toBe(18);
|
||||
});
|
||||
|
||||
test('getDaysBetween2', () => {
|
||||
var days = SolarUtil.getDaysBetween(1582, 1, 1, 1583, 1, 1);
|
||||
expect(days).toBe(355);
|
||||
});
|
||||
|
||||
test('getWeek', () => {
|
||||
var week = Solar.fromYmd(1582, 10, 1).getWeek();
|
||||
expect(week).toBe(1);
|
||||
});
|
||||
|
||||
test('getWeek1', () => {
|
||||
var week = Solar.fromYmd(1582, 10, 15).getWeek();
|
||||
expect(week).toBe(5);
|
||||
});
|
||||
|
||||
@@ -19,3 +19,21 @@ test('testFromSunday', () => {
|
||||
expect(week.getFirstDay().toString()).toBe('2019-04-28');
|
||||
expect(week.getFirstDayInMonth().toString()).toBe('2019-05-01');
|
||||
});
|
||||
|
||||
test('test1', () => {
|
||||
const start = 0;
|
||||
const week = SolarWeek.fromYmd(2022, 5, 1, start);
|
||||
expect(week.getIndex()).toBe(1);
|
||||
});
|
||||
|
||||
test('test2', () => {
|
||||
const start = 2;
|
||||
const week = SolarWeek.fromYmd(2021, 5, 4, start);
|
||||
expect(week.getIndex()).toBe(2);
|
||||
});
|
||||
|
||||
test('test3', () => {
|
||||
const start = 0;
|
||||
const week = SolarWeek.fromYmd(2022, 3, 6, start);
|
||||
expect(week.getIndexInYear()).toBe(11);
|
||||
});
|
||||
|
||||
@@ -77,3 +77,21 @@ test('test13', () => {
|
||||
const lunar = solar.getLunar();
|
||||
expect(lunar.getHou()).toBe('小寒 初候');
|
||||
});
|
||||
|
||||
test('test14', () => {
|
||||
const solar = Solar.fromYmd(2022,5,20);
|
||||
const lunar = solar.getLunar();
|
||||
expect(lunar.getHou()).toBe('立夏 三候');
|
||||
});
|
||||
|
||||
test('test15', () => {
|
||||
const solar = Solar.fromYmd(2022, 8, 22);
|
||||
const lunar = solar.getLunar();
|
||||
expect(lunar.getWuHou()).toBe('寒蝉鸣');
|
||||
});
|
||||
|
||||
test('test16', () => {
|
||||
const solar = Solar.fromYmd(2022, 8, 23);
|
||||
const lunar = solar.getLunar();
|
||||
expect(lunar.getWuHou()).toBe('鹰乃祭鸟');
|
||||
});
|
||||
|
||||
@@ -31,3 +31,30 @@ it('test3', () => {
|
||||
expect(yun.getStartDay()).toBe(0);
|
||||
expect(yun.getStartSolar().toYmd()).toBe('2020-02-06');
|
||||
});
|
||||
|
||||
it('test4', () => {
|
||||
const solar = Solar.fromYmdHms(2022, 3, 9, 20, 51, 0);
|
||||
const lunar = solar.getLunar();
|
||||
const eightChar = lunar.getEightChar();
|
||||
const yun = eightChar.getYun(1);
|
||||
expect(yun.getStartSolar().toYmd()).toBe('2030-12-19');
|
||||
});
|
||||
|
||||
it('test5', () => {
|
||||
const solar = Solar.fromYmdHms(2022, 3, 9, 20, 51, 0);
|
||||
const lunar = solar.getLunar();
|
||||
const eightChar = lunar.getEightChar();
|
||||
const yun = eightChar.getYun(1, 2);
|
||||
expect(yun.getStartYear()).toBe(8);
|
||||
expect(yun.getStartMonth()).toBe(9);
|
||||
expect(yun.getStartDay()).toBe(2);
|
||||
expect(yun.getStartSolar().toYmd()).toBe('2030-12-12');
|
||||
});
|
||||
|
||||
it('test6', () => {
|
||||
const solar = Solar.fromYmdHms(2018, 6, 11, 9, 30, 0);
|
||||
const lunar = solar.getLunar();
|
||||
const eightChar = lunar.getEightChar();
|
||||
const yun = eightChar.getYun(0, 2);
|
||||
expect(yun.getStartSolar().toYmd()).toBe('2020-03-21');
|
||||
});
|
||||
|
||||
6
index.js
6
index.js
@@ -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
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "lunar-javascript",
|
||||
"version": "1.2.18",
|
||||
"version": "1.6.3",
|
||||
"description": "lunar is a calendar library for Solar and Chinese Lunar.",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
@@ -50,6 +50,5 @@
|
||||
"homepage": "https://github.com/6tail/lunar-javascript",
|
||||
"devDependencies": {
|
||||
"jest": "^26.6.3"
|
||||
},
|
||||
"dependencies": {}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user