tyme4ts
Version:
Tyme是一个非常强大的日历工具库,可以看作 Lunar 的升级版,拥有更优的设计和扩展性,支持公历和农历、星座、干支、生肖、节气、法定假日等。
88 lines (73 loc) • 2.79 kB
text/typescript
import {suite, test} from '@testdeck/mocha';
import {SolarDay} from '../lib';
import {equal} from 'assert';
class SolarDayTest {
test0() {
equal(SolarDay.fromYmd(2023, 1, 1).getName(), '1日');
equal(SolarDay.fromYmd(2023, 1, 1).toString(), '2023年1月1日');
}
test1() {
equal(SolarDay.fromYmd(2000, 2, 29).getName(), '29日');
equal(SolarDay.fromYmd(2000, 2, 29).toString(), '2000年2月29日');
}
test2() {
equal(SolarDay.fromYmd(2023, 1, 1).getIndexInYear(), 0);
equal(SolarDay.fromYmd(2023, 12, 31).getIndexInYear(), 364);
equal(SolarDay.fromYmd(2020, 12, 31).getIndexInYear(), 365);
}
test3() {
equal(SolarDay.fromYmd(2023, 1, 1).subtract(SolarDay.fromYmd(2023, 1, 1)), 0);
equal(SolarDay.fromYmd(2023, 1, 2).subtract(SolarDay.fromYmd(2023, 1, 1)), 1);
equal(SolarDay.fromYmd(2023, 1, 1).subtract(SolarDay.fromYmd(2023, 1, 2)), -1);
equal(SolarDay.fromYmd(2023, 2, 1).subtract(SolarDay.fromYmd(2023, 1, 1)), 31);
equal(SolarDay.fromYmd(2023, 1, 1).subtract(SolarDay.fromYmd(2023, 2, 1)), -31);
equal(SolarDay.fromYmd(2024, 1, 1).subtract(SolarDay.fromYmd(2023, 1, 1)), 365);
equal(SolarDay.fromYmd(2023, 1, 1).subtract(SolarDay.fromYmd(2024, 1, 1)), -365);
equal(SolarDay.fromYmd(1582, 10, 15).subtract(SolarDay.fromYmd(1582, 10, 4)), 1);
}
test4() {
equal(SolarDay.fromYmd(1582, 10, 15).next(-1).toString(), '1582年10月4日');
}
test5() {
equal(SolarDay.fromYmd(2000, 2, 28).next(2).toString(), '2000年3月1日');
}
test6() {
equal(SolarDay.fromYmd(2020, 5, 24).getLunarDay().toString(), '农历庚子年闰四月初二');
}
test7() {
equal(SolarDay.fromYmd(2020, 5, 24).subtract(SolarDay.fromYmd(2020, 4, 23)), 31);
}
test8() {
equal(SolarDay.fromYmd(16, 11, 30).getLunarDay().toString(), '农历丙子年十一月十二');
}
test9() {
equal(SolarDay.fromYmd(2023, 10, 27).getTerm().toString(), '霜降');
}
test10() {
equal(SolarDay.fromYmd(2023, 10, 27).getPhenologyDay().toString(), '豺乃祭兽第4天');
}
test11() {
equal(SolarDay.fromYmd(2023, 10, 27).getPhenologyDay().getPhenology().getThreePhenology().toString(), '初候');
}
test22() {
equal('甲辰', SolarDay.fromYmd(2024, 2, 10).getLunarDay().getLunarMonth().getLunarYear().getSixtyCycle().getName());
}
test23() {
equal('癸卯', SolarDay.fromYmd(2024, 2, 9).getLunarDay().getLunarMonth().getLunarYear().getSixtyCycle().getName());
}
}