2016-04-21 81 views
-2

您好我實現了一個DatePickerDialog但我想設置範圍,我發現setMinDatesetMaxDate,但我不知道如何把價值觀。我想爲18歲以下和最大年齡爲100歲的用戶設置日曆;我認爲這是以毫秒爲單位的計算。setMaxDate到DatePickerDialog

final Calendar c = Calendar.getInstance(); 
    int year = c.get(Calendar.YEAR); 
    int month = c.get(Calendar.MONTH); 
    int day = c.get(Calendar.DAY_OF_MONTH); 
DatePickerDialog dpd = new DatePickerDialog(getActivity(), AlertDialog.THEME_DEVICE_DEFAULT_LIGHT, this, year, month, day); 
dpd.getDatePicker().setMaxDate(max); 
return dpd; 

我不知道我有什麼價值,投入最多做2016 - 18

+0

http://stackoverflow.com/questions/16749361/how-set-maximum-date-in-datepicker-dialog-in-android – Juvi

+0

@Juvi是的,我看了看,但它得到的實際日期最新 – Ben

+1

新日期().getTime()返回當前日期,所以我假設你想設置自己的日期。只是創建新的日期對象,並設置它的值,並將其設置爲maxDate ... – Juvi

回答

1

使用此代碼,設置當前日期的最大日期和最小日期。

Calendar minCal = Calendar.getInstance(); 
minCal.set(Calendar.YEAR, minCal.get(Calendar.YEAR) - 100); 
Calendar maxCal = Calendar.getInstance(); 
maxCal.set(Calendar.YEAR, maxCal.get(Calendar.YEAR) - 18); 
dialog.getDatePicker().setMinDate(minCal.getTimeInMillis()); 
dialog.getDatePicker().setMaxDate(maxCal.getTimeInMillis()); 
+0

我沒有得到良好的範圍,它必須在1916年至1998年(最小年齡是18最大年齡是100) – Ben

+0

我認爲這是-100和-18我測試它謝謝 – Ben

+0

@本是。更新了我的答案。 –

1

我想這是你所需要的:

  final Calendar maxc = Calendar.getInstance(); 
      int year = maxc.get(Calendar.YEAR); 
      maxc.set(Calendar.YEAR,year-18); 
      datePickerDialog.getDatePicker().setMaxDate(maxc.getTimeInMillis()); 

      final Calendar minc = Calendar.getInstance(); 
      int year = minc.get(Calendar.YEAR); 
      minc.set(Calendar.YEAR,year-100); 
      datePickerDialog.getDatePicker().setMinDate(minc.getTimeInMillis()); 
      datePickerDialog.show(); 
+0

它會不適用於年齡驗證。請編輯你的答案。 –