2016-07-07 34 views
0

Android DatePickerdialog僅限於選擇下一個10 year date僅限於下一個10年的日期選擇器對話框

我有日期選擇器對話框,我只想選擇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一年今天,你必須設置你的MinDateSystem.currentTimeMillis()並設置MaxDateCureentTimeMillis + Next 10 Year Millis,該值添加到您的MaxDate像下面的方式。

setMinDate今天。

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

setMaxDate今天。

datePickerDialog.getDatePicker().setMaxDate(System.currentTimeMillis() + 10 year Millis); 
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()); 
相關問題