gpt4 book ai didi

Java:如何检查给定时间是否介于两个时间之间?

转载 作者:行者123 更新时间:2023-12-01 07:19:32 25 4
gpt4 key购买 nike

我想检查目标时间是否位于两个给定时间之间,而不考虑使用 Java8 时间的日期。假设开始时间为 "21:30" ,结束时间为 "06:30" ,目标时间为 "03:00" ,所以程序应该返回 true。

    @Test
public void posteNuit()
{
DateTimeFormatter format = DateTimeFormatter.ofPattern("HH:mm");

String s = "21:30";
String e = "06:30";

String t = "03:00";

LocalTime startTime = LocalTime.parse(s, format);
LocalTime endTime = LocalTime.parse(e, format);
LocalTime targetTime = LocalTime.parse(t, format);

if ( targetTime.isBefore(endTime) && targetTime.isAfter(startTime) ) {
System.out.println("Yes! night shift.");
} else {
System.out.println("Not! night shift.");
}
}

最佳答案

您使用的 LocalTime 不存储日期信息,仅存储时间。然后您尝试检查目标时间是否在开始时间之后(03:0021:30 之后)。这种说法是错误的。

您的开始时间应早于结束时间。

如果您需要处理夜类,请尝试以下操作:

    if (startTime.isAfter(endTime)) {
if (targetTime.isBefore(endTime) || targetTime.isAfter(startTime)) {
System.out.println("Yes! night shift.");
} else {
System.out.println("Not! night shift.");
}
} else {
if (targetTime.isBefore(endTime) && targetTime.isAfter(startTime)) {
System.out.println("Yes! without night shift.");
} else {
System.out.println("Not! without night shift.");
}
}

关于Java:如何检查给定时间是否介于两个时间之间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44518534/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com