2016-07-19 11 views
-4

私はDateTimesのリストを持っており、DateTime.Nowの後に最も近い時刻を選択する必要があります。DateTime confusion

if(listItem > DateTime.Now) 
{ 
    ... 
} 
Date Day Time  Hgt 

07/19 Tue 01:39 AM 0.12 L 

07/19 Tue 08:00 AM 3.81 H 

07/19 Tue 01:24 PM 0.07 L 

07/19 Tue 08:18 PM 4.46 H 

07/20 Wed 02:19 AM -0.01 L 

07/20 Wed 08:43 AM 4.01 H 

07/20 Wed 02:09 PM 0.0 L 

07/20 Wed 09:01 PM 4.58 H 

私の問題は、私がチェックした場合である - 5:24 - それはDateTime.Now後の最初の時間として13:24を返します。

+0

どのように時間をロードしていますか?つまりリストボックスに入れます。 – TheLethalCoder

+1

すべての日付に対して繰り返し処理を行い、見つかった最初の日付だけでなく、現在の日付と>に近いものを見つける必要があります。 –

+0

ええと...私はDateTime.Parseの日付が必要です。ありがとう – sonewso

答えて

1

あなたはこのようにそれを行うことができます。

DateTime closest = 
    DateTime.Now >= yourListOfDateTimes.Last() 
     ? yourListOfDateTimes.Last() 
     : DateTime.Now <= yourListOfDateTimes.First() 
      ? yourListOfDateTimes.First() 
      : yourListOfDateTimes.First(d => d >= DateTime.Now); 
+0

"?:"オペランドをうまく使います。 – AVK