瀏覽代碼

* fix for 17123, rounding issues decodedatetime

git-svn-id: trunk@15804 -
marco 15 年之前
父節點
當前提交
d39c2ed039
共有 1 個文件被更改,包括 7 次插入1 次删除
  1. 7 1
      rtl/objpas/dateutil.inc

+ 7 - 1
rtl/objpas/dateutil.inc

@@ -1530,8 +1530,14 @@ end;
 
 Procedure DecodeDateTime(const AValue: TDateTime; out AYear, AMonth, ADay, AHour, AMinute, ASecond, AMilliSecond: Word);
 begin
-  DecodeDate(AValue,AYear,AMonth,ADay);
   DecodeTime(AValue,AHour,AMinute,ASecond,AMilliSecond);
+  if AHour=24 then // can happen due rounding issues mantis 17123
+    begin
+      AHour:=0; // rest is already zero
+      DecodeDate(round(AValue),AYear,AMonth,ADay);
+    end
+  else
+    DecodeDate(AValue,AYear,AMonth,ADay);
 end;