同一个用户,回答提示问题每天只能错三次。超过3次24小时后回答.有点思路,但有个datetime问题

sickcatzzzz 2009-01-07 01:19:58

//取出该用户名的 登陆次数和时间
if(count > 3 && newtime > oldtime)
{count=0 }//数据库计数清0

if (count > 3 && newtime < oldtime) //对比时间 现在的时候是否大于回答错误时间
{
// msg:您当天回答问题次数超过3,24小时后再试
}
else
{
// 执行回答
if (true) //填写正确
{
//允许改密码

}
else
{ ///msg您输入有误;
//数据库回答次数加1 (通过取出来现在数字加1实现)

{
//记录回答实时间; 该用什么数据类型? 实际插入时间是现在的24小时后 oldtime
}
}
}

比如现在系统时间是2009/1/6 17:58:05 从datetime.now() 获得
那么怎么样让他变成24时后的时间?先把时间转成字符行?然后读取多少为+24取余数?
有没有简单的方法,请各位指点一下,除了这个问题如果逻辑上有什么不合理大家也可帮我指出来!
其实还有就是如果客户更改了自己的系统时间怎么办?除了datetime.now() 还能用别的获取标准时间吗?
...全文
116 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhouxing_24 2009-01-07
  • 打赏
  • 举报
回复
System.DateTime.Now.AddHours(24);
晕,才看到上面都有答案了,哎,顶一下吧
GTX280 2009-01-07
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 sickcatzzzz 的回复:]
System.DateTime.Now.AddHours(-24);  这样会咋样?前一天的?
[/Quote]
sickcatzzzz 2009-01-07
  • 打赏
  • 举报
回复
System.DateTime.Now.AddHours(-24); 这样会咋样?前一天的?
GTX280 2009-01-07
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 GTX280 的回复:]
我整理的一个逻辑,你看看吧
取出该用户名的 错误次数count和最近一次密码输错时间lasttime

if ((now - lasttime) >= 24小时)//now:现在时间;    lasttime:最近一次密码输错时间
{
count = 0 并更新数据库;

}
if (count >= 3)
{
msg:已输错3次,24小时后再修改;
return;
}
else
{
回答问题;
if (true)  //填写正确
{
允许改密码;
count = 0 并更新数据库;
}
else
{
msg您输入有误;
更新数据库co…
[/Quote]
担心时间同步问题,可以将lasttime改成时间间隔,也即:从数据库获取现在时间和上次输错时间的差值,判断这个差值是不是大于24
sickcatzzzz 2009-01-07
  • 打赏
  • 举报
回复
这个方法太神奇了,简直是太方便了,太方便了。。。
GTX280 2009-01-07
  • 打赏
  • 举报
回复
我整理的一个逻辑,你看看吧
取出该用户名的 错误次数count和最近一次密码输错时间lasttime

if ((now - lasttime) >= 24小时)//now:现在时间; lasttime:最近一次密码输错时间
{
count = 0 并更新数据库;

}
if (count >= 3)
{
msg:已输错3次,24小时后再修改;
return;
}
else
{
回答问题;
if (true) //填写正确
{
允许改密码;
count = 0 并更新数据库;
}
else
{
msg您输入有误;
更新数据库count + 1,lasttime = now;
}
}
xian_yun80 2009-01-07
  • 打赏
  • 举报
回复
select Dateadd(day,1,getdate())
xian_yun80 2009-01-07
  • 打赏
  • 举报
回复
System.DateTime.Now.AddHours(24);
sickcatzzzz 2009-01-07
  • 打赏
  • 举报
回复
而且c#里面的now()方法调用的是我服务器本地的时间,其实我的担心没必要。。。。对吧。。。
sickcatzzzz 2009-01-07
  • 打赏
  • 举报
回复
数据库的系统函数可不太会用。。在逻辑里面我该怎么处理。。。
sickcatzzzz 2009-01-07
  • 打赏
  • 举报
回复
补充以下 数据库中需要俩字段 一个登陆次数 一个回答错误的时间。
koukoujiayi 2009-01-07
  • 打赏
  • 举报
回复
DateTime dt1 = Convert.ToDateTime("2009/1/6 17:58:05").AddHours(24);
jinjazz 2009-01-07
  • 打赏
  • 举报
回复
数据库一般都有时间函数的,比如sqlserver的select getdate(),orale的select sysdate from dual;
jinjazz 2009-01-07
  • 打赏
  • 举报
回复
System.DateTime.Now.AddDays(1);

111,130

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧