Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java中的时间间隔检查_Java_Android_Calendar - Fatal编程技术网

java中的时间间隔检查

java中的时间间隔检查,java,android,calendar,Java,Android,Calendar,我想要一些Java代码,根据当前时间告诉我学校什么时候开放 当我在上午9点到下午6点之间调用此方法时,它应该返回“学校开放”,否则它应该在下午6点之后到上午9点之前返回“学校关闭” public Calendar shopStartTime(String msg) { Calendar currentTime = Calendar.getInstance(); Calendar schoolTime = Calendar.getInstance(); Calendar s

我想要一些Java代码,根据当前时间告诉我学校什么时候开放

当我在上午9点到下午6点之间调用此方法时,它应该返回“学校开放”,否则它应该在下午6点之后到上午9点之前返回“学校关闭”

public Calendar shopStartTime(String msg)
{
    Calendar currentTime = Calendar.getInstance();
    Calendar schoolTime = Calendar.getInstance();
    Calendar schoolClosedTime = Calendar.getInstance();
    schoolTime.set(Calendar.HOUR_OF_DAY, 9);
    schoolTime.set(Calendar.MINUTE, 0);
    schoolTime.set(Calendar.SECOND, 0);
    schoolTime.set(Calendar.MILLISECOND, 0);
    schoolClosedTime.set(Calendar.HOUR_OF_DAY, 18);
    schoolClosedTime.set(Calendar.MINUTE, 0);
    schoolClosedTime.set(Calendar.SECOND, 0);
    schoolClosedTime.set(Calendar.MILLISECOND, 0);
    if (schoolTime.compareTo(currentTime) <= 0 && 
       (currentTime.compareTo(schoolClosedTime)>=0))
    {
        // check for time
        Toast.makeText(getSherlockActivity(), "school is closed ", 
            Toast.LENGTH_SHORT).show();
    }
    else 
    {
        Toast.makeText(getSherlockActivity(), " school is open", 
            Toast.LENGTH_SHORT).show();
    }
    return currentTime;
}
公共日历shopStartTime(字符串msg)
{
Calendar currentTime=Calendar.getInstance();
Calendar schoolTime=Calendar.getInstance();
Calendar School ClosedTime=Calendar.getInstance();
学校时间。设置(日历。每天的小时,9);
学校时间。设置(日历。分钟,0);
学校时间。设置(日历秒,0);
学校时间。设置(日历。毫秒,0);
学校关闭时间。设置(日历。每天的小时数,18);
schoolClosedTime.set(Calendar.MINUTE,0);
schooldclosedtime.set(Calendar.SECOND,0);
schoolClosedTime.set(日历毫秒,0);
if(学校时间比较(当前时间)=0))
{
//查看时间
Toast.makeText(getSherlockActivity(),“学校关闭”,
吐司。长度(短)。show();
}
其他的
{
Toast.makeText(getSherlockActivity(),“学校开放”,
吐司。长度(短)。show();
}
返回时间;
}
但是代码不起作用,因为它总是返回相同的结果。如何测试一个时间是否介于一天中的其他两个时间之间?

检查18小时: (或者别的什么)

您只需要一个日历

检查18小时: (或者别的什么)

您只需要一个日历

阅读javadocs

if (currentTime.after(schoolTime) && currentTime.before(schoolClosedTime)) {
    // school is open
} else {
    // school is closed
}
阅读javadocs

if (currentTime.after(schoolTime) && currentTime.before(schoolClosedTime)) {
    // school is open
} else {
    // school is closed
}

除了您使用的
Calendar
,另一个简单的方法是:

private boolean inRange(Date now) throws ParseException {
    final Date start = new SimpleDateFormat("HH.mm.ss").parse("09.00.00");
    final Date end = new SimpleDateFormat("HH.mm.ss").parse("18.00.00");
    return now.after(start)&& now.before(end);
}

您也可以使用的
before()
after()

除了您使用的
Calendar
之外,另一种简单的方法是:

private boolean inRange(Date now) throws ParseException {
    final Date start = new SimpleDateFormat("HH.mm.ss").parse("09.00.00");
    final Date end = new SimpleDateFormat("HH.mm.ss").parse("18.00.00");
    return now.after(start)&& now.before(end);
}

您也可以使用的
before()
after()

它不应该是:“…&¤tTime。与(schoolClosedTime)相比,我尝试了两种方法,结果是一样的。它不应该是:”…&&我试了两种方法,结果都一样。