使用Java

时间:2017-07-26 04:19:20

标签: java java-7

我有一个方法,它接受两个时间字符串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()));
    }
}

1 个答案:

答案 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));

我会留给你找出"之前"比较;)