Есть функция SerialDate2DMY, там идут хитрые преобразования. Вот там можно эти хитрости закомментить и все начнет работать:
DMYDate := 0D;
IF NOT EVALUATE(CalcDate{SerialDate},SerialDateText) THEN //Введем переменную CalcDate (дата)
EXIT(DMYDate);
//хитрые преобразования
{IF SerialDate = 0 THEN
EXIT(DMYDate);
OffsetDate := 01011900D;
// do not add last day.
SerialDate := SerialDate - 1;
// Compensate for Know bug in Excel 1900 is not a leapyear
IF SerialDate > 60 THEN
SerialDate := SerialDate - 1;
NoOfCalc := SerialDate / 9999;
NoOfCalc := ROUND(NoOfCalc,1,'<');
RemainingDays := SerialDate MOD 9999;
FOR I := 1 TO NoOfCalc DO
OffsetDate := CALCDATE('+9999<D>',OffsetDate);
IF RemainingDays <> 0 THEN
OffsetDate := CALCDATE('+' + FORMAT(RemainingDays) + '<D>',OffsetDate);
EXIT(OffsetDate);
}
EXIT(CalcDate);
|