日期:2014-05-17  浏览次数:20697 次

判断当前时间是否在设定时间范围
例如:01:00 - 19:00 这个简单、
有个问题很头疼,考虑跨天问题。例如:01:40 - 01:00.
求一个灵活性好的例子。例子给三个参数,第一个参数当前时间,第二个参数开始时间,第三个参数结束时间。然后返回真假、
大神跪求了!

------解决方案--------------------
可以考虑先判断后面那个是否小于前面个时间,在进行是否多加24小时的处理
------解决方案--------------------
写了个js的,Java同理
JScript code

function test(curTime,startTime,endTime){
    if(endTime>startTime){
        return (curTime>startTime && curTime<endTime);
    }else{
        return !(curTime>endTime && curTime<startTime);
    }
}

alert(test("10:12","02:00","19:00"));
alert(test("10:12","20:00","19:00"));
alert(test("10:12","14:00","01:00"));

------解决方案--------------------
转换成格林威治时间试试
------解决方案--------------------
先判断结束时间是否小于开始时间,如果小于,先把结束时间加上24小时,然后再判断当前时间是否在区间里
for example

Java code
public boolean between(String curentTime, String startTime, String endTime) {
    if (startTime.compareTo(endTime) > 0) {如果开始时间大于结束时间,结束时间+24
        endTime = String.format("%d%s", Integer.valueOf(endTime.substring(0,2))+24, endTime.substring(2)); 
    }

    return (currentTime.compareTo(startTime) >= 0 &&
            currentTime.compareTo(endTime) <= 0);
}