当前位置: 首页 > 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…...

Qwen2.5-VL-7B-Instruct镜像免配置教程:开箱即用的视觉语言推理平台

Qwen2.5-VL-7B-Instruct镜像免配置教程&#xff1a;开箱即用的视觉语言推理平台 1. 开篇介绍 你是否遇到过这样的场景&#xff1a;需要快速搭建一个能同时理解图片和文字的AI系统&#xff0c;却被复杂的配置步骤劝退&#xff1f;今天我要介绍的Qwen2.5-VL-7B-Instruct镜像&am…...

节能模式:OpenClaw+nanobot的间歇性任务调度技巧

节能模式&#xff1a;OpenClawnanobot的间歇性任务调度技巧 1. 为什么需要节能模式 去年夏天&#xff0c;我的电费账单突然飙升。排查后发现&#xff0c;那台24小时运行OpenClaw的工作站竟然是耗电大户——它持续调用着本地部署的Qwen大模型&#xff0c;GPU风扇昼夜不停地呼啸…...

Qwen3-ASR-0.6B WebUI实战:中文方言自动识别与结果导出操作

Qwen3-ASR-0.6B WebUI实战&#xff1a;中文方言自动识别与结果导出操作 1. 快速了解Qwen3-ASR-0.6B语音识别模型 Qwen3-ASR-0.6B是一个轻量级但性能强大的语音识别模型&#xff0c;专门为实际应用场景设计。这个模型只有6亿参数&#xff0c;但识别效果却相当出色&#xff0c;…...

静态图训练卡顿、NCCL超时、Graph Break频发?PyTorch 3.0分布式训练高频故障诊断与热修复清单,含12个可复用调试脚本

第一章&#xff1a;PyTorch 3.0静态图分布式训练故障全景认知PyTorch 3.0 引入的静态图编译&#xff08;TorchDynamo Inductor 后端&#xff09;与原生分布式训练&#xff08;如 FSDP、DDP&#xff09;深度耦合后&#xff0c;故障表现呈现多维交织特征&#xff1a;编译期图构建…...

【CDA干货】三个部门三个营收数:1200 万、1150 万、1280 万?企业指标口径不一致,三步破局

财务部报的Q3营收是1200万&#xff0c;运营部那边却是1150万&#xff0c;更离谱的是CEO给投资人看的PPT上写着1280万。这种事儿听起来是不是很离谱&#xff1f;但实际上&#xff0c;数据对不上&#xff0c;这事儿太常见了。表面看是数字打架&#xff0c;实际上是人跟人较劲——…...

提升开发效率:用快马一键生成快速排序多版本性能对比工具

今天在优化一个数据处理模块时&#xff0c;遇到了需要选择合适排序算法的问题。不同数据特征下&#xff0c;快速排序的各种变体表现差异很大&#xff0c;手动测试效率实在太低。于是我用InsCode(快马)平台快速搭建了一个性能对比工具&#xff0c;整个过程比想象中简单很多。 需…...

Genus水平共现网络分析:高效替代OTU的实战指南

1. 为什么需要Genus水平共现网络分析&#xff1f; 做微生物群落研究的朋友们应该都深有体会&#xff0c;OTU/ASV水平的共现网络分析简直就是个时间黑洞。我去年处理一个土壤微生物项目时&#xff0c;2000多个OTU的共现网络跑了整整8个小时&#xff0c;等结果的时候都能看完两集…...

Web开发中前端与Node服务中的信息安全与解决办法

Web开发中前端与Node服务中的信息安全与解决办法 input限制特殊字符和长度 漏洞描述&#xff1a; 永远不要相信用户输入的信息&#xff0c;如常规的注入脚本通过input输入之后被页面执行 整改办法 方法1&#xff1a;对于vue项目中ElementUI的el-input 和 原生input <el-in…...

STM32F103 Bootloader跳转失败?别急着怀疑Boot,先检查你的裸机APP中断向量表

STM32F103 Bootloader跳转失败&#xff1f;别急着怀疑Boot&#xff0c;先检查你的裸机APP中断向量表 当你的STM32F103项目采用HAL库Bootloader搭配裸机应用程序&#xff08;APP&#xff09;时&#xff0c;如果遇到Bootloader能正常启动HAL版本的APP却无法跳转裸机APP的情况&…...

GNSS说第(八)讲---自适应动态导航定位(八)---抗差估计在复杂环境下的应用实践

1. 抗差估计&#xff1a;GNSS定位的"防弹衣" 想象一下你在高楼林立的城市峡谷中打开手机导航&#xff0c;信号时断时续&#xff0c;定位图标像喝醉酒一样到处乱飘——这就是典型的多路径干扰场景。传统最小二乘法就像用普通尺子测量扭曲的橡皮筋&#xff0c;单个异常…...