1

I would like to notify the user if the user selects time lesser than the current one,I do not want to show it on time picker UI,only notify the user. Following is my current code.

     final int mHour, mMinute;
        final Calendar c = Calendar.getInstance();
        mHour = c.get(Calendar.HOUR_OF_DAY);
        mMinute = c.get(Calendar.MINUTE);
        hour = c.get(Calendar.HOUR);
//if()
        // Launch Time Picker Dialog
        TimePickerDialog timePickerDialog = new TimePickerDialog(mainActivity, new TimePickerDialog.OnTimeSetListener() {
            @Override
            public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
               if (hourOfDay >= mHour) {
                    String strTime = hourOfDay + ":" + minute + ":00";
                    renewalTime.setText(strTime);
                } else {
                    Toast.makeText(mainActivity, "Time cannot be lesser than current time", Toast.LENGTH_LONG).show();
                }

            }
        }, mHour, mMinute, false);

        timePickerDialog.show();

    }

so currently what is happening is if the current time is 12 PM or onwards, it takes values as 12,1 and so on and for 11 am it takes 23 and so on..so how to compare them in either case ? Thank you.

GianhTran
  • 3,443
  • 2
  • 22
  • 42
Pritish
  • 1,284
  • 1
  • 19
  • 42

2 Answers2

0
public static boolean isTimeWith_in_Interval(String valueToCheck, String endTime, String startTime) {
    boolean isBetween = false;
    try {
        Date time1 = new SimpleDateFormat("HH:mm:ss").parse(endTime);

        Date time2 = new SimpleDateFormat("HH:mm:ss").parse(startTime);

        Date d = new SimpleDateFormat("HH:mm:ss").parse(valueToCheck);

        if (time1.after(d) && time2.before(d)) {
            isBetween = true;
        }
    } catch (ParseException e) {
        e.printStackTrace();
    }
    return isBetween;
}
0

Try this Code

  public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
            Calendar datetime = Calendar.getInstance();
            Calendar c = Calendar.getInstance();
            datetime.set(Calendar.HOUR_OF_DAY, hourOfDay);
            datetime.set(Calendar.MINUTE, minute);
            if(datetime.getTimeInMillis() > c.getTimeInMillis()){
    //            it's after current
            }else{
    //            it's before current'
            }
        }
Vishal Sharma
  • 1,051
  • 2
  • 8
  • 15