我有一个方法,它接受两个时间字符串Eg:t1 - 09:00和t2 - 15:00的参数以及一个Date参数。
我想实现一个解决方案,其中从日期开始的给定时间是否在或超过所通过的时间范围。
提前致谢
public class CheckTime {
private boolean isOpen;
public boolean isValid(String time1, String time2, Date date) {
----Logic goes here------
return isOpen;
}
public static void main(String[] args) {
new CheckTime().isValid("09:00","15:00",
new Date(System.currentTimeMillis()));
}
}
答案 0 :(得分:1)
我要做的第一件事就是将值变为某种可以轻松比较的格式。在我看来,这是使用Java 8的Time API(或JodaTime或此类API,如果您仍然使用早期版本的Java)
Date now = new Date();
LocalDateTime ldt = LocalDateTime.ofInstant(now.toInstant(), ZoneId.systemDefault());
String startValue = "09:00";
LocalTime startTime = LocalTime.parse(startValue, DateTimeFormatter.ISO_LOCAL_TIME);
由此,比较值
变得简单System.out.println(ldt.toLocalTime().equals(startTime) ||
ldt.toLocalTime().isAfter(startTime));
我会留给你找出"之前"比较;)