<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Hello All,<br>
<br>
While adding new unit tests for DateTime, I realized that, despite
DateTime in Mono 2.0 and NET2.0 has a new property "Kind" to specify if
it's a Local or Utc time, all comparison methods simply ignore it
(Equals, all operators: &gt;, &lt;, etc.), leading to patent errors.<br>
<br>
Ex:<br>
&nbsp;&nbsp;<small>&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; DateTime utcDate = new DateTime(2007, 08, 29, 10, 0,
0, DateTimeKind.Utc);<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; DateTime localDate = new DateTime(2007, 08, 29, 10, 0, 0,
DateTimeKind.Local);<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; // I'm in France (UTC +2) so localDate is 8am in UTC and is
before utcDate.<br>
<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Console.WriteLine(utcDate == localDate);&nbsp;&nbsp;&nbsp; // True. Should
be false<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Console.WriteLine(</small><small>localDate &lt; </small><small>utcDate);&nbsp;&nbsp;&nbsp;
// False. Should be true.<br>
<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Console.WriteLine(utcDate.ToUniversalTime() ==
localDate.ToUniversalTime());&nbsp;&nbsp;&nbsp; // False. Ok<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Console.WriteLine(</small><small>localDate.
ToUniversalTime( ) &lt; </small><small>utcDate. ToUniversalTime( ))
;&nbsp;&nbsp;&nbsp; // True. Ok<br>
</small><br>
<br>
The problem is not in Mono: MS .Net 2.0 behaves he same way. But
shouldn't we add some additional methods in Mono? And also put a big
warning in the class comments?<br>
<br>
<br>
Regards, <br>
Lionel<br>
</body>
</html>