未执行计算以计算c#asp.net sql linq中两个日期之间总天数的差异 DateTime currentDate=DateTime.Now; var query=(从db.Users中的m开始,其中m.EmailAddress==EmailAddress选择m.Last_Login_Date); DateTime lastLoginDate=Convert.ToDateTime(查询); double diffDays=(currentDate-lastLoginDate).TotalDays; 如果(天数72)以获得总天数差。我感谢你的帮助。真的很感激有人帮助我。 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); TimeSpan diffDays = currentDate.Subtract(lastLoginDate); if (diffDays.TotalDays> 72) { Response.Redirect("ResetPwd.aspx"); } else { Security.LoginUser(u.Name, u.Role, rememberMe); u.Last_Login_Date = currentDate; }

未执行计算以计算c#asp.net sql linq中两个日期之间总天数的差异 DateTime currentDate=DateTime.Now; var query=(从db.Users中的m开始,其中m.EmailAddress==EmailAddress选择m.Last_Login_Date); DateTime lastLoginDate=Convert.ToDateTime(查询); double diffDays=(currentDate-lastLoginDate).TotalDays; 如果(天数72)以获得总天数差。我感谢你的帮助。真的很感激有人帮助我。 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); TimeSpan diffDays = currentDate.Subtract(lastLoginDate); if (diffDays.TotalDays> 72) { Response.Redirect("ResetPwd.aspx"); } else { Security.LoginUser(u.Name, u.Role, rememberMe); u.Last_Login_Date = currentDate; },c#,asp.net,linq,C#,Asp.net,Linq,我试图进行计算,以找出总天数的差异。因此,如果差异大于72天,他们将被迫重置密码。但现在这个公式无法执行。我认为我的代码有一些错误。所以currentDate和db.Users Last_Login_Date是DateTime类型。任何人都知道如何进行计算,或者我应该将UserDB Last\u Login\u Date更改为字符串类型吗?请尝试以下操作: DateTime currentDate = DateTime.Now; var query = (from m in db.Users w

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

请尝试以下操作:

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");
}
//DateTime.Subtract()方法将返回一个“TimeSpan”值。
var timeSpan=currentDate.Subtract(lastLoginDate);
var diffDays=时间跨度天;
如果(天数<72天)
{
//代码在这里。
}
工作解决方案位于以下链接中:


所以,我找到了解决问题的办法。我改成了TimeSpan,现在一切都好了。谢谢你的贡献

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

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


你的代码有什么不正确的地方?你是如何确定代码中有错误的地方的?请包括
User
classe当你不说你的期望值和得到的值时,我们应该如何猜测你的想法?我给出了答案,假设问题出在减法中。但你并没有就你的问题提供一个好的信息。错误究竟发生在哪里?还是只是没有表演?这种情况也可能发生,因为
select m.Last\u Login\u Date
可能为空。在您发布自己的答案之前,我确实给了您完全相同的答案。如果答案是真的,你必须接受,否则你不应该公开提问。因为我们花费并牺牲了我们的时间来重现并找到您的问题的解决方案。很好,您正试图自己解决它,非常好,但您确实看到了
TimeSpan diffDays=currentDate.Subtract(lastLoginDate)之间的差异
var timeSpan=currentDate.Subtract(lastLoginDate)是,但在if(diffDays>72)中,我必须输入if(diffDays.totalDays>72)以获得总天数差。我感谢你的帮助。真的很感激有人帮助我。
            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);
            TimeSpan diffDays = currentDate.Subtract(lastLoginDate);

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

            }