【发布时间】:2015-04-09 06:05:11
【问题描述】:
我在控制台应用程序中运行以下代码:
while (true)
{
DateTime dt1 = DateTime.Now;
DateTime dt2 = DateTime.Now.AddSeconds(-1);
if ((dt1 - dt2).Seconds != 1)
Console.Write((dt1 - dt2).Seconds.ToString());
}
我认为(dt1 - dt2).Seconds 始终是1 但我看到它在输出中写了很多0 !!??
为什么(dt1 - dt2).Seconds 变成0?
然后我尝试下面的代码:
if ((dt1.Hour * 3600 - dt2.Hour * 3600 + dt1.Minute * 60 - dt2.Minute * 60 + dt1.Second - dt2.Second) != 1)
Console.Write((dt1.Second - dt2.Second).ToString());
这个新代码说可能(dt1.Hour * 3600 - dt2.Hour * 3600 + dt1.Minute * 60 - dt2.Minute * 60 + dt1.Second - dt2.Second) 总是1(但是我知道23:59:59 => 00:00:00 它应该写一个值)
【问题讨论】:
-
我看到你的答案可以从输出中删除那些
0,但我想知道为什么下一个代码在使用 dt1 和 dt2 时不会在输出中生成0? ;)。