可以把日期中的毫秒去掉,就不会影响计算结果了。
var
intM: Int64;
Y, DM, D, H, M, S, MS: word;
begin
DecodeDateTime(DateTimePicker1.DateTime,Y, DM, D, H, M, S, MS);
ShowMessage(IntToStr(MS));
如果我不使用变量J。。在调试的时候使用表达式和计算得到的表达式的值为-1
但是他执行的结果却不对。
tEndTime的时间为:15:33 DownEndTime.Time的值为17:00
if DateUtils.CompareTime(tEndTime, DateUtils.TimeOf(DownEndTime.Time)) <= 0 then
begin
im1 := DateUtils.MinutesBetween(tBeginTime, tEndTime); //应该执行这里。
end
else
begin
im1 := DateUtils.MinutesBetween(tBeginTime, DateUtils.TimeOf(DownEndTime.Time)); 却跳到这里执行。
end;