2011-04-02 48 views
0

我想比較當前日期所說的日期,天數,我想使用LINQ如何比較日期,並獲得使用C#中的LINQ

感謝, 瓦拉普拉薩德得到的天數。 M

+0

爲什麼LINQ?你如何在LINQ中使用它? – Naraen 2011-04-02 06:29:57

+2

你可以做一些像'dtCurrent.Subtract(dtGiven).Days'嗎?您嘗試使用LINQ的原因是什麼? – Nija 2011-04-02 06:32:44

+0

在一個網格中,我想檢查給定的日期與網格下的日期如何可以完成 – 2011-04-02 07:15:48

回答

2

我沒有看到需要使用Linq。

DateTime givenDate; // given by earlier code 
DateTime currentDate = DateTime.Now; 

TimeSpan timeSpan = givenDate.Subtract(currentDate); 

int timeSpanInDays = timeSpan.Days; 
+0

在網格中我想檢查給定的日期與當前日期,所以爲什麼我想在這裏使用LINQ概念。在linq下如何實現? – 2011-04-02 07:14:10

+0

@Vara你可以添加一段代碼到問題中,以便我可以看到添加代碼的位置?你DataBinding集合到'GridView'? – Bazzz 2011-04-05 11:35:28

1

我假設你正在循環包含日期的東西。我已經使用了DataTableDataRow
我完全不知道您的案例,因此請根據您的需要對其進行調整。

我創造了這個foreach循環

DateTime currentDate = DateTime.Now; 
foreach (System.Data.DataRow row in new System.Data.DataTable().Rows) 
{ 
    DateTime givenDate = DateTime.Parse(row[0].ToString()); 
    TimeSpan timeSpan = givenDate.Subtract(currentDate); 

    if (timeSpan.Days > 10) 
    { 
     Foo(timeSpan.Days); 
    } 

} 

使用的Resharper的真棒力量,它已經轉化爲

DateTime currentDate = DateTime.Now; 
foreach (TimeSpan timeSpan in 
    new System.Data.DataTable().Rows.Cast<DataRow>() 
    .Select(row => DateTime.Parse(row[0].ToString())) 
    .Select(givenDate => givenDate.Subtract(currentDate)) 
    .Where(timeSpan => timeSpan.Days > 10)) 
{ 
    Foo(timeSpan.Days); 
} 

顯然,這可能需要進行調整根據您的需求。我不確定你需要哪些日子,所以我在當天包括了if。如果您只是在某處傳遞值,或者使用該值,那麼LINQ查詢將丟失.Where(...)

我希望這會有所幫助。我不清楚你需要什麼LINQ ...但是有一些LINQ。 :)

(我與JetBrains或Resharper沒有任何關係,除非愛上該工具。)