public void btimeEvent(object source, ElapsedEventArgs e)
        {
            if (DateTime.Compare(DateTime.Now, new DateTime(2009, 11, 16, 4, 46, 35)) == 0)
            {
                MessageBox.Show("执行任务");
            }        }这里面的时间比较,总是不成功!MessageBox.Show("执行任务");这句怎么也执行不到,时间到了也不行!这是为何啊!路过的高手指点一下!

解决方案 »

  1.   

    http://www.cnblogs.com/wengjinbao/articles/600323.html http://www.cnblogs.com/xiaobaigang/archive/2007/10/19/930238.html 
      

  2.   


    string datetime=2009-11-17 20:20:20
     if (DateTime.Now.ToString("yyyy-MM-dd HH:mm:mm")==datetime)
    {
    MessageBox.Show("执行任务")
    }
      

  3.   

    举个例子:
    DateTime t1 = new DateTime(100);
    DateTime t2 = new DateTime(20);DateTime.Compare(t1, t2) = 0
      

  4.   


     string datetime="2009-11-17 20:20:20"
     if (DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")==datetime)
     {
    MessageBox.Show("执行任务");
     }
      

  5.   

    Datetime还包括毫秒~你那比较里new出来的datetime又不含毫秒,且计时器计时也不一定准确,要让他在0规定时间的0毫秒处出发几乎不可能。
      

  6.   

    这不是在比较时间吗?
    (DateTime.Compare(DateTime.Now, new DateTime(2009, 11, 16, 4, 46, 35)) == 0)
    我写的语法没有错误啊!为何总是不相等!
      

  7.   

    楼主能保证Timer运行的时间点正好与给定的时间点完全一致吗?
      

  8.   

    因为毫秒部分不一样 if (DateTime.Compare(DateTime.Now, new DateTime(DateTime.Now.Ticks)) == 0)
                    MessageBox.Show("相等");
      

  9.   

    晕倒,你这样比较当然不会相等了,因为没有可能时间一分一秒都不差,正好相等的。这样就可以:
    if (DateTime.Compare(DateTime.Now, new DateTime(2009, 11, 16, 4, 46, 35)) > 0)
    {
        MessageBox.Show("执行任务");
    }你只能判断时间是否经过了你给定的时间点。
      

  10.   

    那你只比较年月日时分秒部分就可以了么
                if (DateTime.Compare(new DateTime(DateTime.Now.Year,
                    DateTime.Now.Month,
                    DateTime.Now.Day,
                    DateTime.Now.Hour,
                    DateTime.Now.Minute,
                    DateTime.Now.Second),
                    new DateTime(2009, 11, 16, 4, 46, 35)) == 0)
                    MessageBox.Show("相等");
      

  11.   

    DateTime.Compare(Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:mm")), new DateTime(2009, 11, 16, 4, 46, 35)) == 0
    这样就可以了。呵呵