IDE: Visual Studio 2015 Version: 10.0.0.2269 Target (If relevant): Net Description:
Following method returns an unexpected value:
class method Indberet.CompareDate(DateA: DateTime; DateB: DateTime): Word;
begin
var res := DateA.Date.CompareTo(DateB.Date);
result := if res < 0 then -1 else if res > 0 then 1 else 0;
//or exit… same result
end;
Expected Behavior:
It should return one of the three values -1, 0, 1.
A word is an unsigned 16 bit integer, so I would expect an out of range error, 0 or 1 as result.
But indeed, -1 could be translated to 65535; 0x00 - 0x01 = 0xFF -> 65535