2017-04-10 9 views
1

私のアプリにDatePickerDialogがあり、ユーザーが選択した日付を現在の日付まで制限する必要があります。 DatePickerDialogから選択した日付をnewDate()と比較しています。選択した日付が前の日付であれば、エラーが発生しています。以下のコードを見つけてください。日付比較で現在の日付まで選択するように制限する

DatePickerDialog datePickerDialog = new DatePickerDialog(this, 
       new DatePickerDialog.OnDateSetListener() { 
        @Override 
        public void onDateSet(DatePicker view, int year, 
              int monthOfYear, int dayOfMonth) { 
         Calendar calendar = Calendar.getInstance(); 
         calendar.set(year, monthOfYear, dayOfMonth); 
         SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MMM-yyyy"); 
         String visitDate = dateFormat.format(calendar.getTime()); 
         try { 
          Date appointDate = dateFormat.parse(visitDate); 
          Date currentDate = new Date(); 
          if(appointDate.before(currentDate)){ 
           appointmentDateInputLayout.setError("Date selected is not within range!"); 
          }else{ 
           appointmentDateEditText.setText(visitDate); 
           appointmentDateInputLayout.setError(null); 
          } 
         } catch (ParseException e) { 
          e.printStackTrace(); 
         } 
         appointmentDateEditText.setText(visitDate); 
        } 
       }, mYear, mMonth, mDay); 
     datePickerDialog.getDatePicker().setMinDate(System.currentTimeMillis()); 
     datePickerDialog.show(); 

これを行うと、今日の日付を選択する際にエラーが発生します。ユーザーに現在の日付を許可します。私はここで何が欠けていますか?

助けてください。カレンダーgetTime()の代わりに現在の日付:

If(appointDate.before(calendar.getTime()) 

答えて

0

ルックの方法と比較する

0

試して、

Date currentDate = new Date() ; 

は、度でインスタンス化された時の日付オブジェクトを割り当てますミリ秒単位で割り当てと日付オブジェクトをコードの最初に置き換えると非常に早い時間が得られるため、visitdateを選択するのにかかる時間が最終的に大きくなり(current)、currentDateのミリ秒数はnumberより少なくなりますミリ秒のピックされた新しい日付

+0

まだ動作していません! –

+0

次に、日付の書式を変更して、拍数と秒も含めます。 String currentDate = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss")。書式(新しい日付() ); –

+0

まだ私はなぜ動作していないのかわかりません –

関連する問題