C# 如何获取当前日期和其他日期之间的日期差(以天为单位),以字符串形式输入?

C# 如何获取当前日期和其他日期之间的日期差(以天为单位),以字符串形式输入?,c#,C#,upgradeDate作为字符串从数据库中输入。在最后一行中,我还得到了一个upgradeDate的未分配变量错误。您可以这样做: string upgradeDate = ""; TimeSpan dateDifference; if (!sqlDR.IsDBNull(3)) upgradeDate = sqlDR.GetString(3); dateDifference = (DateTime.Now - Convert.ToDateTime(upgradeDate)).TotalDays

upgradeDate
作为字符串从数据库中输入。在最后一行中,我还得到了一个
upgradeDate
的未分配变量错误。

您可以这样做:

string upgradeDate = "";
TimeSpan dateDifference;

if (!sqlDR.IsDBNull(3)) upgradeDate = sqlDR.GetString(3);
dateDifference = (DateTime.Now - Convert.ToDateTime(upgradeDate)).TotalDays;
如果
sqlDR.IsDBNull(3)
dateDifference
将为空

您也可以从
TimeSpan-dateDifference=TimeSpan.Zero开始由您决定


但你肯定要读到这一点:,正如@stuartd所说。

这大概是不可编译的
TotalDays
返回一个双精度值,但您正试图将其分配给定义为时间跨度的
dateDifference
。知道我为什么在最后一行中得到upgradeDate的未分配变量错误吗?如果可能,我建议您始终以日期数据类型将日期保存在DB中,而不是作为字符串。@stuartd除非分配了
upgradeDate
。我真想知道这是否是导致编译错误的实际代码。无法将
double
分配给
TimeSpan?
。您需要删除
.TotalDays
TimeSpan? dateDifference = null;

if (!sqlDR.IsDBNull(3)) {
   string upgradeDate = sqlDR.GetString(3);
   dateDifference = DateTime.Now - Convert.ToDateTime(upgradeDate);
}