检查时间是否在Android中的时间范围之间

Jef*_*Jef 4 java time android range

我正在尝试检查当前时间是否在指定范围内。我做了一个方法来检查这个,但它不起作用。我不确定为什么不这样做以及如何让它工作。

private Calendar fromTime;
private Calendar toTime;
private Calendar currentTime;

public boolean checkTime(String time) {
    try {
        String[] times = time.split("-");
        String[] from = times[0].split(":");
        String[] until = times[1].split(":");

        fromTime = Calendar.getInstance();
        fromTime.set(Calendar.HOUR, Integer.valueOf(from[0]));
        fromTime.set(Calendar.MINUTE, Integer.valueOf(from[1]));

        toTime= Calendar.getInstance();
        toTime.set(Calendar.HOUR, Integer.valueOf(until[0]));
        toTime.set(Calendar.MINUTE, Integer.valueOf(until[1]));

        currentTime = Calendar.getInstance();       
        currentTime.set(Calendar.HOUR, Calendar.HOUR_OF_DAY);
        currentTime.set(Calendar.MINUTE, Calendar.MINUTE);
        if(currentTime.after(fromTime) && currentTime.before(toTime)){
            return true;
        }
     } catch (Exception e) {
         return false;
     }
    return false;
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试像这样测试它:

if(checkTime("06:00-19:00")){
    inRange = true;
}
Run Code Online (Sandbox Code Playgroud)

NPE 消失了,但是如果时间在fromTimeto的范围内,它仍然不会计算toTime。很感谢任何形式的帮助!

Jor*_*sys 5

初始化变量并将方法的返回类型更改为布尔值。

private Calendar fromTime;
private Calendar toTime;
private Calendar currentTime;

public boolean checkTime(String time) {
try {
    String[] times = time.split("-");
    String[] from = times[0].split(":");
    String[] until = times[1].split(":");

    fromTime = Calendar.getInstance();
    fromTime.set(Calendar.HOUR_OF_DAY, Integer.valueOf(from[0]));
    fromTime.set(Calendar.MINUTE, Integer.valueOf(from[1]));

    toTime = Calendar.getInstance();
    toTime.set(Calendar.HOUR_OF_DAY, Integer.valueOf(until[0]));
    toTime.set(Calendar.MINUTE, Integer.valueOf(until[1]));

    currentTime = Calendar.getInstance();
    currentTime.set(Calendar.HOUR_OF_DAY, Calendar.HOUR_OF_DAY);
    currentTime.set(Calendar.MINUTE, Calendar.MINUTE);
    if(currentTime.after(fromTime) && currentTime.before(toTime)){
        return true;
    }
    } catch (Exception e) {
        return false;
    }
    return false;
}
Run Code Online (Sandbox Code Playgroud)