Android: как сравнить текущее время с предыдущим в таймере?

Я хотел бы уведомить пользователя, если пользователь выбирает время меньшее, чем текущее, я не хочу показывать его на пользовательском интерфейсе выбора времени, только уведомляю пользователя. Ниже приведен мой текущий код.

     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();

    }

Итак, в настоящее время происходит следующее: если текущее время - 12 часов вечера или больше, оно принимает значения как 12,1 и так далее, а для 11 часов утра - 23 и так далее… Итак, как их сравнить в любом случае? Спасибо.


person Pritish    schedule 13.07.2018    source источник
comment
Добавьте час и минуту и ​​сравните как - time ‹c.getTime () // время меньше текущего   -  person DarShan    schedule 13.07.2018
comment
@DarShan Вы имеете в виду час + мин?   -  person Pritish    schedule 13.07.2018
comment
да, попробуй это   -  person DarShan    schedule 13.07.2018
comment
@Pritish, значит, вы хотите отключить будущие даты в сборщике времени?   -  person Sagar Zala    schedule 13.07.2018
comment
Я хотел бы предложить две вещи: лучший способ - это сравнить две даты, когда вы конвертируете их в миллисекунды. Вы можете установить секунды для обеих дат на ноль, если это не приложение с ракетостроением.   -  person deadfish    schedule 13.07.2018
comment
@SagarZala нет, просто показывать тост, если пользователь выбирает предыдущую дату   -  person Pritish    schedule 13.07.2018


Ответы (1)


Попробуйте этот код

  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'
            }
        }
person Vishal Sharma    schedule 13.07.2018