2011-06-06 32 views
0

有人能告訴我如何投射System.Timespan?到System.Timespan 試着獲取當前日期和LINQ查詢日期間的時間差,當我不斷收到此錯誤(見belwo)如何投射到System.Timespan?

System.TimeSpan ts = i.joinDt - DateTime.Now.Date; 

回答

6
System.TimeSpan ts = (i.joinDt - DateTime.Now.Date).Value; 
+0

我建議'System.TimeSpan TS = i.joinDt.Value - 日期時間。 Now.Date;'爲了避免將'DateTime.Now.Date'轉換爲空,只能將結果轉換回來。 – 2011-06-06 12:35:39

+0

工作 - 謝謝 – DarkW1nter 2011-06-06 12:41:53

6

從您需要訪問的TimeSpan?得到TimeSpan可空的Value屬性 - 無需投。

TimeSpan? tsn = i.joinDt - DateTime.Now.Date; 
TimeSpan ts; 
if(tsn.HasValue) 
{ 
    ts = tsn.Value; 
} 

或者:

if(i.joinDt.HasValue) 
{ 
    TimeSpan ts = i.joinDt.Value - DateTime.Now.Date; 
} 
3

有人可以告訴我怎麼投System.Timespan?到System.Timespan

您需要的情況下指定一個默認值,其中TimeSpan?爲空:

TimeSpan? nullableTs = ... 
TimeSpan ts = nullableTs ?? TimeSpan.Zero;