Java:如何检查给定的时间是否介于两次之间?
我想检查目标时间是否在两个给定时间之间,而不考虑使用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.");
}
}
# 1 楼答案
在您的场景中,如果startTime>;endTime无论目标是什么,你都会返回true
因此,请更新if语句:
# 2 楼答案
您使用的LocalTime不存储日期信息,只存储时间。 然后您尝试检查目标时间是否在开始时间之后(
03:00
在21:30
之后)。这句话是假的您的开始时间应该早于结束时间
如果您需要上夜班,请尝试以下操作: