如何在指定范围内检查时间?

时间:2015-07-14 10:33:50

标签: java

我允许用户为我在Activity中使用TimePicker选择时间,并以此格式获取结果:03:51 PM

现在我有时间范围,例如 - 07:00 PM to 10:00 PM

如果用户选择的时间与时间范围内定义的时间匹配,则需要显示消息"可能是危险"

所以最后我想知道如何在时间范围内检查选定的时间?

我已经完成了这个Link

2 个答案:

答案 0 :(得分:1)

使用以下代码实现它...

TimePickerDialog.OnTimeSetListener lisTime = new TimePickerDialog.OnTimeSetListener() {

            @Override 
            public void onTimeSet(TimePicker view, int hourOfDay, int minute) { 
                // TODO Auto-generated method stub 
               if((hourOfDay >= 19 && hourOfDay < 22)  || (hourOfDay == 22 && minute == 0))
               {

                    // you can code here time is between 7PM to 10PM
               }
               else
               {
                    // continition not satiesfied
               }


            } 
        }; 

答案 1 :(得分:0)

将两个字符串转换为Date对象(也是时间对象),然后创建一个新的Date对象。

这将包含当前时间。 使用Date.before()Date.after()方法确定您是否在时间间隔内。

public static final String inputFormat = "HH:mm";

private Date date;
private Date dateCompareOne;
private Date dateCompareTwo;

private String compareStringOne = "9:45";
private String compareStringTwo = "1:45";

SimpleDateFormat inputParser = new SimpleDateFormat(inputFormat, Locale.US);

private void compareDates(){
    Calendar now = Calendar.getInstance();

    int hour = now.get(Calendar.HOUR);
    int minute = now.get(Calendar.MINUTE);

    date = parseDate(hour + ":" + minute);
    dateCompareOne = parseDate(compareStringOne);
    dateCompareTwo = parseDate(compareStringTwo);

    if ( dateCompareOne.before( date ) && dateCompareTwo.after(date)) {
        //yada yada
    }
}

private Date parseDate(String date) {

    try {
        return inputParser.parse(date);
    } catch (java.text.ParseException e) {
        return new Date(0);
    }
}