检查输入时间在android中的两个时间范围之间

时间:2013-11-29 04:54:50

标签: android timepicker

你好朋友我从时间选择器对话框设置时间,所以我想检查这个时间是否在特定范围时间之间。

我的时间范围是上午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");
                    }

因此,当我提交时,每次打印信息为您的时间不在范围内任何想法我该怎么解决?

2 个答案:

答案 0 :(得分:3)

为什么不将它们用作Calendar实例,而不是mCalendarOpeningTimemCalendarClosingTime使用Date个实例?这将更有效,并且可能会使您的代码正常运行。

编辑: - 确定..忘记上面写的是什么..这是废话..:P跟随将要实现你想要实现的代码: -

首先..设置mCalendarOpeningTimemCalendarClosingTime之类的内容并在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");
    }

  }
  }

您可以询问是否有任何进一步的疑问:)