Проверка выбора времени OntimeSet для Android - PullRequest
0 голосов
/ 11 сентября 2018

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

@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);
                }

            }
        }

    }

1 Ответ

0 голосов
/ 11 сентября 2018

Я бы рекомендовал использовать 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())
...