java中的时间间隔检查
我想要一些Java代码,根据当前时间告诉我学校什么时候开放 当我在上午9点到下午6点之间调用此方法时,它应该返回“学校开放”,否则它应该在下午6点之后到上午9点之前返回“学校关闭”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
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)相比,我尝试了两种方法,结果是一样的。它不应该是:”…&&我试了两种方法,结果都一样。