Отправляет email-рассылки с помощью сервиса Sendsay

Вы правы,...
алгоритмы немного изменились. Стали более корректными. И вот суть изменений:

В первой версии при расчёте курса использовалась не только дата, но и время операции.
И тогда получалось, что $1000 в рублях в 12 часов дня совсем не было равно $1000
в рублях в 21 час того же дня. Наверное это неправильно. Во второй версии курс,
даже аппроксимированный, устанавливается на целые сутки. Одно значение курса
для периода с полуночи до полуночи.

Кроме того, если брать график остатков по счетам, в первой версии был некорректный
алгоритм расчёта остатков. Работал он так: вычислялся суммарный остаток на начало
периода, а дальше по всем операциям, которые попадали в график, сумма конвертировалась
к нужной валюте и просто прибавлялась к начальному остатку графика. Ошибка в
том, что программа просто не учитывала изменения курса по уже накопленной сумме
остатка. Наблюдать это можно так: постройте график за текущий месяц и запомните
конечную сумму графика. После этого перенесите дату начала графика назад на пару
лет и сравните конечную сумму с той, которую вы запомнили. Если в графике счета
с разными валютами, вы обязательно увидите, что суммы не совпадают.

Во второй версии график остатков считается немного сложнее, но правильнее. Программа
создаёт по одному накопительному регистру на каждую валюту, которая участвует
в графике. Вычисляется сразу начальные остатки по каждой из валют, а дальше,
при обработке операций программа пересчитывает суммарный остаток исходя из курсов
на каждый день. В итоге мы получаем 100% правильное значение.

Ответить   Wed, 6 Oct 2004 11:23:10 +0400 (MSD) (#240159)