两个TimePickers比较

时间:2017-06-03 15:18:47

标签: android alarmmanager datetimepicker android-jobscheduler

所以我允许用户选择两个日期开始和结束时间并连接到通知方法,该方法将检查当前时间是否在他选择之间。但是,比较似乎没有返回正确的结果。 以下是BrodcatRecevier

中的方法
    public void CheackAlarmAllow(){
    SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm");
    FinalTime = Calendar.getInstance();
    FinalTime.get(Calendar.HOUR);
    FinalTime.get(Calendar.MINUTE);
    FinalTime.get(Calendar.SECOND);
    FinalTimeS = dateFormat.format (FinalTime.getTime());


    DatabaseHelper db = new DatabaseHelper(this);
    ProfileHelper response = db.getNotification();

    try {
        FirstTime = dateFormat.parse (response.StartTimePicker);
        SecondTime = dateFormat.parse (response.EndimePicker);
        FinalTimeD = dateFormat.parse (FinalTimeS);


    }catch (ParseException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }


    if(FinalTimeD.after(FirstTime)&& FinalTime.before(SecondTime))
    {
        Log.w("Not Allowed","Working");
    }
    else
    {
        Log.w("FirstTime", String.valueOf(FirstTime));
        Log.w("Second", String.valueOf(SecondTime));
        Log.w("Final", String.valueOf(FinalTimeD));
        Log.w(" Allowed","Working");
        createNotification();
    }
}

此处日志返回。

06-03 08:14:10.597 30078-7708/com.ahmad.Project W/FirstTime: Thu Jan 01 
03:00:00 MST 1970

06-03 08:14:10.598 30078-7708/com.ahmad. Project W/Second: Thu Jan 01 
10:00:00 MST 1970

06-03 08:14:10.598 30078-7708/com.ahmad. Project W/Final: Thu Jan 01 
08:14:00 MST 1970

06-03 08:14:10.598 30078-7708/com.ahmad. Project W/ Allowed: Working

1 个答案:

答案 0 :(得分:0)

您的检查if(FinalTimeD.after(FirstTime)&& FinalTime.before(SecondTime))是否失败,因为FirstTimeSeconfTime类型为DateCalendar.after()仅在通过的参数为true时才会返回Calendar类型Calender.after()
来自Calendar calendar = Calendar.getInstance(); Date newDate = calendar.setTime(date); 的{​​{3}}: -

  

public boolean after(Object when)返回此Calendar是否存在   表示指定Object表示的时间之后的时间。   这种方法相当于:
  compareTo(when)> 0当且仅当when是Calendar实例时。否则,该方法返回false。

编辑(从以下评论中复制代码段以获得完整性)

x = list(range(14))
for n in x:
    print(n)