DateTime? arrival = (DateTime?)(t.ArrivalDate.Value);
DateTime? departure = (DateTime?)(t.DepartureDate);
好吧,我知道他們兩個是可以爲null和.TotalDays爲空的對象不起作用。所以,請告訴我,我應該如何找到這兩個對象之間的天差異。找到兩個日期時間之間的TotalDays?變量
注: 這兩個對象包含日期(S),即不爲空
DateTime? arrival = (DateTime?)(t.ArrivalDate.Value);
DateTime? departure = (DateTime?)(t.DepartureDate);
好吧,我知道他們兩個是可以爲null和.TotalDays爲空的對象不起作用。所以,請告訴我,我應該如何找到這兩個對象之間的天差異。找到兩個日期時間之間的TotalDays?變量
注: 這兩個對象包含日期(S),即不爲空
既然沒有意義的價值,他們的區別,如果其中任何一個爲空,你只需要在那裏他們並非如此關心自己:
DateTime? arrival = (DateTime?)(t.ArrivalDate.Value);
DateTime? departure = (DateTime?)(t.DepartureDate);
double? totalDays = arrival.HasValue && departure.HasValue
? (double?)(departure - arrival).GetValueOrDefault().TotalDays
: null;
減法應該因爲工作隱式轉換到DateTime
。
不工作。請在你自己的調試器中運行這個然後粘貼在這裏:) – 2015-02-09 05:27:16
固定。本質是正確的,我只需要調整語法。 :) – 2015-02-09 05:29:07
日期時間? departure = DateTime.Now.AddDays(2.5);爲什麼你加2.5? – 2015-02-09 05:30:01
注:這兩個對象包含日期(S),即不爲空
如果您確定日期從不有null,那麼你可以使用.Value爲可空的DateTime對象。當它們中的任何一個爲空時,你將會得到異常。
double days = departure.Value.Subtract(arrival.Value).TotalDays;
//Set dates
DateTime? beginDate = DateTime.Now;
DateTime? endDate = DateTime.Now.AddDays(10);
//Check both values have a value (they will based on above)
//If they do get the ticks between them
long diff = 0;
if (beginDate.HasValue && endDate.HasValue)
diff = endDate.Value.Ticks - beginDate.Value.Ticks;
//Get difference in ticks as a time span to get days between.
int daysDifference = new TimeSpan(diff).Days;
在這裏,我給你測試代碼,請看看:
DateTime? startDate = DateTime.Now;
DateTime? endDate = DateTime.Now.AddDays(5);
long differenceOfDays = 0;
if (startDate.HasValue && endDate.HasValue)
differenceOfDays = endDate.Value.Ticks - startDate.Value.Ticks;
int daysDifference = new TimeSpan(differenceOfDays).Days;
DATEDIFF(日,DATE1,DATE2) – 2015-02-09 05:23:17
是什麼DATEDIFF? – 2015-02-09 05:23:51
'時間跨度差異=到來 - 出發;' – 2015-02-09 05:23:52