2017-04-27 47 views
0

我有一個日期時間值,我現在比較。 我嘗試將兩個日期轉換爲int,因爲是不同的類型。比較不同類型的日期時間列>現在c#

這是我的代碼:

Int64 NowDate = Convert.ToInt64(DateTime.Now.ToString("yyyyMMddhhmmss")); 

return mylist.Where(f => Convert.ToInt64(f.DateStart.ToString("yyyyMMddhhmmss")) > NowDate).ToList(); 

它的工作原理,但如果你一天的是21.00.00我有一個問題,convert.toint64刪除00.00,我的號碼是< nowdate。

+4

錯誤的假設。 DateTime是一個DateTime。沒有必要轉換爲int。你有沒有試過_f.DateStart Steve

+3

[如何在c#中比較日期]的可能重複(http://stackoverflow.com/questions/6592126/how-to-compare-dates-in-c-sharp) – Orangesandlemons

回答

0

要比較C#中的兩個日期,您不必進行任何類型的轉換。

你可以只寫

mydate < DateTime.Now 

,也將努力!

因爲日期時間實現IComparable,這意味着你可以彼此

0

之間比較兩個日期轉換日期時間爲字符串產生很多問題。對我而言,你應該把日期保留爲日期。你應該嘗試這樣的查詢:

return mylist.Where(f => f.DateStart> Datetime.Now).ToList(); 

如果你想比較只有日期,您可以使用:

return mylist.Where(f => f.DateStart.Date > Datetime.Now.Date).ToList(); 

注意,如果你的DateStart字段是空的,它可以拋出一個異常。在這種情況下,你應該控制空值。