我有一个查询active directory的方法,并将上次密码重置的值返回给一个本地变量。我正在尝试将该值与当前日期和时间进行比较,并检查是否小于24小时。我想我已经很接近了,但似乎不能让它起作用。
谢谢,杰森
string passwordLastSet = string.Empty;
passwordLastSet = DateTime.FromFileTime((Int64)(result.Properties["PwdLastSet"][0])).ToString();
public string lastReset(DateTime pwordLastReset)
{
if (DateTime.Now.AddHours(24) <= passwordLastSet)
{
return "try again later";
}
else
{
return "all is good";
}
}发布于 2011-02-11 01:51:23
这一点:
if (DateTime.Now.AddHours(24) <= passwordLastSet)应该是
if (DateTime.Now <= passwordLastSet.AddHours(24))发布于 2011-02-11 01:51:55
我正在尝试将该值与当前日期和时间进行比较,并检查是否小于24小时。
这段代码几乎是自己写的。
DateTime timeOfLastPasswordReset = // get time of last password reset
DateTime now = DateTime.Now;
TimeSpan difference = now.Subtract(timeOfLastPasswordReset);
if(difference < TimeSpan.FromHours(24)) {
// password was reset less than twenty-four hours ago
}
else {
// password was reset no less than twenty-four hours ago
}请注意,代码的读法与您用英语指定的完全相同。
发布于 2011-02-11 01:50:53
(假设我没看错你的意图):
// Does passwordLastSet, with 24 hours added to it, fall before or after DateTime.Now?
// If AFTER, then reject, if BEFORE, then accept
if (passwordLastSet.Add(new TimeSpan(24, 0, 0)) > DateTime.Now)
{
// Password was last set within the last 24 hours
return "try again later";
}
else
{
return "all is good";
}https://stackoverflow.com/questions/4960728
复制相似问题