2014-02-28 42 views
0

不知道爲什麼,但我試圖設置一個有效的(不是過去的)。這在某些情況下起作用,例如設置爲2014年4月4日,但是如果我將其設置爲2014年2月28日至2014年3月2日,則表示日期是過去的日期。有人可以看到爲什麼是這種情況?Android商店有效日期(不是過去的日期)

public class StartDatePicker extends DialogFragment implements 
      DatePickerDialog.OnDateSetListener { 

    Calendar c = Calendar.getInstance(); 
    int startYear = c.get(Calendar.YEAR); 
    int startMonth = c.get(Calendar.MONTH); 
    int startDay = c.get(Calendar.DAY_OF_MONTH); 

    @Override 
    public Dialog onCreateDialog(Bundle savedInstanceState) { 
     // Use the current date as the default date in the date picker 
     DatePickerDialog dialog = new DatePickerDialog(getActivity(), this, 
       startYear, startMonth, startDay); 
     return dialog; 
    } 

    @Override 
    public void onDateSet(DatePicker view, int year, int monthOfYear, 
      int dayOfMonth) { 




     // disable past dates 

     if (year < startYear || monthOfYear < startMonth 
       || dayOfMonth < startDay) { 
      DialogFragment dialogFragment = new StartDatePicker(); 
      dialogFragment.show(getSupportFragmentManager(), 
        "start_date_picker"); 
      Toast.makeText(getApplicationContext(), "Select Valid Date", 
        Toast.LENGTH_LONG).show(); 
     } else { 

//store date 

}} 
+0

忘記提及,我正在使用日期選擇器 – user2219097

回答

0

如果你想檢查是否選定的日期是在過去使用下列內容:

您onDateSet功能 - 創建日曆實例和:

calendar.set(Calendar.YEAR,year); 
calendar.set(Calendar.MONTH,monthOfYear); 
calendar.set(Calendar.DAY_OF_MONTH,dayOfMonth); 

設置日曆與後選擇日期,使用System.timeInMilliseconds()檢查它是過去還是過去/現在時間之後

if (calendar.getTimeInMilliseconds() < System.timeInMilliseconds()) { 
    // Your implementation ... 
} 

希望它能帶來好運...祝你好運