Button2的text是“签退”
这个down里存的是从数据库里提取的下班时间,值为17:10:00
0和1是存入迟到或者未迟到的
protected void Button2_Click(object sender, EventArgs e)
    {
        //判断下班是否早退
        if (DateTime.Compare(Convert.ToDateTime(DateTime.Now.ToString("hh:mm:ss")), Convert.ToDateTime(down)) >= 0)        {
            bc.ExecSQL("INSERT INTO tb_sign (datetime, employeeName, late, quit) values ('" + DateTime.Now + "','" + Session["loginName"].ToString() + "','0','0')");
        }
        else
        {
            bc.ExecSQL("INSERT INTO tb_sign (datetime, employeeName, late, quit) values ('" + DateTime.Now + "','" + Session["loginName"].ToString() + "','0','1')");
        }
    }请问各位大侠,为什么当DateTime.Now.ToString("hh:mm:ss")为20:46:12时,让它和down作比较得到的结果会得到小于零而执行else语句,纳闷了~~按说20:46:12是大于17:10:00的啊比较结果不是应该得到大于零而执行if语句吗?拜托各位大虾解释一下,谢谢了~~~~

解决方案 »

  1.   

    直接比较时间就可以了。
    if (DateTime.Now > Convert.ToDateTime(down)) ...
      

  2.   

    DateTime.Now.ToString("hh:mm:ss")
    这句错了,小写的hh是12时制的,换成大写的HH
    即:
    DateTime.Now.ToString("HH:mm:ss")
    其实你自己调试一下就知道了。
      

  3.   

    string dt=DateTime.Now.ToString("yyyy-MM-dd")+" 17:00:00"
    if (DateTime.Compare(DateTime.Now,Convert.ToDateTime(dt)) >= 0) 
    {}