tyme4ts
Version:
Tyme是一个非常强大的日历工具库,可以看作 Lunar 的升级版,拥有更优的设计和扩展性,支持公历和农历、星座、干支、生肖、节气、法定假日等。
172 lines (141 loc) • 4.64 kB
text/typescript
import {suite, test} from '@testdeck/mocha';
import {LunarDay} from '../lib';
import {equal} from 'assert';
class LunarDayTest {
test1() {
equal(LunarDay.fromYmd(0, 11, 18).getSolarDay().toString(), '1年1月1日');
}
test2() {
equal(LunarDay.fromYmd(9999, 12, 2).getSolarDay().toString(), '9999年12月31日');
}
test3() {
equal(LunarDay.fromYmd(1905, 1, 1).getSolarDay().toString(), '1905年2月4日');
}
test4() {
equal(LunarDay.fromYmd(2038, 12, 29).getSolarDay().toString(), '2039年1月23日');
}
test5() {
equal(LunarDay.fromYmd(1500, 1, 1).getSolarDay().toString(), '1500年1月31日');
}
test6() {
equal(LunarDay.fromYmd(1500, 12, 29).getSolarDay().toString(), '1501年1月18日');
}
test7() {
equal(LunarDay.fromYmd(1582, 9, 18).getSolarDay().toString(), '1582年10月4日');
}
test8() {
equal(LunarDay.fromYmd(1582, 9, 19).getSolarDay().toString(), '1582年10月15日');
}
test9() {
equal(LunarDay.fromYmd(2019, 12, 12).getSolarDay().toString(), '2020年1月6日');
}
test10() {
equal(LunarDay.fromYmd(2033, -11, 1).getSolarDay().toString(), '2033年12月22日');
}
test11() {
equal(LunarDay.fromYmd(2021, 6, 7).getSolarDay().toString(), '2021年7月16日');
}
test12() {
equal(LunarDay.fromYmd(2034, 1, 1).getSolarDay().toString(), '2034年2月19日');
}
test13() {
equal(LunarDay.fromYmd(2033, 12, 1).getSolarDay().toString(), '2034年1月20日');
}
test14() {
equal(LunarDay.fromYmd(7013, -11, 4).getSolarDay().toString(), '7013年12月24日');
}
test15() {
equal(LunarDay.fromYmd(2023, 8, 24).getSixtyCycle().toString(), '己亥');
}
test16() {
equal(LunarDay.fromYmd(1653, 1, 6).getSixtyCycle().toString(), '癸酉');
}
test17() {
equal(LunarDay.fromYmd(2010, 1, 1).next(31).toString(), '农历庚寅年二月初二');
}
test18() {
equal(LunarDay.fromYmd(2012, 3, 1).next(60).toString(), '农历壬辰年闰四月初一');
}
test19() {
equal(LunarDay.fromYmd(2012, 3, 1).next(88).toString(), '农历壬辰年闰四月廿九');
}
test20() {
equal(LunarDay.fromYmd(2012, 3, 1).next(89).toString(), '农历壬辰年五月初一');
}
test21() {
equal(LunarDay.fromYmd(2020, 4, 1).getSolarDay().toString(), '2020年4月23日');
}
test22() {
equal(LunarDay.fromYmd(2024, 1, 1).getLunarMonth().getLunarYear().getSixtyCycle().getName(), '甲辰');
}
test23() {
equal(LunarDay.fromYmd(2023, 12, 30).getLunarMonth().getLunarYear().getSixtyCycle().getName(), '癸卯');
}
/**
* 二十八宿
*/
test24() {
const star = LunarDay.fromYmd(2020, 4, 13).getTwentyEightStar();
equal(star.getZone().getName(), '南');
equal(star.getZone().getBeast().getName(), '朱雀');
equal(star.getName(), '翼');
equal(star.getSevenStar().getName(), '火');
equal(star.getAnimal().getName(), '蛇');
equal(star.getLuck().getName(), '凶');
equal(star.getLand().getName(), '阳天');
equal(star.getLand().getDirection().getName(), '东南');
}
test25() {
const star = LunarDay.fromYmd(2023, 9, 28).getTwentyEightStar();
equal(star.getZone().getName(), '南');
equal(star.getZone().getBeast().getName(), '朱雀');
equal(star.getName(), '柳');
equal(star.getSevenStar().getName(), '土');
equal(star.getAnimal().getName(), '獐');
equal(star.getLuck().getName(), '凶');
equal(star.getLand().getName(), '炎天');
equal(star.getLand().getDirection().getName(), '南');
}
test26() {
const lunar: LunarDay = LunarDay.fromYmd(2005, 11, 23);
equal(lunar.getLunarMonth().getSixtyCycle().getName(), '戊子');
equal(lunar.getSixtyCycleDay().getMonth().getName(), '戊子');
}
test27() {
const lunar: LunarDay = LunarDay.fromYmd(2024, 1, 1);
equal(lunar.next(31).toString(), '农历甲辰年二月初三');
}
test28() {
const lunar: LunarDay = LunarDay.fromYmd(2024, 3, 5);
equal(lunar.getMinorRen().getName(), '大安');
}
}