SpringBoot集成道历(实现道历日期查询)
官网地址:官网地址
https://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集成道历(实现道历日期查询)
官网地址:官网地址https://6tail.cn/calendar/api.html 1、导入依赖 <dependency><groupId>cn.6tail</groupId><artifactId>lunar</artifactId><version>1.3.9</version></dependency><dependency><group…...
面对.rmallox勒索病毒:如何有效防范及应对
引言: 在当今数字化社会,网络安全问题日益严重,勒索病毒成为企业和个人不可忽视的威胁之一。最近出现的.rmallox勒索病毒更是给全球各地的用户带来了严重的数据安全问题。本文将探讨.rmallox勒索病毒的特点、感染方式及应对策略,…...
嘉立创学习
1.两个设置,一般用左边那个 2.焊盘分类 基本焊盘 热风盘:也叫花焊盘(负片) 隔离焊盘:外面那圈黑色,用作隔离(负片) 钢网层:(锡膏) 阻焊层&…...
ECharts 响应式设计
ECharts 响应式设计 ECharts 是一个由百度开源的,基于 JavaScript 的可视化库,它提供了一系列丰富的图表类型和灵活的配置选项,使得数据可视化变得简单而高效。在当今数据驱动的世界中,ECharts 已经成为许多开发者和设计师的首选工具,用于创建交互式和视觉吸引力强的图表…...
基于java语言+springboot技术架构开发的 互联网智能3D导诊系统源码支持微信小程序、APP 医院AI智能导诊系统源码
基于java语言springboot技术架构开发的 互联网智能3D导诊系统源码支持微信小程序、APP 医院AI智能导诊系统源码 一、智慧导诊系统开发原理 导诊系统从原理上大致可分为基于规则模板和基于数据模型两类。 1、基于规则推理的方法通过人工建立症状、疾病和科室之间的对应规则实现…...
MySQL事务——Java全栈知识(31)
1、事务的特性 原子性(Atomicity):事务是不可分割的最小操作单元,要么全部成功,要么全部失败。 一致性(Consistency):事务完成时,必须使所有的数据都保持一致状态。 隔离…...
2毛钱不到的2A同步降压DCDC电压6V频率1.5MHz电感2.2uH封装SOT23-5芯片MT3520B
前言 2A,2.3V-6V输入,1.5MHz 同步降压转换器,批量价格约0.18元 MT3520B 封装SOT23-5 丝印AS20B5 特征 高效率:高达 96% 1.5MHz恒定频率操作 2A 输出电流 无需肖特基二极管 2.3V至6V输入电压范围 输出电压低至 0.6V PFM 模式可在…...
Ubuntu安装、更新和删除软件
Ubuntu安装、更新和删除软件 问题命令行直接安装、更新和删除软件命令行直接安装软件命令行直接更新软件命令行直接删除软件 手动下载后命令行安装、更新和删除软件手动下载后命令行安装软件手动下载后命令行更新软件手动下载后命令行删除软件 手动下载后在桌面环境下安装、更新…...
消息队列kafka中间件详解:案例解析(第10天)
系列文章目录 1- 消息队列(熟悉)2- Kafka的基本介绍(掌握架构,其他了解)3- Kafka的相关使用(掌握kafka常用shell命令)4- Kafka的Python API的操作(熟悉) 文章目录 系列文…...
Linux高级编程——线程
pthread 线程 概念 :线程是轻量级进程,一般是一个进程中的多个任务。 进程是系统中最小的资源分配单位. 线程是系统中最小的执行单位。 优点: 比多进程节省资源,可以共享变量 进程会占用&am…...
技术学习的奥秘与乐趣
人不走空 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌赋:斯是陋室,惟吾德馨 在当今快速发展的科技时代,学习技术已经成为了许多人追求的重要目标之一。无论是为了个人发展&#…...
创新前沿:Web3如何颠覆传统计算机模式
随着Web3技术的快速发展,传统的计算机模式正面临着前所未有的挑战和改变。本文将深入探讨Web3技术的定义、原理以及它如何颠覆传统计算机模式,以及对全球科技发展的潜在影响。 1. 引言:Web3技术的兴起与背景 Web3不仅仅是技术创新的一种&…...
一文弄懂梯度下降算法
1、引言 在上一篇文章中,我们介绍了如何使用线性回归和成本损失函数为房价数据找到最拟合的线。不过,我们也看到,测试多个截距值可能既繁琐又低效。在本文中,我们将深入探讨梯度下降算法,这是一种更加强大的技术&…...
确认偏差:金融市场交易中的隐形障碍
确认偏差,作为一种深刻影响交易员决策与表现的心理现象,其核心在于个体倾向于寻求与既有信念相符的信息,而自动过滤或轻视与之相悖的资讯。这种认知偏见严重扭曲了交易者的决策过程,导致他们过分依赖符合既有观念的数据࿰…...
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,原本项目中依赖服务自动发现来自动配置路由到微服务的,但是发现将spring.cloud.gateway.discovery.locator.enabledfalse 启动之后Gateway依然会将所有微服务自动注册到路由中,百思不得其解&a…...
双减期末考试成绩怎么公布?
考试一直是衡量学生学习成果的重要手段。不过,随着"双减"政策的实施,我们就不得不重新审视传统的成绩公布方式。期末考试成绩,这个曾经让无数学生心跳加速的数字,如今该如何以一种更加合理、公正的方式呈现给学生和家长…...
2, 搭建springCloud 项目 测试demo
上篇文章 新建了父依赖服务,这篇文章就建两个demo测试服务。 因为后面需要做服务间的通讯测试,所以至少需要建两个服务 建个子模块 同样的方式建连个demo服务 给java 和resources目录添加属性 在resources目录下建一个applications.yml文件,…...
RabbitMQ消息积压比较厉害,然后突然丢弃
RabbitMQ中的消息积压陡降通常表明某些突发事件或操作已经显著减少了队列中的消息数量。这种现象可能由多种原因引起,以下是一些可能的原因及其解释: 消费者处理速度突然增加 原因: 你的消费者(消费者应用或服务)可能在某个时间点…...
QT中的样式表.qss文件
一、前言 qt中样式表的改变有几种方法,第一种就是直接在ui界面对应的组件右键修改样式表,还有一种就是直接在程序里面修改样式表,我知道的还有一种就是qss文件,这个文件就是将在程序中写的修改样式表的语句写道qss文件中ÿ…...
Cursor实现用excel数据填充word模版的方法
cursor主页:https://www.cursor.com/ 任务目标:把excel格式的数据里的单元格,按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例,…...
stm32G473的flash模式是单bank还是双bank?
今天突然有人stm32G473的flash模式是单bank还是双bank?由于时间太久,我真忘记了。搜搜发现,还真有人和我一样。见下面的链接:https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...
安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件
在选煤厂、化工厂、钢铁厂等过程生产型企业,其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进,需提前预防假检、错检、漏检,推动智慧生产运维系统数据的流动和现场赋能应用。同时,…...
P3 QT项目----记事本(3.8)
3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...
新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案
随着新能源汽车的快速普及,充电桩作为核心配套设施,其安全性与可靠性备受关注。然而,在高温、高负荷运行环境下,充电桩的散热问题与消防安全隐患日益凸显,成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...
蓝桥杯 冶炼金属
原题目链接 🔧 冶炼金属转换率推测题解 📜 原题描述 小蓝有一个神奇的炉子用于将普通金属 O O O 冶炼成为一种特殊金属 X X X。这个炉子有一个属性叫转换率 V V V,是一个正整数,表示每 V V V 个普通金属 O O O 可以冶炼出 …...
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问(基础概念问题) 1. 请解释Spring框架的核心容器是什么?它在Spring中起到什么作用? Spring框架的核心容器是IoC容器&#…...
Yolov8 目标检测蒸馏学习记录
yolov8系列模型蒸馏基本流程,代码下载:这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中,**知识蒸馏(Knowledge Distillation)**被广泛应用,作为提升模型…...
LRU 缓存机制详解与实现(Java版) + 力扣解决
📌 LRU 缓存机制详解与实现(Java版) 一、📖 问题背景 在日常开发中,我们经常会使用 缓存(Cache) 来提升性能。但由于内存有限,缓存不可能无限增长,于是需要策略决定&am…...
BLEU评分:机器翻译质量评估的黄金标准
BLEU评分:机器翻译质量评估的黄金标准 1. 引言 在自然语言处理(NLP)领域,衡量一个机器翻译模型的性能至关重要。BLEU (Bilingual Evaluation Understudy) 作为一种自动化评估指标,自2002年由IBM的Kishore Papineni等人提出以来,…...
