我正在尝试在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());
所以现在,限制一直持续到当前日期。请帮助:)
答案 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);
但它没有考虑到闰年,所以可能还有其他一些日历