Показать сообщение отдельно
Старый 13.08.2007, 13:02   #10  
prefreitor is offline
prefreitor
Участник
 
214 / 11 (1) +
Регистрация: 03.10.2006
Есть функция 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);