Android日期选择器对话框仅选择下一个10年日期

时间:2016-07-07 05:53:50

标签: android date datetime android-datepicker

Android DatePicker dialog仅选择下一个10 year date

我有datepicker对话框,我只想选择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 个答案:

答案 0 :(得分: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);

答案 1 :(得分:1)

试试这个

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