From 264481532bfc903ef35445385137a4c1ad465166 Mon Sep 17 00:00:00 2001 From: 6tail <6tail@6tail.cn> Date: Wed, 5 Mar 2025 21:02:53 +0800 Subject: [PATCH] =?UTF-8?q?v1.7.2=20=E4=BF=AE=E5=A4=8D=E6=AF=8F=E6=97=A5?= =?UTF-8?q?=E5=AE=9C=E5=BF=8C=E9=94=99=E8=AF=AF=EF=BC=9B=E6=9B=B4=E6=96=B0?= =?UTF-8?q?2018=E4=B9=8B=E5=90=8E=E7=9A=84=E2=96=B3T=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 7 +++ README.md | 2 +- README_EN.md | 2 +- pom.xml | 2 +- .../java/com/nlf/calendar/util/LunarUtil.java | 2 +- .../com/nlf/calendar/util/ShouXingUtil.java | 6 +- src/test/java/test/JieQiTest.java | 58 ++++++++++--------- src/test/java/test/LunarTest.java | 21 +++++++ 8 files changed, 68 insertions(+), 32 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3d217f8..0e18cef 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,9 +19,16 @@ 1. 修复九星错别字。 2. 优化每日宜忌算法。 3. 去除每日宜忌的重复项。 +> 不建议使用该版本 ## [1.7.0] - 2025-02-12 1. 修复每日宜忌错别字。 +> 不建议使用该版本 ## [1.7.1] - 2025-02-27 1. 修复每日宜忌错误。 +> 不建议使用该版本 + +## [1.7.2] - 2025-03-05 +1. 修复每日宜忌错误。 +2. 更新2018之后的△T参数。 diff --git a/README.md b/README.md index 44c0cbe..7dae443 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ lunar是一款无第三方依赖的公历(阳历)、农历(阴历、老黄历) cn.6tail lunar - 1.7.1 + 1.7.2 ``` diff --git a/README_EN.md b/README_EN.md index c2c1f35..7a39371 100644 --- a/README_EN.md +++ b/README_EN.md @@ -12,7 +12,7 @@ lunar is a calendar library for Solar and Chinese Lunar. cn.6tail lunar - 1.7.1 + 1.7.2 ``` diff --git a/pom.xml b/pom.xml index 30a4d8d..d491112 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ cn.6tail lunar jar - 1.7.1 + 1.7.2 ${project.groupId}:${project.artifactId} https://github.com/6tail/lunar-java a calendar library for Solar and Chinese Lunar diff --git a/src/main/java/com/nlf/calendar/util/LunarUtil.java b/src/main/java/com/nlf/calendar/util/LunarUtil.java index 0d6d681..3a6a855 100644 --- a/src/main/java/com/nlf/calendar/util/LunarUtil.java +++ b/src/main/java/com/nlf/calendar/util/LunarUtil.java @@ -830,7 +830,7 @@ public class LunarUtil{ Matcher matcher = Pattern.compile(day + "=(.[^;]+?);").matcher(DAY_YI_JI); while (matcher.find()) { String v = matcher.group(1); - if (Pattern.compile(month + "[\\w{2}]*:").matcher(v).find()) { + if (Pattern.compile(month + "(?:\\w{2})*:").matcher(v).find()) { matcher = Pattern.compile(pattern).matcher(v); if (matcher.find()) { String s = matcher.group(1); diff --git a/src/main/java/com/nlf/calendar/util/ShouXingUtil.java b/src/main/java/com/nlf/calendar/util/ShouXingUtil.java index 3755c3f..01cffdb 100644 --- a/src/main/java/com/nlf/calendar/util/ShouXingUtil.java +++ b/src/main/java/com/nlf/calendar/util/ShouXingUtil.java @@ -56,8 +56,10 @@ public class ShouXingUtil { 2000, 63.87, 0.1, 0, 0, 2005, 64.7, 0.21, 0, 0, 2012, 66.8, 0.22, 0, 0, - 2018, 69.0, 0.36, 0, 0, - 2028, 72.6 + 2018, 73.6, 0.40, 0, 0, + 2021, 78.1, 0.44, 0, 0, + 2024, 83.1, 0.55, 0, 0, + 2028, 98.6 }; private static final double[] XL0 = { 10000000000D, diff --git a/src/test/java/test/JieQiTest.java b/src/test/java/test/JieQiTest.java index cc67d98..067ce57 100644 --- a/src/test/java/test/JieQiTest.java +++ b/src/test/java/test/JieQiTest.java @@ -21,30 +21,30 @@ public class JieQiTest { Map jieQi = new HashMap(){ private static final long serialVersionUID = 1L; { - put("冬至","2021-12-21 23:59:18"); - put("小寒","2022-01-05 17:14:03"); - put("大寒","2022-01-20 10:39:05"); - put("立春","2022-02-04 04:50:45"); - put("雨水","2022-02-19 00:43:00"); - put("惊蛰","2022-03-05 22:43:43"); - put("春分","2022-03-20 23:33:24"); - put("清明","2022-04-05 03:20:13"); - put("谷雨","2022-04-20 10:24:16"); - put("立夏","2022-05-05 20:25:56"); - put("小满","2022-05-21 09:22:35"); - put("芒种","2022-06-06 00:25:47"); - put("夏至","2022-06-21 17:13:50"); - put("小暑","2022-07-07 10:37:59"); - put("大暑","2022-07-23 04:06:58"); - put("立秋","2022-08-07 20:29:07"); - put("处暑","2022-08-23 11:16:09"); - put("白露","2022-09-07 23:32:17"); - put("秋分","2022-09-23 09:03:41"); - put("寒露","2022-10-08 15:22:26"); - put("霜降","2022-10-23 18:35:41"); - put("立冬","2022-11-07 18:45:28"); - put("小雪","2022-11-22 16:20:28"); - put("大雪","2022-12-07 11:46:15"); + put("冬至","2021-12-21 23:59:09"); + put("小寒","2022-01-05 17:13:54"); + put("大寒","2022-01-20 10:38:56"); + put("立春","2022-02-04 04:50:36"); + put("雨水","2022-02-19 00:42:50"); + put("惊蛰","2022-03-05 22:43:34"); + put("春分","2022-03-20 23:33:15"); + put("清明","2022-04-05 03:20:03"); + put("谷雨","2022-04-20 10:24:07"); + put("立夏","2022-05-05 20:25:47"); + put("小满","2022-05-21 09:22:25"); + put("芒种","2022-06-06 00:25:38"); + put("夏至","2022-06-21 17:13:40"); + put("小暑","2022-07-07 10:37:49"); + put("大暑","2022-07-23 04:06:49"); + put("立秋","2022-08-07 20:28:57"); + put("处暑","2022-08-23 11:15:59"); + put("白露","2022-09-07 23:32:07"); + put("秋分","2022-09-23 09:03:31"); + put("寒露","2022-10-08 15:22:16"); + put("霜降","2022-10-23 18:35:31"); + put("立冬","2022-11-07 18:45:18"); + put("小雪","2022-11-22 16:20:18"); + put("大雪","2022-12-07 11:46:04"); } }; @@ -183,7 +183,7 @@ public class JieQiTest { @Test public void test8() { Lunar lunar = Lunar.fromYmd(2050, 12, 1); - Assert.assertEquals("2050-12-07 06:41:13", lunar.getJieQiTable().get("DA_XUE").toYmdHms()); + Assert.assertEquals("2050-12-07 06:40:53", lunar.getJieQiTable().get("DA_XUE").toYmdHms()); } @Test @@ -197,7 +197,13 @@ public class JieQiTest { @Test public void test10() { Lunar lunar = Solar.fromYmd(2023, 6, 1).getLunar(); - Assert.assertEquals("2022-12-22 05:48:11", lunar.getJieQiTable().get("冬至").toYmdHms()); + Assert.assertEquals("2022-12-22 05:48:01", lunar.getJieQiTable().get("冬至").toYmdHms()); + } + + @Test + public void test11() { + Lunar lunar = Solar.fromYmd(2025, 3, 5).getLunar(); + Assert.assertEquals("2025-03-05 16:07:02", lunar.getJieQiTable().get("惊蛰").toYmdHms()); } } diff --git a/src/test/java/test/LunarTest.java b/src/test/java/test/LunarTest.java index c51d490..c225991 100644 --- a/src/test/java/test/LunarTest.java +++ b/src/test/java/test/LunarTest.java @@ -657,4 +657,25 @@ public class LunarTest { Assert.assertEquals("[开市, 立券, 理发, 作灶]", lunar.getDayJi().toString()); } + @Test + public void test97() { + Lunar lunar = Solar.fromYmd(2025, 3, 5).getLunar(); + Assert.assertEquals("[破屋, 坏垣, 求医, 治病]", lunar.getDayYi().toString()); + Assert.assertEquals("[诸事不宜]", lunar.getDayJi().toString()); + } + + @Test + public void test98() { + Lunar lunar = Solar.fromYmd(2025, 5, 3).getLunar(); + Assert.assertEquals("[祭祀, 祈福, 求嗣, 斋醮, 沐浴, 纳畜, 入殓, 破土, 安葬]", lunar.getDayYi().toString()); + Assert.assertEquals("[移徙, 入宅, 嫁娶, 出行, 安床]", lunar.getDayJi().toString()); + } + + @Test + public void test99() { + Lunar lunar = Solar.fromYmd(2025, 5, 4).getLunar(); + Assert.assertEquals("[纳采, 祭祀, 祈福, 求嗣, 斋醮, 出行, 起基, 盖屋, 定磉, 安门, 入殓, 安葬]", lunar.getDayYi().toString()); + Assert.assertEquals("[嫁娶, 开市, 纳财, 出火]", lunar.getDayJi().toString()); + } + }