当前位置: 首页 > news >正文

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

 

官网地址:官网地址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/falseboolean dayMingWu = d.isDayMingWu();religiousCultureDaoCalendarVO.setIsDayMingWu(dayMingWu);boolean dayAnWu = d.isDayAnWu();religiousCultureDaoCalendarVO.setIsDayAnWu(dayAnWu);
//            天赦日,四时专气、生育万物、免罪赦过、天帝赦免众生罪过吉日,最利于消灾化煞,祈福延寿。天赦日最忌杀生,遇此日婚娶、宴请不要肆意杀生,尽量提前购买三净肉以备使用或者干脆素宴。
//            天赦日规则:
//            春戊寅、夏甲午、秋戊申、冬甲子。
//            .isDayTianShe()
//            当日是否天赦日,返回true/falseboolean 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;}

实现的效果如下:

 

相关文章:

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

官网地址&#xff1a;官网地址https://6tail.cn/calendar/api.html 1、导入依赖 <dependency><groupId>cn.6tail</groupId><artifactId>lunar</artifactId><version>1.3.9</version></dependency><dependency><group…...

面对.rmallox勒索病毒:如何有效防范及应对

引言&#xff1a; 在当今数字化社会&#xff0c;网络安全问题日益严重&#xff0c;勒索病毒成为企业和个人不可忽视的威胁之一。最近出现的.rmallox勒索病毒更是给全球各地的用户带来了严重的数据安全问题。本文将探讨.rmallox勒索病毒的特点、感染方式及应对策略&#xff0c;…...

嘉立创学习

1.两个设置&#xff0c;一般用左边那个 2.焊盘分类 基本焊盘 热风盘&#xff1a;也叫花焊盘&#xff08;负片&#xff09; 隔离焊盘&#xff1a;外面那圈黑色&#xff0c;用作隔离&#xff08;负片&#xff09; 钢网层&#xff1a;&#xff08;锡膏&#xff09; 阻焊层&…...

ECharts 响应式设计

ECharts 响应式设计 ECharts 是一个由百度开源的,基于 JavaScript 的可视化库,它提供了一系列丰富的图表类型和灵活的配置选项,使得数据可视化变得简单而高效。在当今数据驱动的世界中,ECharts 已经成为许多开发者和设计师的首选工具,用于创建交互式和视觉吸引力强的图表…...

基于java语言+springboot技术架构开发的 互联网智能3D导诊系统源码支持微信小程序、APP 医院AI智能导诊系统源码

基于java语言springboot技术架构开发的 互联网智能3D导诊系统源码支持微信小程序、APP 医院AI智能导诊系统源码 一、智慧导诊系统开发原理 导诊系统从原理上大致可分为基于规则模板和基于数据模型两类。 1、基于规则推理的方法通过人工建立症状、疾病和科室之间的对应规则实现…...

MySQL事务——Java全栈知识(31)

1、事务的特性 原子性&#xff08;Atomicity&#xff09;&#xff1a;事务是不可分割的最小操作单元&#xff0c;要么全部成功&#xff0c;要么全部失败。 一致性&#xff08;Consistency&#xff09;&#xff1a;事务完成时&#xff0c;必须使所有的数据都保持一致状态。 隔离…...

2毛钱不到的2A同步降压DCDC电压6V频率1.5MHz电感2.2uH封装SOT23-5芯片MT3520B

前言 2A&#xff0c;2.3V-6V输入&#xff0c;1.5MHz 同步降压转换器&#xff0c;批量价格约0.18元 MT3520B 封装SOT23-5 丝印AS20B5 特征 高效率&#xff1a;高达 96% 1.5MHz恒定频率操作 2A 输出电流 无需肖特基二极管 2.3V至6V输入电压范围 输出电压低至 0.6V PFM 模式可在…...

Ubuntu安装、更新和删除软件

Ubuntu安装、更新和删除软件 问题命令行直接安装、更新和删除软件命令行直接安装软件命令行直接更新软件命令行直接删除软件 手动下载后命令行安装、更新和删除软件手动下载后命令行安装软件手动下载后命令行更新软件手动下载后命令行删除软件 手动下载后在桌面环境下安装、更新…...

消息队列kafka中间件详解:案例解析(第10天)

系列文章目录 1- 消息队列&#xff08;熟悉&#xff09;2- Kafka的基本介绍&#xff08;掌握架构&#xff0c;其他了解&#xff09;3- Kafka的相关使用&#xff08;掌握kafka常用shell命令&#xff09;4- Kafka的Python API的操作&#xff08;熟悉&#xff09; 文章目录 系列文…...

Linux高级编程——线程

pthread 线程 概念 &#xff1a;线程是轻量级进程&#xff0c;一般是一个进程中的多个任务。 进程是系统中最小的资源分配单位. 线程是系统中最小的执行单位。 优点&#xff1a; 比多进程节省资源&#xff0c;可以共享变量 进程会占用&am…...

技术学习的奥秘与乐趣

人不走空 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌赋&#xff1a;斯是陋室&#xff0c;惟吾德馨 在当今快速发展的科技时代&#xff0c;学习技术已经成为了许多人追求的重要目标之一。无论是为了个人发展&#…...

创新前沿:Web3如何颠覆传统计算机模式

随着Web3技术的快速发展&#xff0c;传统的计算机模式正面临着前所未有的挑战和改变。本文将深入探讨Web3技术的定义、原理以及它如何颠覆传统计算机模式&#xff0c;以及对全球科技发展的潜在影响。 1. 引言&#xff1a;Web3技术的兴起与背景 Web3不仅仅是技术创新的一种&…...

一文弄懂梯度下降算法

1、引言 在上一篇文章中&#xff0c;我们介绍了如何使用线性回归和成本损失函数为房价数据找到最拟合的线。不过&#xff0c;我们也看到&#xff0c;测试多个截距值可能既繁琐又低效。在本文中&#xff0c;我们将深入探讨梯度下降算法&#xff0c;这是一种更加强大的技术&…...

确认偏差:金融市场交易中的隐形障碍

确认偏差&#xff0c;作为一种深刻影响交易员决策与表现的心理现象&#xff0c;其核心在于个体倾向于寻求与既有信念相符的信息&#xff0c;而自动过滤或轻视与之相悖的资讯。这种认知偏见严重扭曲了交易者的决策过程&#xff0c;导致他们过分依赖符合既有观念的数据&#xff0…...

Linux系统之部署linkding书签管理器

Linux系统之部署linkding书签管理器 一、linkding介绍1.1 linkding简介1.2 linkding特点二、本地环境介绍2.1 本地环境规划2.2 本次实践介绍三、检查本地环境3.1 检查本地操作系统版本3.2 检查系统内核版本四、部署Node.js 环境4.1 下载Node.js安装包4.2 解压Node.js安装包4.3 …...

springcloud-gateway 路由加载流程

问题 Spring Cloud Gateway版本是2.2.9.RELEASE&#xff0c;原本项目中依赖服务自动发现来自动配置路由到微服务的&#xff0c;但是发现将spring.cloud.gateway.discovery.locator.enabledfalse 启动之后Gateway依然会将所有微服务自动注册到路由中&#xff0c;百思不得其解&a…...

双减期末考试成绩怎么公布?

考试一直是衡量学生学习成果的重要手段。不过&#xff0c;随着"双减"政策的实施&#xff0c;我们就不得不重新审视传统的成绩公布方式。期末考试成绩&#xff0c;这个曾经让无数学生心跳加速的数字&#xff0c;如今该如何以一种更加合理、公正的方式呈现给学生和家长…...

2, 搭建springCloud 项目 测试demo

上篇文章 新建了父依赖服务&#xff0c;这篇文章就建两个demo测试服务。 因为后面需要做服务间的通讯测试&#xff0c;所以至少需要建两个服务 建个子模块 同样的方式建连个demo服务 给java 和resources目录添加属性 在resources目录下建一个applications.yml文件&#xff0c;…...

RabbitMQ消息积压比较厉害,然后突然丢弃

RabbitMQ中的消息积压陡降通常表明某些突发事件或操作已经显著减少了队列中的消息数量。这种现象可能由多种原因引起&#xff0c;以下是一些可能的原因及其解释&#xff1a; 消费者处理速度突然增加 原因: 你的消费者&#xff08;消费者应用或服务&#xff09;可能在某个时间点…...

QT中的样式表.qss文件

一、前言 qt中样式表的改变有几种方法&#xff0c;第一种就是直接在ui界面对应的组件右键修改样式表&#xff0c;还有一种就是直接在程序里面修改样式表&#xff0c;我知道的还有一种就是qss文件&#xff0c;这个文件就是将在程序中写的修改样式表的语句写道qss文件中&#xff…...

后进先出(LIFO)详解

LIFO 是 Last In, First Out 的缩写&#xff0c;中文译为后进先出。这是一种数据结构的工作原则&#xff0c;类似于一摞盘子或一叠书本&#xff1a; 最后放进去的元素最先出来 -想象往筒状容器里放盘子&#xff1a; &#xff08;1&#xff09;你放进的最后一个盘子&#xff08…...

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…...

Ubuntu系统下交叉编译openssl

一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机&#xff1a;Ubuntu 20.04.6 LTSHost&#xff1a;ARM32位交叉编译器&#xff1a;arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...

脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)

一、数据处理与分析实战 &#xff08;一&#xff09;实时滤波与参数调整 基础滤波操作 60Hz 工频滤波&#xff1a;勾选界面右侧 “60Hz” 复选框&#xff0c;可有效抑制电网干扰&#xff08;适用于北美地区&#xff0c;欧洲用户可调整为 50Hz&#xff09;。 平滑处理&…...

Java面试专项一-准备篇

一、企业简历筛选规则 一般企业的简历筛选流程&#xff1a;首先由HR先筛选一部分简历后&#xff0c;在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如&#xff1a;Boss直聘&#xff08;招聘方平台&#xff09; 直接按照条件进行筛选 例如&#xff1a…...

JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案

JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停​​ 1. ​​安全点(Safepoint)阻塞​​ ​​现象​​:JVM暂停但无GC日志,日志显示No GCs detected。​​原因​​:JVM等待所有线程进入安全点(如…...

Python ROS2【机器人中间件框架】 简介

销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...

蓝桥杯 冶炼金属

原题目链接 &#x1f527; 冶炼金属转换率推测题解 &#x1f4dc; 原题描述 小蓝有一个神奇的炉子用于将普通金属 O O O 冶炼成为一种特殊金属 X X X。这个炉子有一个属性叫转换率 V V V&#xff0c;是一个正整数&#xff0c;表示每 V V V 个普通金属 O O O 可以冶炼出 …...

JavaScript 数据类型详解

JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型&#xff08;Primitive&#xff09; 和 对象类型&#xff08;Object&#xff09; 两大类&#xff0c;共 8 种&#xff08;ES11&#xff09;&#xff1a; 一、原始类型&#xff08;7种&#xff09; 1. undefined 定…...

打手机检测算法AI智能分析网关V4守护公共/工业/医疗等多场景安全应用

一、方案背景​ 在现代生产与生活场景中&#xff0c;如工厂高危作业区、医院手术室、公共场景等&#xff0c;人员违规打手机的行为潜藏着巨大风险。传统依靠人工巡查的监管方式&#xff0c;存在效率低、覆盖面不足、判断主观性强等问题&#xff0c;难以满足对人员打手机行为精…...