Диалоговое окно выбора даты Android, чтобы выбрать только следующие 10 лет

Android DatePickerdialog выбрать следующий 10 year date только.

У меня есть диалог выбора даты, в котором я хочу выбрать только future date (следующие 10 лет) и помешать выбрать прошедшую дату. Ниже приведен мой код, который не позволяет выбирать прошедшую дату, но я хочу показать только следующую 10-летнюю дату.

try {
    dateFormatter = new SimpleDateFormat("MM/yy", Locale.US);
    edtMonth.setOnClickListener(this);

    Calendar newCalendar = Calendar.getInstance();

    datePickerDialog = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {

        public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
            Calendar newDate = Calendar.getInstance();
            newDate.set(year+2, monthOfYear, dayOfMonth);

            edtMonth.setText(dateFormatter.format(newDate.getTime()));
        }

    },newCalendar.get(Calendar.YEAR), newCalendar.get(Calendar.MONTH), newCalendar.get(Calendar.DAY_OF_MONTH));

    // it is used for prevent old date selection.
    datePickerDialog.getDatePicker().setMinDate(System.currentTimeMillis() - 1000);
    datePickerDialog.getDatePicker().setMinDate(System.currentTimeMillis()+2);

} catch (Exception e) {
    e.printStackTrace();
}

Заранее спасибо.

2 ответа

Для отображения только 10 лет с сегодняшнего дня вы должны установить свой MinDate в System.currentTimeMillis() и установить MaxDate в CureentTimeMillis + Next 10 Year Millis и добавьте это значение к вашему MaxDate как ниже путь.

к setMinDate Сегодня.

  datePickerDialog.getDatePicker().setMinDate(System.currentTimeMillis());

к setMaxDate Сегодня.

datePickerDialog.getDatePicker().setMaxDate(System.currentTimeMillis() + 10 year Millis);

Попробуй это

     Calendar cal = Calendar.getInstance();
     cal.setTime(new Date());
     cal.add(Calendar.YEAR, 10);
     Date newDate = cal.getTime();
     datePicker.getDatePicker().setMinDate(System.currentTimeMillis());
     datePicker.getDatePicker().setMaxDate(newDate.getTime());
Другие вопросы по тегам