Проверка времени выбора времени OntimeSet android

Я разрабатываю приложение, которое требует, чтобы пользователь выбрал параметры «Время от до», но проблема, которую я не мог проверить эти два раза, как я хочу избежать, если в первый раз больше, чем во второй раз

@Override
    public void onTimeSet(int id, TimePicker view, int hourOfDay, int minute) {
        String AM_PM = " AM";
        String mm_precede = "";
        if (hourOfDay >= 12) {
            AM_PM = " PM";
            if (hourOfDay >=13 && hourOfDay < 24) {
                hourOfDay -= 12;
            }
            else {
                hourOfDay = 12;
            }
        } else if (hourOfDay == 0) {
            hourOfDay = 12;
        }
        if (minute < 10) {
            mm_precede = "0";
        }

        //Check the started and ended of the an appointment
        sTimeApp.setText(hourOfDay + ":" + mm_precede + minute + AM_PM);
        eTimeApp.setText(hourOfDay + ":" +  mm_precede + minute + AM_PM);
        if (sTimeApp.equals(eTimeApp)){
            Toast.makeText(this, "Error , Time should be different ",Toast.LENGTH_SHORT).show();
            return;
        }else {
            if (id == 3) {
                if (minute <= 9) {
                    sTimeApp.setText(hourOfDay + ":" + mm_precede + minute + AM_PM);
                }
            } else if (id == 4) {
                if (minute <= 9) {
                    eTimeApp.setText(hourOfDay + ":" + mm_precede + minute + AM_PM);
                }

            }
        }

    }
0
0
121
1

Ответы 1

Я бы порекомендовал использовать Joda Time - пользоваться им намного проще. Просто включите это в свой gradle.build для проекта: скомпилировать 'joda-time: joda-time: 2.9.4'

Затем, чтобы убедиться, что время больше, вы можете сделать что-то вроде (заключить обе даты в их индивидуальные даты и время):

//Note the +1 is required if using a calendar instance to get the month(it's 0-11, opposed to standard 1-12). If not, just remove.
DateTime startTime= new DateTime();
startTime.year().setCopy(theYear).monthOfYear().setCopy(theMonth + 1).dayOfMonth().setCopy(theDay).hourOfDay().setCopy(theHour).minuteOfHour(theMinute);

Затем сделайте что-нибудь вроде:

if (startTime.getMilis() > endTime.getMillis())

Другие вопросы по теме