title: How can `DateTime.Now - DateTimeNow.AddSecond(-1)` be zero
body: <p>I run below code in a console application:</p>
  
  <pre><code>while (true)
  {
      DateTime dt1 = DateTime.Now;
      DateTime dt2 = DateTime.Now.AddSeconds(-1);
  
      if ((dt1 - dt2).Seconds != 1)
          Console.Write((dt1 - dt2).Seconds.ToString());
  }
  </code></pre>
  
  <p>And I thought <code>(dt1 - dt2).Seconds</code> is always <code>1</code> but as I saw it write many <code>0</code> in the output !!??</p>
  
  <p>Why does <code>(dt1 - dt2).Seconds</code> become <code>0</code> ?</p>
  
  <hr>
  
  <p>Then I try below code:</p>
  
  <pre><code>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());
  </code></pre>
  
  <p>And this new code say may <code>(dt1.Hour * 3600 - dt2.Hour * 3600 + dt1.Minute * 60 - dt2.Minute * 60 + dt1.Second - dt2.Second)</code> is always <code>1</code> (However I know in <code>23:59:59</code> => <code>00:00:00</code> it should write a value)</p>