官网地址:官网地址https://6tail.cn/calendar/api.html
1、导入依赖
-
-
cn.6tail -
lunar -
1.3.9 -
-
-
-
org.projectlombok -
lombok -
-
-
-
-
io.swagger -
swagger-annotations -
1.5.13 -
- package com.example.demo.controller;
-
- import com.example.demo.VO.ReligiousCultureDaoCalendarVO;
- import com.nlf.calendar.Lunar;
- import com.nlf.calendar.Tao;
- import com.nlf.calendar.TaoFestival;
-
- import io.swagger.annotations.ApiOperation;
- import org.springframework.util.StringUtils;
- import org.springframework.web.bind.annotation.GetMapping;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestParam;
- import org.springframework.web.bind.annotation.RestController;
-
- import java.text.ParseException;
- import java.text.SimpleDateFormat;
- import java.util.Date;
- import java.util.List;
-
- /**
- * @Classname ReligiousCultureDaoCalendarController
- * @Description 道历接口
- * @Date 2024/4/7 12:17
- * @Created by CaoJun
- */
- @RestController
- @RequestMapping("/religious/dao/calendar")
- public class ReligiousCultureDaoCalendarController {
-
- /**
- * 选择日期获取某天道历详情
- */
- @GetMapping("/selectDaysDate")
- @ApiOperation("选择日期获取某天道历详情")
- public ReligiousCultureDaoCalendarVO getInfo(@RequestParam(value = "dateString") String dateString) {
-
- if (StringUtils.isEmpty(dateString)) {
- throw new RuntimeException("日期不能为空!");
- }
- ReligiousCultureDaoCalendarVO religiousCultureDaoCalendarVO=new ReligiousCultureDaoCalendarVO();
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
- try {
- Date date = sdf.parse(dateString);
- Tao d = Tao.fromLunar(Lunar.fromDate(date));
- List
l = d.getFestivals(); - religiousCultureDaoCalendarVO.setFestivals(l);
- String monthInChinese = d.getMonthInChinese();
- String dayInChinese = d.getDayInChinese();
- String s1 = monthInChinese + "月" + dayInChinese;
- religiousCultureDaoCalendarVO.setMonthAndDayInChineseNL(s1);
- int year = d.getYear();
- String daoYear ="道歷"+year+"年";
- religiousCultureDaoCalendarVO.setDaoCalendarYear(daoYear);
- // 转阴历
- Lunar lunar = d.getLunar();
- // 分割数据
- String[] parts = lunar.toFullString().split(" ");
- String part = parts[1];
- // 使用正则表达式删除括号及括号内的内容
- String result = part.replaceAll("\\(.*?\\)", "");
- // 输出结果
- religiousCultureDaoCalendarVO.setYearCalendar(result);
- String part1 = parts[2];
- // 使用正则表达式删除括号及括号内的内容
- String result1 = part1.replaceAll("\\(.*?\\)", "");
- // 输出结果
- religiousCultureDaoCalendarVO.setMonthCalendar(result1);
- String part2 = parts[3];
- String result12 = part2.replaceAll("\\(.*?\\)", "");
- religiousCultureDaoCalendarVO.setDayCalendar(result12);
- // System.out.println(d.toFullString());
- // System.out.println("-----------------------");
- // 正月七日,名:举迁赏会,此日上元赐福,天官同地水二官考校罪福。
- // 七月七日,名:庆生中会,此日中元赦罪,地官同天水二官考校罪福。
- // 十月十五日,名:建生大会,此日下元解厄,水官同天地二官考校罪福。
- // 其三会之日,三官考核功过,三魂攒送生人善恶。又谓之三魂会日,宜焚香忏过。
- // .isDaySanHui()
- // 当日是否三会日,返回true/false,具体名称在节日里
- boolean daySanHui = d.isDaySanHui();
- religiousCultureDaoCalendarVO.setIsDaySanHui(daySanHui);
- // 正月十五,上元节;七月十五,中元节,十月十五,下元节。
- // 其三元之日,天地水三官二十七府百二十曹之神,先于三会日考校罪福,至三元日上奏金阙,以降祸福。其日可行道建斋,修身谢过。
- // .isDaySanYuan()
- // 当日是否三元日,返回true/false,具体名称在节日里
- boolean daySanYuan = d.isDaySanYuan();
- religiousCultureDaoCalendarVO.setIsDaySanYuan(daySanYuan);
- // 立春:东北方度仙上圣天尊同梵炁始青天君下降。
- // 春分:东方玉宝星上天尊同青帝九炁天君下降。
- // 立夏:东南方好生度命天尊同梵炁始丹天君下降。
- // 夏至:南方玄真万福天尊同赤帝三炁天君下降。
- // 立秋:西南方太灵虚皇天尊同梵炁始素天君下降。
- // 秋分:西方太妙至极天尊同白帝七炁天君下降。
- // 立冬:西北方无量太华天尊同梵炁始玄天君下降。
- // 冬至:北方玄上玉宸天尊同黑帝五炁天君下降。
- // 其曰八极天尊天君同下人问,录人罪福,观察善恶。
- // .isDayBaJie()
- // 当日是否八节日,返回true/false,具体名称在节日里
- boolean dayBaJie = d.isDayBaJie();
- religiousCultureDaoCalendarVO.setIsDayBaJie(dayBaJie);
- // 正月一日,名天腊,此日五帝会于东方九炁青天。
- // 五月五日,名地腊,此日五帝会于南方三炁丹天。
- // 七月七日,名道德腊,此日五帝会于西方七炁素天。
- // 十月一日,名民岁腊,此日五帝会于北方五炁黑天。
- // 十一月八日,名王侯腊,此日五帝会于上方玄都玉京。
- // 其五帝攒会之日,此日酆都北阴天帝考校鬼魂,查生人祖考及见世子孙所行善恶,以定罪福。此日皆累生人,宜当醮谢,须凭法力祭祀,追赎涂苦,一一得福,常日祭祀,不可享也。
- // .isDayWuLa()
- // 当日是否五腊日,返回true/false,具体名称在节日里
- boolean dayWuLa = d.isDayWuLa();
- religiousCultureDaoCalendarVO.setIsDayWuLa(dayWuLa);
- // 天会丙午,地会壬午,人会壬子,日会庚午,月会庚申,星辰会辛酉,五行会甲辰,四时会甲戌。
- // 其节会宜斋戒焚香,醮告星辰,看经拜忏,祭祀先灵,可以延年益算。
- // .isDayBaHui()
- // 当日是否八会日,返回true/false,具体名称在节日里
- boolean dayBaHui = d.isDayBaHui();
- religiousCultureDaoCalendarVO.setIsDayBaHui(dayBaHui);
- // 戊日为禁忌日,道场会在戊日休息。戊日又分为明戊日、暗戊日。
- // 明戊日即天干为“戊”的日子。
- // 暗戊日则按口诀推算:
- // 正羊(未日)二犬(戍日)三在辰,四月期间不犯寅,五午六子七鸡(酉日)位,八月周流又到申,九蛇(巳日)十猪(亥日)十一兔(卯日),十二牛头(丑日)重千斤。
- // .isDayWu()
- // 当日是否戊日,返回true/false
- // .isDayMingWu()
- // 当日是否明戊日,返回true/false
- // .isDayAnWu()
- // 当日是否暗戊日,返回true/false
- boolean dayMingWu = d.isDayMingWu();
- religiousCultureDaoCalendarVO.setIsDayMingWu(dayMingWu);
- boolean dayAnWu = d.isDayAnWu();
- religiousCultureDaoCalendarVO.setIsDayAnWu(dayAnWu);
- // 天赦日,四时专气、生育万物、免罪赦过、天帝赦免众生罪过吉日,最利于消灾化煞,祈福延寿。天赦日最忌杀生,遇此日婚娶、宴请不要肆意杀生,尽量提前购买三净肉以备使用或者干脆素宴。
- // 天赦日规则:
- // 春戊寅、夏甲午、秋戊申、冬甲子。
- // .isDayTianShe()
- // 当日是否天赦日,返回true/false
- boolean dayTianShe = d.isDayTianShe();
- religiousCultureDaoCalendarVO.setIsDayTianShe(dayTianShe);
- } catch (ParseException e) {
- e.printStackTrace();
- }
- return religiousCultureDaoCalendarVO;
- }
-
-
- }
- package com.example.demo.VO;
-
-
-
- import com.nlf.calendar.TaoFestival;
- import io.swagger.annotations.ApiModelProperty;
- import lombok.Data;
-
- import java.util.List;
-
- /**
- * @Classname ReligiousCultureDaoCalendarVO
- * @Description 道历的返回的VO
- * @Date 2024/4/7 12:23
- * @Created by CaoJun
- */
- @Data
- public class ReligiousCultureDaoCalendarVO {
-
- /** 农历的月 */
- @ApiModelProperty("农历的月日")
- private String MonthAndDayInChineseNL;
-
- /** 农历的日 */
- @ApiModelProperty("道历年")
- private String DaoCalendarYear;
-
- @ApiModelProperty("获取某一天的节日")
- private List
Festivals; -
- @ApiModelProperty("获取农历年")
- private String yearCalendar;
-
- @ApiModelProperty("获取农历月")
- private String monthCalendar;
-
- @ApiModelProperty("获取农历日")
- private String dayCalendar;
-
- /** 当日是否三会日 */
- @ApiModelProperty("当日是否三会日")
- private Boolean isDaySanHui;
-
- /** 当日是否三元日 */
- @ApiModelProperty("当日是否三元日")
- private Boolean isDaySanYuan;
-
- /** 当日是否八节日 */
- @ApiModelProperty("当日是否八节日")
- private Boolean isDayBaJie;
-
- /** 当日是否五腊日 */
- @ApiModelProperty("当日是否五腊日")
- private Boolean isDayWuLa;
-
- /** 当日是否八会日 */
- @ApiModelProperty("当日是否八会日")
- private Boolean isDayBaHui;
-
- /** 当日是否明戊日 */
- @ApiModelProperty("当日是否明戊日")
- private Boolean isDayMingWu;
-
- /** 当日是否明戊日 */
- @ApiModelProperty("当日是否暗戊日")
- private Boolean isDayAnWu;
-
- /** 当日是否天赦日 */
- @ApiModelProperty("当日是否天赦日")
- private Boolean isDayTianShe;
-
-
- }
实现的效果如下: