CLOSED - Android DatePicker限制最大日期

时间:2016-08-16 08:28:46

标签: android date android-datepicker

我正在尝试在android中创建一个DatePicker来选择用户的出生日期。我想以从datepicker中选择的年龄大于18岁的方式设置年份。例如。如果有人点击了datetimepicker对话框,他/她应该将最大年份视为1998年,因为它相当于18年。

我的代码如下:

            dobDatePicker = new DatePickerDialog(getContext(), AlertDialog.THEME_HOLO_LIGHT, new DatePickerDialog.OnDateSetListener() {
            public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
                Calendar newDate = Calendar.getInstance();
                newDate.set(year, monthOfYear, dayOfMonth);
                candidateDob.setText(dateFormatter.format(newDate.getTime()));
            }
        },newCalendar.get(Calendar.YEAR), newCalendar.get(Calendar.MONTH), newCalendar.get(Calendar.DAY_OF_MONTH));
        dobDatePicker.getDatePicker().setMaxDate(System.currentTimeMillis());

所以现在,限制一直持续到当前日期。请帮助:)

2 个答案:

答案 0 :(得分:3)

请参阅以下两行:

newCalendar.get(Calendar.YEAR), newCalendar.get(Calendar.MONTH), newCalendar.get(Calendar.DAY_OF_MONTH));
dobDatePicker.getDatePicker().setMaxDate(System.currentTimeMillis());

您将 maxDate 设置为当前年份。尝试这样的事情:

Calendar c = Calendar.getInstance();
c.add(Calendar.YEAR, -18);
dobDatePicker.getDatePicker().setMaxDate(c.getTime());

答案 1 :(得分:2)

dobDatePicker.getDatePicker().setMaxDate(System.currentTimeMillis() - (long) 1000 * 60 * 60 * 24 * 365 * 18); 但它没有考虑到闰年,所以可能还有其他一些日历