2011-10-20 5 views
1

私はAndroidの開発にはかなり新しいですが、コードを書いた人が離れており、私はこの仕事を引き継いでいます。Android Appの日付を比較

私はすぐに見つけるしたい一つのことは、(...あり -

アプリが日付ピッカーを使用して日付()のユーザー入力を拾っていると私はチェックする検証を追加必要。。日付が有効である場合に有効な日付が今日から30日です 長い時間のためのインターネット上で検索した後、私は私が使用できる可能性のあるコード発見しました:

Date today = new Date(); 
    Date predefined = new SimpleDateFormat("yyyy-MM-dd").parse(today); 

    if(today.before(predefined)) { 
     ... 
    } 

をしかし、私はどのように確認していません30日を追加するには?

私に教えてもらえれば、それはmucよろしくお願いいたします。 ありがとうございます。

編集これは私が試したソースコードです。

Calendar today = Calendar.getInstance(); 
today.add(Calendar.DAY_OF_MONTH,30); 
if(calStartDate.compareTo(today)<0) { 
    Toast.makeText(GetClient.this,"It's before valid date!",Toast.LENGTH_SHORT).show(); 
}else{ 
    Toast.makeText(GetClient.this,"It's a valid date!",Toast.LENGTH_SHORT).show(); 
} 
+1

この回答はお役に立ちます:http://stackoverflow.com/questions/3838527/android-java-date-difference-in-days – jamapag

答えて

4

Calendarクラスが必要です。 1つを作成して現在の時刻/日付に設定し、別の日付と時刻を作成して30日前にロールバックすることができます。次に、もう一方を渡してcompareTo()を呼び出します。

+0

こんにちは、ご意見ありがとうございます。それに基づいてこれを生きてきた:\tカレンダーtoday = Calendar.getInstance(); \t \t \t \t \t today.add(Calendar.DAY_OF_MONTH、30); \t \t(calStartDate.compareTo(今日)<0){ \t \t \t Toast.makeText(GetClient.this、 "それが有効な日付の前だ!"、Toast.LENGTH_SHORT)であれば.SHOW(); \t \t}他{ \t \t \t Toast.makeText(GetClient.this、 "これは有効な日付だ!"、Toast.LENGTH_SHORT).SHOW(); \t \t \t \t \t \t \t}しかし、まだ動作しません。私は混乱のために申し訳ありません – user973067

+0

現在の日から30日後の有効な日付の範囲はありますか?または、当日前に日付を入力することが許可されていますか? – FoamyGuy

4

ウルOnDateSetListenerでこのロジックを実装:::

 class DateListner implements OnDateSetListener 
{ 

    @Override 
    public void onDateSet (DatePicker view , int year , int monthOfYear , 
      int dayOfMonth) 
    { 
     Date inputDate = new Date(year, monthOfYear, dayOfMonth); 
     Long inputTime = inputDate.getTime(); 
     Calendar calendar=Calendar.getInstance(); 
     Date validDate = new Date(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), (calendar.get(Calendar.DAY_OF_MONTH)+30)); 
     Long validTime = validDate.getTime(); 
     if(validTime>inputTime){ 
      Log.e("result", "valid"); 
     } 
     else 
      Log.e("result", "invalid"); 
    } 
} 

乾杯...... !!!!

+0

ありがとう非常に!できます! – user973067