2010-12-08 12 views
7

私はdatetimeの値と時間ではなく日付で比較したいと考えています。どうすればいいですか?日時の値をちょうど日付と比較する

私は私が選択した区間外にあるいくつかの値を削除する:

あなたはこのようにDateプロパティを使用することができます
if (DateTime.Compare(DateTime.Parse(t.Rows[i][1].ToString().Trim()), dateTimePicker1.Value) < 0 || DateTime.Compare(DateTime.Parse(t.Rows[i][1].ToString().Trim()), dateTimePicker2.Value) > 0) 
/*remove comand*/ 

答えて

8

これには、DateTimeオブジェクトの日付部分のみが含まれているため、このプロパティはです。

if (DateTime.Compare(DateTime.Parse(t.Rows[i][1].ToString().Trim()).Date, 
    dateTimePicker1.Value.Date) < 0 || DateTime.Compare(DateTime.Parse(t.Rows[i]1].ToString().Trim()).Date, 
    dateTimePicker2.Value.Date) > 0) 
4
DateTime d1, d2'; 

... 

// following will compare by date and time both 
d1 == d2 

// following will compare by date only 
d1.Date == d2.Date 
1

:あなたのケースでそう

DateTime currentTime = Datetime.Now; 
DateTime aBitEarlier = currentTime.AddHours(-5).AddMinutes(-4); 

if (currentTime.Date == aBitEarlier.Date) 
{ 
    ... 
} 

if (DateTime.Compare(DateTime.Parse(t.Rows[i][1].ToString().Trim()).Date, dateTimePicker1.Value.Date) < 0 || DateTime.Compare(DateTime.Parse(t.Rows[i][1].ToString().Trim()).Date, dateTimePicker2.Value.Date) > 0) 
{ 
    ... 
} 
5

UtcとLocaleの問題も認識してください。 私はUtcですべてを比較することが重要です!

ので

Datetime d1, d2; 
d1 = d1.toUniversalTime().Date; 
d2 = d2.toUniversalTime().Date; 
if(DateTime.Compare(d1, d2)).... 
ような何かを行います
関連する問題