已经有二个DateTime变量:dt和dt2
DateTime dt = DateTime.Now;
TimeSpan ts = new TimeSpan(0, 0, 0, 10);
DateTime dt2=dt+ts; //在现在的时间增加10秒。
然后用一个Timer控件:
private void timer1_Tick(object sender, EventArgs e)
{
dt = DateTime.Now;
if(dt==dt2)
{....
}
问题是:
dt==dt2总是false;
请问是什么回事?谢谢呀
DateTime dt = DateTime.Now;
TimeSpan ts = new TimeSpan(0, 0, 0, 10);
DateTime dt2=dt+ts; //在现在的时间增加10秒。
然后用一个Timer控件:
private void timer1_Tick(object sender, EventArgs e)
{
dt = DateTime.Now;
if(dt==dt2)
{....
}
问题是:
dt==dt2总是false;
请问是什么回事?谢谢呀
TimeSpan ts = new TimeSpan(0, 0, 0, 10);
DateTime dt2=dt+ts;
private void timer1_Tick(object sender, EventArgs e)
{
DateTime dt3 = DateTime.Now;
if(dt3==dt2)
{....
}
但(dt3==dt2)还是不能为true..没反应55555
TimeSpan ts = new TimeSpan(0, 0, 0, 10);
DateTime dt2=dt+ts;
private void timer1_Tick(object sender, EventArgs e)
{
DateTime dt3 = DateTime.Now;
if(dt3.ToString()==dt2.ToString())
{....
}
TimeSpan ts = new TimeSpan(0, 0, 0, 10);
DateTime dt2=dt+ts;
private void timer1_Tick(object sender, EventArgs e)
{
DateTime dt3 = DateTime.Now;
if(DateTime.Compare(dt3, dt2) == 0)
{....
}
可以了。搞不明白:书上说DateTime可能用“=="或"compare"进行是否相等的比较。但在我这个例子中,怎么不行?为什么还要进行"ToString"啊
PS:用"<"或">"可以进行判断
难道你认为你的程序能精确到这个程度?
{
……
}
你使用的是Timer控件,但这个控件可能不会正好在10秒后执行.
所以你的比较往往不能成功.
TimeSpan ts = new TimeSpan(0, 0, 0, 10);
DateTime dt2=dt+ts;
private void timer1_Tick(object sender, EventArgs e)
{
DateTime dt3 = DateTime.Now;
if(dt3.ToString("yyyyMMddHHmmss")==dt2.ToString("yyyyMMddHHmmss"))
{....
}