首页 > 解决方案 > 计算未执行以计算 c#asp.net sql linq 中 2 个日期之间的总天数差异

问题描述

DateTime currentDate = DateTime.Now;
var query = (from m in db.Users where m.EmailAddress == emailAddress select m.Last_Login_Date).Single();

DateTime lastLoginDate = Convert.ToDateTime(query);

double diffDays = (currentDate - lastLoginDate).TotalDays;
if (diffDays < 72) {
 Security.LoginUser(u.Name, u.Role, rememberMe);
 u.Last_Login_Date = currentDate;
} else {
 Response.Redirect("ResetPwd.aspx");
}

我尝试执行计算以找出总天数的差异。因此,如果差值大于 72 天,他们将被迫进行重置密码。但现在无法执行公式。我认为我的代码有一些错误。所以 currentDate 和 db.Users Last_Login_Date 是 DateTime 类型。任何人都知道如何进行计算,或者我应该将我的 UserDB Last_Login_Date 更改为字符串类型吗?

标签: c#asp.netlinq

解决方案


请尝试以下操作:

//DateTime.Subtract() method will return a 'TimeSpan' value.
var timeSpan = currentDate.Subtract(lastLoginDate);
var diffDays = timeSpan.Days;

if(diffDays < 72)
{
     //Code here.
}

工作解决方案在以下链接中:

dotnetfiddle


推荐阅读