title: How do I work around Delphi's inability to accurately handle datetime manipulations?
body: <p>I am new to Delphi (been programming in it for about 6 months now). So far, it's been an extremely frustrating experience, most of it coming from how bad Delphi is at handling dates and times. Maybe I think it's bad because I don't know how to use TDate and TTime properly, I don't know. Here is what is happening on me right now :</p>
  
  <pre><code>// This shows 570, as expected
  ShowMessage(IntToStr(MinutesBetween(StrToTime('8:00'), StrToTime('17:30'))));
  
  // Here I would expect 630, but instead 629 is displayed. WTF!?
  ShowMessage(IntToStr(MinutesBetween(StrToTime('7:00'), StrToTime('17:30'))));
  </code></pre>
  
  <p>That's not the exact code I use, everything is in variables and used in another context, but I think you can see the problem. Why is that calculation wrong? How am I suppose to work around this problem?</p>