本期推荐的是一个支持公历(阳历)和农历(阴历、老黄历)的日历工具库——Lunar。
Lunar是一个无依赖的支持阳历和阴历的日历工具库,提供了js、java、c#、php、python、go、typescript、flutter版本,不依赖第三方,目前支持公历和农历、星座、干支、生肖、节气、节日、彭祖百忌、每日宜忌、吉神宜趋、凶煞宜忌、吉神方位、冲煞、纳音、星宿、八字、五行、十神、建除十二值星、青龙名堂等十二神、黄道日及吉凶等。
快速开始(Java版本):
- 依赖
// maven<dependency><groupId>cn.6tail</groupId><artifactId>lunar</artifactId><version>1.2.5</version></dependency>
// gradleimplementation 'com.github.6tail:lunar-java:v1.2.5'
- 示例代码
阳历
// 年月日Solar d = Solar.fromYmd(2016, 1, 1);System.out.println(d);// 年月日时分秒d = Solar.fromYmdHms(2016, 1, 1, 20, 35, 0);System.out.println(d);// 日期d = Solar.fromDate(new Date());System.out.println(d.toFullString());// 儒略日d = Solar.fromJulianDay(2458960.5);System.out.println(d.toFullString());// 八字反推阳历List<Solar> l = Solar.fromBaZi("庚子", "辛巳", "庚午", "丙子");for (Solar solar : l) {System.out.println(solar.toFullString());}
输出
八字
//今日八字Lunar lunar = Lunar.fromDate(new Date());EightChar d = lunar.getEightChar();System.out.println(d);System.out.println(d.getYearWuXing() + ", " + d.getMonthWuXing() + ", " + d.getDayWuXing() + ", " + d.getTimeWuXing());System.out.println(d.getYearNaYin() + ", " + d.getMonthNaYin() + ", " + d.getDayNaYin() + ", " + d.getTimeNaYin());System.out.println(d.getYearShiShenGan() + ", " + d.getMonthShiShenGan() + ", " + d.getDayShiShenGan() + ", " + d.getTimeShiShenGan());// 年支十神System.out.println("年支十神 = " + d.getYearShiShenZhi());// 月支十神System.out.println("月支十神 = " + d.getMonthShiShenZhi());// 日支十神System.out.println("日支十神 = " + d.getDayShiShenZhi());// 时支十神System.out.println("时支十神 = " + d.getTimeShiShenZhi());// 获取男运Yun yun = d.getYun(1);// 起运System.out.println("出生" + yun.getStartYear() + "年" + yun.getStartMonth() + "个月" + yun.getStartDay() + "天后起运");// 获取大运表DaYun[] daYunArr = yun.getDaYun();for (int i=0, j=daYunArr.length; i<j; i++) {DaYun daYun = daYunArr[i];System.out.println("大运[" + i + "] = " + daYun.getStartYear() + "年 " + daYun.getStartAge() + "岁 " + daYun.getGanZhi());}// 第1次大运流年LiuNian[] LiuNianArr = daYunArr[1].getLiuNian();for (int i=0, j=LiuNianArr.length; i<j; i++) {LiuNian liuNian = LiuNianArr[i];System.out.println("流年[" + i + "] = " + liuNian.getYear() + "年 " + liuNian.getAge() + "岁 " + liuNian.getGanZhi());}
输出
其他示例:
年历
月历
老黄历
更多内容大家可自行前往阅读。