如何强制转换为System.Timespan?

时间:2011-06-06 12:31:00

标签: c# visual-studio-2010

有人能告诉我如何投射System.Timespan吗?到System.Timespan 当我试着从linq查询中获取当前日期和日期之间的日期差异时,我一直收到此错误(参见belwo)

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

3 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分:6)

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

答案 2 :(得分:3)

  

有人能告诉我如何投射System.Timespan吗?到System.Timespan

您需要为TimeSpan?为空的情况指定默认值:

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