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();
}
提前致谢。
答案 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());