Количество дней между двумя датами. Вариант 2

Для DateDiff:

Вы смотрели на функцию DecodeDate? Это не точно именно то, что вам нужно, но на ее основе можно сделать вашу функцию именно с нужной вам функциональностью.

Для величины Present:

function PresentValue(const cashflows : array of double;    { отсортированные
транзакции, начальный индекс - cashflows[0] }

n : integer; { количество транзакций в массиве }
iv>
atbegin : boolean) : double; { true, если транзакция была в начале периода,
false если в конце }

var
i         : integer;
factor    : double;
begin
factor := (1 + rate / 100.0);
result := 0;
for i := n - 1 downto 0 do
result := (result + cashflows[n]) / factor;
if atbegin then
result := result * factor;
end;

 
« Предыдущая статья   Следующая статья »