, startTime endTime (.. endTime startTime). , "" , , , .
public boolean isWithinInterval(LocalTime start, LocalTime end, LocalTime time) {
if (start.isAfter(end)) {
return !isWithinInterval(end, start, time);
}
return start.compareTo(time) <= 0 &&
time.compareTo(end) < 0;
}
, , , , , ( ), . , :
public boolean isWithinInterval(LocalTime start, LocalTime end, LocalTime time) {
if (start.isAfter(end)) {
// Return true if the time is after (or at) start, *or* it before end
return time.compareTo(start) >= 0 ||
time.compareTo(end) < 0;
} else {
return start.compareTo(time) <= 0 &&
time.compareTo(end) < 0;
}
}
( , compareTo, , . .)
, :
import org.joda.time.LocalTime;
public class Test {
public static void main(String[] args) {
LocalTime morning = new LocalTime(6, 0, 0);
LocalTime evening = new LocalTime(18, 0, 0);
LocalTime noon = new LocalTime(12, 0, 0);
LocalTime midnight = new LocalTime(0, 0, 0);
System.out.println(isWithinInterval(morning, evening, noon));
System.out.println(
isWithinInterval(morning, evening, midnight));
System.out.println(
isWithinInterval(evening, morning, noon));
System.out.println(
isWithinInterval(evening, morning, midnight));
}
public static boolean isWithinInterval(LocalTime start,
LocalTime end,
LocalTime time) {
if (start.isAfter(end)) {
return time.compareTo(start) >= 0 ||
time.compareTo(end) < 0;
} else {
return start.compareTo(time) <= 0 &&
time.compareTo(end) < 0;
}
}
}