2017-12-05 13 views
0

こんにちは私は時間の範囲を比較しようとしています。私の要件は、時間選択ダイアログから時間を選択するときです。これは時間のピッカーのダイアログから12または00を選択しないと動作しています。時間の範囲を比較するには?

開始時間:06:00 終了時間:23:00 がタイムピッカー]ダイアログボックスから時間を選択:12:23

コードの下に適切なタイミングではない上記のいくつかのいずれかが私を助けることができますしてください

 String pattern = "hh:mm";            
    SimpleDateFormat sdf = new SimpleDateFormat(pattern); 
    Date date1 = sdf.parse(startTime); 
    Date date2 = sdf.parse(endTime); 
    Date date3 = sdf.parse(selectedTime); 
    if (((date3.after(date1) || date3.equals(date1)) && (date3.before(date2) || date3.equals(date2)))) {   


    } 
    else { 
      Toast.makeText(context, "Pickup time should be open and close timings", Toast.LENGTH_SHORT).show();           
     } 

答えて

1

以下のコードを使用できます。

String pattern = "HH:mm"; 
    SimpleDateFormat sdf = new SimpleDateFormat(pattern); 
    try { 
     Date date1 = sdf.parse(startTime); 
     Date date2 = sdf.parse(endTime); 
     Date date3 = sdf.parse(selectedTime); 
     if (date3.compareTo(date1) >= 0 && date3.compareTo(date2) <= 0) { 
      // Do your stuff 
     } else { 
      // Wrong time 
     } 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

時間

(1-12)午前/午後に時間を表し、H日中時間(0-23)

を表しあなたの日付は24時間ギでありますので、 hの代わりにHを使用してください。

+0

私に試してみよう結果 – Krish

+0

更新された回答を使用してください。同じ条件もカバーします。 – ADM

+0

働きがいありがとう – Krish

1

compareTo()を使用してください。現在のオブジェクトが他のオブジェクトより 小さい場合、両方のオブジェクトが互いに等しい場合、現在のオブジェクトが 他のオブジェクトとゼロより大きい場合

compareToメソッドは、正の数、負の数を返さなければなりません。

コードリファレンス

if (date1.compareTo(date2) < 0) 
{ 
Log.d("RESULT","date1 older than date2"); 
} 
else 
{ 
Log.d("RESULT","date2 older than date1"); 
} 

NOTE

あなたTIME formatが完璧であることを確認してください。

+1

働いてくれてありがとうございます – Krish

+0

@Krish嬉しいです。進んでください。 –

関連する問題