From 62c544d69fe879204235c0b18ddf2c14c4d9dc1a Mon Sep 17 00:00:00 2001 From: Guoqs <123@jsowell.com> Date: Fri, 28 Feb 2025 09:49:11 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=A4=E6=96=AD=E7=9B=AE=E6=A0=87=E6=97=B6?= =?UTF-8?q?=E9=97=B4=E6=98=AF=E5=90=A6=E5=9C=A8=E4=BC=98=E6=83=A0=E6=97=B6?= =?UTF-8?q?=E9=97=B4=E6=AE=B5=E5=86=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/jsowell/common/util/DateUtils.java | 37 +++++++++++++++++-- 1 file changed, 33 insertions(+), 4 deletions(-) diff --git a/jsowell-common/src/main/java/com/jsowell/common/util/DateUtils.java b/jsowell-common/src/main/java/com/jsowell/common/util/DateUtils.java index d4e06a6ed..6ed24ef93 100644 --- a/jsowell-common/src/main/java/com/jsowell/common/util/DateUtils.java +++ b/jsowell-common/src/main/java/com/jsowell/common/util/DateUtils.java @@ -1135,10 +1135,39 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils { return lastDayOfMonth.format(formatter); } - public static void main(String[] args) { - String dateString = "2024-09-20 13:35:56"; - long minutesPassed = minutesSince(dateString); - System.out.println(minutesPassed); + /** + * 判断目标时间是否在优惠时间段内 + * @param startStr 开始时间(HH:mm) + * @param endStr 结束时间(HH:mm) + * @param targetStr 目标时间(HH:mm:ss) + * @return 是否在优惠时段 + */ + public static boolean isInDiscountPeriod(String startStr, String endStr, String targetStr) { + LocalTime start = LocalTime.parse(startStr); + LocalTime end = LocalTime.parse(endStr); + LocalTime target = LocalTime.parse(targetStr); + return isInDiscountPeriod(start, end, target); + } + + /** + * 判断目标时间是否在优惠时间段内 + * @param start 开始时间(HH:mm) + * @param end 结束时间(HH:mm) + * @param target 目标时间(HH:mm:ss) + * @return 是否在优惠时段 + */ + public static boolean isInDiscountPeriod(LocalTime start, LocalTime end, LocalTime target) { + // 开始时间等于结束时间即判定为全天 + if (start.equals(end)) { + return true; + } + if (start.isAfter(end)) { + // 跨天判断逻辑 + return !target.isBefore(start) || target.isBefore(end); + } else { + // 普通时段判断逻辑 + return !target.isBefore(start) && target.isBefore(end); + } } }