SpringBoot集成道历(实现道历日期查询)

news2024/11/23 15:18:13

 

官网地址:官网地址icon-default.png?t=N7T8https://6tail.cn/calendar/api.html

 

 1、导入依赖

 <dependency>
            <groupId>cn.6tail</groupId>
            <artifactId>lunar</artifactId>
            <version>1.3.9</version>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>


        <dependency>
            <groupId>io.swagger</groupId>
            <artifactId>swagger-annotations</artifactId>
            <version>1.5.13</version>
        </dependency>
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<TaoFestival> 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<TaoFestival> 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;


}

实现的效果如下:

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1872934.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

未来先行!MWC 2024 世界移动通信大会盛大开幕!!!

2024MWC上海世界移动通信大会&#xff0c;在上海新国际博览中心&#xff08;SNIEC&#xff09;盛大开幕。 今年&#xff0c;MWC的主办方GSMA&#xff08;全球移动通信系统协会&#xff09;为这届MWC定下了一个主题——“Future First&#xff08;未来先行&#xff09;”。各大…

定制聚四氟乙烯架子离心管架子消解管样品架

南京瑞尼克定制离心管架子、消解管架子、微波罐架子等&#xff0c;各种实验室所需器皿样品架。 我司聚四氟乙烯架子优势&#xff1a; 1.耐强腐蚀&#xff08;耐各种强酸强碱和有机溶剂&#xff09; 2.耐高低温&#xff1a;-200至250℃ 3.工艺精制&#xff0c;尺寸&#xff0…

【代码随想录】【算法训练营】【第52天】 [647]回文子串 [516]最长回文子序列

前言 思路及算法思维&#xff0c;指路 代码随想录。 题目来自 LeetCode。 day 52&#xff0c;周五&#xff0c;开始补作业了~ 题目详情 [647] 回文子串 题目描述 647 回文子串 解题思路 前提&#xff1a; 思路&#xff1a; 重点&#xff1a; 代码实现 C语言 [516] 最…

Davtest一键远程编辑远程Web服务器上的文件(KALI工具系列三十三)

目录 1、KALI LINUX 简介 2、Davtest 工具简介 3、信息收集 3.1 目标IP&#xff08;服务器) 3.2 kali的IP 4、操作实例 4.1 常见漏洞扫描 4.2 身份验证 4.3 特定扫描 4.4 输出结果 5、总结 1、KALI LINUX 简介 Kali Linux 是一个功能强大、多才多艺的 Linux 发行版 &…

【笔记】echarts图表的缩放和鼠标滚动冲突的处理解决方案

解决方案不是很好&#xff0c;来源于github的issue&#xff0c;官方提供了&#xff0c;组合键触发缩放的功能。 https://github.com/apache/echarts/issues/5769 https://echarts.apache.org/zh/option.html#dataZoom-inside.zoomOnMouseWheel dataZoom-inside.zoomOnMouseWhe…

一文让你简单明了的知道云管理平台的作用

随着云计算的飞速发展&#xff0c;越来越多的企业实现了上云。因此云管理平台也在云计算环境中扮演着至关重要的角色&#xff0c;在企业上云后充分发挥作用。今天我们小编就来为大家简单讲解一下云管平台的作用。 一文让你简单明了的知道云管理平台的作用 作用1、提高工作效率…

Window.Notification API详细使用指南

在访问CSDN网站时,就会弹出窗口提示是否允许接收通知,刚开始以为是什么高深的技术,后来了解到是HTML5的一个通知特性. 基本定义 window.Notification 是Web API的一部分&#xff0c;它允许网页或应用程序向用户发送桌面通知。这些通知可以包含图像、文本和声音&#xff0c;以…

Idea 插件 Convert YAML and Properties File

YAML 和 Properties 相互转换插件 ConvertYamlAndProperties: IntelliJ IDEA plugin - Convert Yaml And Properties Files

机器学习——强化学习中的“策略π”的个人思考

这两天回顾了《西瓜书》中的最后一章——“强化学习”&#xff0c;但是忽然发现之前对于本章中的“策略π”的理解有些偏差&#xff0c;导致我在看值函数公式时有些看不明白。对此&#xff0c;我在网上查了一些资料&#xff0c;但是大部分人都是一笔带过&#xff0c;或者是照本…

网络安全入门教程(非常详细)从零基础入门到精通,看完这一篇你就是网络安全高手了。

关于我 我算是“入行”不久的一个新人安全工作者&#xff0c;为什么是引号呢&#xff0c;因为我是个“半个野路子”出身。早在13年的时候&#xff0c;我在初中时期就已经在90sec、wooyun等社区一直学习、报告漏洞。后来由于升学的压力&#xff0c;我逐渐淡出了安全圈子&#x…

卷烟厂打叶复烤线万亿条数据处理难?TDengine 来解决!

在当今竞争激烈的市场环境中&#xff0c;烟草行业面临着越来越多的挑战。如何提升生产效率、降低成本、实现数字化转型&#xff0c;成为各大卷烟厂亟需解决的问题。近日&#xff0c;为解决某卷烟厂面临的一系列挑战&#xff0c;TDengine与云南昆船电子设备有限公司达成签约合作…

第二节:如何使用thymeleaf渲染html(自学Spring boot 3.x的第一天)

大家好&#xff0c;我是网创有方&#xff0c;今天来学习如何使用thymeleaf渲染html。该模板运用不广泛&#xff0c;所以本节内容了解既可。 第一步&#xff1a;创建html文件。 在模板templates目录下创建一个html文件。 编写代码如下&#xff1a; <!DOCTYPE html> <…

教程:在 Kubernetes 集群上部署 WordPress 网站

WordPress 是专为每个人设计的开源软件&#xff0c;强调创建网站、博客或应用程序的可访问性、性能、安全性和易用性。WordPress 是一个基于 PHP 的内容管理系统&#xff08;CMS&#xff09;&#xff0c;使用 MySQL 作为数据存储&#xff0c;目前很多网站、电商独立站、个人博客…

uniapp中实现瀑布流 短视频页面展示

直接上干货 第一部分为结构 <swiper class"list" :currentindex change"swiperchange" scrolltolower"onReachBottom"><swiper-item style"overflow: scroll;" v-for"(item,index) in 2" :key"index"&g…

day01-项目介绍及初始化-登录页

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 day01-项目介绍及初始化-登录页一、人力资源项目介绍1.1项目架构和解决方案主要模块解决的问题 二、拉取项目基础代码1.引入库2.升级core-js版本到3.25.5按照完整依…

【高级篇】InnoDB引擎深入:核心机制与实战优化(十五)

引言 在探索了MySQL集群与分布式技术之后,我们进入了数据库引擎的核心地带——InnoDB。作为MySQL的默认存储引擎,InnoDB凭借其对事务的支持、行级锁定、高效的恢复机制以及复杂的内存管理,成为众多应用场景的首选。本章,我们将深入InnoDB的内部机制,透彻理解锁管理、事务…

【数据结构】计数排序等排序

&#x1f4e2;博客主页&#xff1a;https://blog.csdn.net/2301_779549673 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01; &#x1f4e2;本文由 JohnKi 原创&#xff0c;首发于 CSDN&#x1f649; &#x1f4e2;未来很长&#…

【人工智能学习之图像操作(四)】

【人工智能学习之图像操作&#xff08;四&#xff09;】 图像金字塔高斯金字塔拉普拉斯金字塔 模板匹配单对象匹配多对象匹配无缝融合Canny边缘提取算法 轮廓轮廓查找与绘制面积&#xff0c;周长&#xff0c;重心轮廓近似凸包与凸性检测边界检测轮廓性质 图像金字塔 高斯金字塔…

同步时钟:北斗/GPS卫星、电信基站、NTP以太网校时方式的区别

同步时钟是保证各设备时间统一的重要装置&#xff0c;广泛应用于电力、通信、金融、学校、医院、地铁等多个领域。目前&#xff0c;常用的同步时钟方式包括&#xff1a;北斗/GPS卫星、电信基站、NTP以太网等。 下面跟着小编来看一下这些校时方式及他们的区别吧。 1. 北斗/GP…

Windows Server 2019部署网络负载均衡NLB服务的详细操作步骤

部署前准备 首先需要准备两台Windows Server 2019服务器&#xff0c;虚拟机创建请参考 VMware Workstation安装Windows Server2019系统详细操作步骤_安装windows server 2019操作系统(写出操作过程)-CSDN博客 克隆虚拟机请参考 VMware Workstation克隆虚拟机详细步骤-CSDN博…