我正在使用C#3.5將小型MSAccess應用程序轉換爲基於Web的ASP.NET應用程序。我想知道在將某些VBA代碼轉換爲C#時,處理C#中日期的最佳方式是什麼。在C#中,如何將TimeSpan數據類型轉換爲DateTime?
下面是VBA代碼的例子:
Coverage1=IIf(IsNull([EffDate1]),0,IIf([CurrDate]<=[EndDate1],[CurrDate]-[EffDate1],[EndDate1]-[EffDate1]+1))
這裏是我當前的C#代碼看起來像在註釋代碼表示的錯誤:
public DateTime CalculateCoverageOne(DateTime dateEffDateOne, DateTime dateCurrentDate, DateTime dateEndDateOne)
{
if (dateCurrentDate.Date <= dateEndDateOne.Date)
{
return null; //Get "cannot convert null to System.DateTime because it is a non-nullable value type" error
}
else
{
if (dateCurrentDate.Date <= dateEndDateOne)
{
return dateCurrentDate.Subtract(dateEffDateOne); //Gets error "cannot implicitly convert system.timepsan to system.datetime
}
else
{
return dateEndDateOne.Subtract(dateEffDateOne.AddDays(1)); //Gets error "cannot implicitly convert system.timepsan to system.datetime
}
}
}
您的代碼將總是返回dateEffDateOne作爲結果,而不是日期之間的差異。 我想,這不是@ program247365想要的。 – VladV 2009-07-21 21:42:15
我不相信這是OP要求的。他需要DateTime,但是如果他需要存儲時間段,那麼他應該使用TimeSpan。 – 2009-07-21 21:46:26