你好朋友我从时间选择器对话框设置时间,所以我想检查这个时间是否在特定范围时间之间。
我的时间范围是上午11:30到晚上10:00
所以我想检查我的输入时间是否在上午11:30到晚上10:00之间。
我的代码如下。
Calendar mCalendarOpeningTime;
Calendar mCalendarClosingTime;
Calendar finalTime;
int hour,min;
private TimePickerDialog.OnTimeSetListener timePickerListener = new TimePickerDialog.OnTimeSetListener() {
public void onTimeSet(TimePicker view, int selectedHour,
int selectedMinute) {
hour = selectedHour;
min = selectedMinute;
finalTime = Calendar.getInstance();
finalTime.set(Calendar.HOUR_OF_DAY, selectedHour);
finalTime.set(Calendar.MINUTE, selectedMinute);
mStringGetTime = String.valueOf(DateFormat.format("h:mm aa",finalTime));
}
};
我将开放时间和结束时间值设置如下
mCalendarOpeningTime.set(11,30);
mCalendarClosingTime.set(10,00);
在我的提交按钮中,点击我设置以下代码
if(finalTime.after(mCalendarOpeningTime) && finalTime.before(mCalendarClosingTime))
{
System.out.println("Your time is in range");
}
else
{
System.out.println("Your time is not in range");
}
因此,当我提交时,每次打印信息为您的时间不在范围内任何想法我该怎么解决?
答案 0 :(得分:3)
为什么不将它们用作Calendar
实例,而不是mCalendarOpeningTime
和mCalendarClosingTime
使用Date
个实例?这将更有效,并且可能会使您的代码正常运行。
编辑: - 确定..忘记上面写的是什么..这是废话..:P跟随将要实现你想要实现的代码: -
首先..设置mCalendarOpeningTime
和mCalendarClosingTime
之类的内容并在onCreate()
或onStart()
中调用此方法,以便将值分配给相应的“时间” “在你开始使用它们之前: -
private void setOpeningAndClosingTimes() {
mCalendarOpeningTime = Calendar.getInstance();
mCalendarOpeningTime.set(Calendar.HOUR, 11);
mCalendarOpeningTime.set(Calendar.MINUTE, 30);
mCalendarClosingTime.set(Calendar.AM_PM, Calendar.AM);
mCalendarClosingTime = Calendar.getInstance();
mCalendarClosingTime.set(Calendar.HOUR, 10);
mCalendarClosingTime.set(Calendar.MINUTE, 00);
mCalendarClosingTime.set(Calendar.AM_PM, Calendar.PM);
}
你的比较已经足够了。试试这个,让我知道它是否有用......
答案 1 :(得分:1)
尝试以这种方式实现您的代码!
import java.util.Calendar;
public class CompareTimestamp
{
public static void main(String args[])
{
Calendar firstLimit= Calendar.getInstance();
firstLimit.set(Calendar.HOUR, 20);
firstLimit.set(Calendar.MINUTE, 30);
firstLimit.set(Calendar.SECOND, 30);
Calendar secondLimit= Calendar.getInstance();
secondLimit.set(Calendar.HOUR, 21);
secondLimit.set(Calendar.MINUTE, 30);
secondLimit.set(Calendar.SECOND, 30);
if(finalTime .after(firstLimit)&&finalTime .before(secondLimit))
{
System.out.println("Its dinner time between 8:30 pm and 9:30pm");
}
else
{
System.out.println("No dinner right now");
}
}
}
您可以询问是否有任何进一步的疑问:)