判断目标时间是否在优惠时间段内

This commit is contained in:
Guoqs
2025-02-28 09:49:11 +08:00
parent 29bb368430
commit 62c544d69f

View File

@@ -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);
}
}
}