[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

pl.comp.programming

Algorytm odsetek od naleznosci za okres

Mariusz Cegielka

12/5/2006 11:33:00 PM

Witam!

Mam problem z opracowaniem uniwersalnego algorytmu liczenia odsetek.
Problem chyba do?a nietypowy, bo nie wygugla3em rozwi?zania, a sam nie
bardzo sobie daje rade :(

Chodzi o obliczenie odsetek od nale?no?ci (faktury), uwzgledniaj?c
sp3aty nale?no?ci, za podany okres od-do.

Mam podany termin p3atno?ci TP; za dzien TP nie obliczamy odsetek, czyli
je?li wp3ynie wp3ata w dniu TP i pokryje nale?no?a, odsetek nie ma
wcale. Je?eli wp3ata wp3ynie w dniu nastepnym po TP, to odsetki liczy
sie za 1 dzien, dok3adnie za dzien TP+1. Jest to wa?ne, bo sytuacje
komplikuje w3a?nie fakt, ?e mam liczya odsetki za podany okres; czyli
je?li ostatnim dniem okresu jest TP, to w okresie odsetki nie mog? bya
wykazane, a je?li pierwszym dniem okresu bedzie TP+1, to jak
najbardziej. Mo?e bya wiec tak, ?e TP przypada przed pocz?tkiem okresu
obliczen.

Mam problem z ogarnieciem tego zadania i zaprojektowaniem uniwersalnego,
sensownego algorytmu, który nie pomija3by jakich? dni albo nie liczy3
ich podwójnie. Dane mam ogólnie w postaci tablicy 2D o kolumnach
zawieraj?cych date zmiany, kwote zmiany i oprocentowanie; tablica
posortowana po dacie. Mo?e zdarzya sie kilka zmian o tej samej dacie.

Zmian? nazywam powstanie nale?no?ci (w dniu TP) oraz wp3ate, przy czym w
okresie mo?e nie bya wp3at wcale, albo dowolna ilo?a sp3at cze?ciowych;
nale?no?a mo?e bya wiec nie sp3acona do konca w okresie i mo?e te? bya
nadp3acona (od tego momentu odsetek sie nie liczy). Nie moge wykluczya
te? wp3at "ujemnych", czyli podwy?szen nale?no?ci. Oprocentowanie w
ca3ym okresie przyjmijmy sta3e - z kwesti? zmian stopy oprocentowania
poradzi3em sobie na razie (w momencie zmiany stopy w tablicy pojawia sie
zmiana z odpowiedni? dat?, o zerowej kwocie zmiany i nowym oprocentowaniu).

Mam nadzieje, ?e nie zagmatwa3em tego zbytnio.

Pozdrawiam.
--
Mariusz Cegie3ka / Kyllan
kyllan (uchos3onia) teneg / com / pl
7 Answers

limcore@gazeta.pl

12/7/2006 4:00:00 PM

0

Mariusz CegieÅ?ka wrote:

> Mam nadziejÄ?, że nie zagmatwaÅ?em tego zbytnio.

TrochÄ? nie jasno to napisaÅ?eÅ? moim zdaniem, najlepiej podaj maÅ?y
przykÅ?ad z dokÅ?adnymi wyliczeniami - to pomożemy zaprojektowaÄ? program
który powtórzy Twoje obliczenia.


--
LimCore
---> oo
Linux, Windows; Wysokopoziomowe C++, std, boost
http://www.... - w przygotowaniu

chips

12/8/2006 3:38:00 PM

0


Mariusz Cegielka napisal(a):
(ciach)

Nic nie mówiles na ten temat wiec zakladam ze wierzyciel jest
jeden a wplaty sa dokonywane na jedno konto (albo tak czy siak
traktujemy to wszystko masowo-zbiorczo).
Co myslisz o tym: jesli pojawia sie w dniu D naleznosc w
wysokosci X to do sumy odsetek dodajemy nalezne odsetki od kwoty X za
czas od D do konca okresu, a jesli pojawia sie wplata - odejmujemy.
To zadziala dla oprocentowania prostego na pewno, przy skladanym albo
ciaglym trzeba by chyba najpierw dyskontowac?

suma := 0
foreach(zmiany as zmiana) suma += oblicz_odsetki(zmiana.wartosc,
zmiana.data)
suma = -suma;

Jacek Czerwinski

12/8/2006 4:01:00 PM

0

Dnia 8 Dec 2006 07:38:06 -0800, chips napisa3(a):

> Mariusz Cegie3ka napisa3(a):
> (ciach)
>
> Nic nie mówi3e? na ten temat wiec zak3adam ?e wierzyciel jest
> jeden a wp3aty s? dokonywane na jedno konto (albo tak czy siak
> traktujemy to wszystko masowo-zbiorczo).
> Co my?lisz o tym: je?li pojawia sie w dniu D nale?no?a w
> wysoko?ci X to do sumy odsetek dodajemy nale?ne odsetki od kwoty X za
> czas od D do konca okresu, a je?li pojawia sie wp3ata - odejmujemy.
> To zadzia3a dla oprocentowania prostego na pewno, przy sk3adanym albo
> ci?g3ym trzeba by chyba najpierw dyskontowaa?

Ja kiedys to robi3em przechodz?c chronologicznie prez czas (zdarzenia
obci?zenia (wg daty wymagalno?ci), wp3aty (wd daty skutecznej), zmiany
odsetek) opieraj?c sie na saldzie chwilowym * stopa * dni odstepu /356 itd.
Wszystkie operacje tego samego dnia traktowane jako jednoczesne (tak
naprawde odsetki licz? sie IMHO do dnia poprzedniego)

Probowalem dodawac in plus/in minus kwote operacji * procent ale i tak
musia3em przerywaa przy zmianach odsetek.

chips

12/8/2006 7:07:00 PM

0


Jacek Czerwinski napisal(a):
> Dnia 8 Dec 2006 07:38:06 -0800, chips napisal(a):
>
> > Mariusz Cegielka napisal(a):
> > (ciach)
> >
> > Nic nie mówiles na ten temat wiec zakladam ze wierzyciel jest
> > jeden a wplaty sa dokonywane na jedno konto (albo tak czy siak
> > traktujemy to wszystko masowo-zbiorczo).
> > Co myslisz o tym: jesli pojawia sie w dniu D naleznosc w
> > wysokosci X to do sumy odsetek dodajemy nalezne odsetki od kwoty X za
> > czas od D do konca okresu, a jesli pojawia sie wplata - odejmujemy.
> > To zadziala dla oprocentowania prostego na pewno, przy skladanym albo
> > ciaglym trzeba by chyba najpierw dyskontowac?
>
> Ja kiedys to robilem przechodzac chronologicznie prez czas (zdarzenia
> obciazenia (wg daty wymagalnosci), wplaty (wd daty skutecznej), zmiany
> odsetek) opierajac sie na saldzie chwilowym * stopa * dni odstepu /356 itd.
> Wszystkie operacje tego samego dnia traktowane jako jednoczesne (tak
> naprawde odsetki licza sie IMHO do dnia poprzedniego)
>
> Probowalem dodawac in plus/in minus kwote operacji * procent ale i tak
> musialem przerywac przy zmianach odsetek.

Tak naprawde zalezy co mamy dostac... bo to sa pewnie jakies dane
fk i dobrze zeby wyniki programu zgadzaly sie z archiwami ;) A
bledy obliczen zaleza od algorytmu. Zmiana oprocentowania
faktycznie troche komplikuje sprawe (zapomnialem o tym wczesniej),
ale chyba da sie uniknac liczenia salda, jezeli bedziemy po prostu
sumowac wplaty/wyplaty oprocentowane na ostatni dzien okresu (czyli
wartosc na koncu). Ze zmiana stóp mozemy sobie poradzic tak:
- traktowac czas miedzy zmianami stóp jako podokres, obliczyc go i
wartosc koncowa traktowac jak poczatkowa nastepnego podokresu
itd. (tyle ze tutaj musimy najpierw znalezc date zmiany stóp,
zalezy ile mamy danych)
- albo w momencie T zmiany oprocentowania z r1 na r2 dyskontowac sume
(wartosc koncowa) na moment T wg. r1 i od razu oprocentowac na
dzien ostatni wg. r2 (czyli tak jakby wg. stopy r2-r1).

ag

12/8/2006 9:21:00 PM

0

Witam, mo¿e po prostu pêtla lec±ca przez wszystkie dni (ca³y okres), która liczy
dzienne odsetki od salda które pierw jest pomniejszane/powiêkszane je¿eli
co¶ siê dzieje w tym dniu.

sg

12/8/2006 9:32:00 PM

0

ag napisal(a):
> Witam, mo¿e po prostu pêtla lec±ca przez wszystkie dni (ca³y okres), która liczy
> dzienne odsetki od salda które pierw jest pomniejszane/powiêkszane je¿eli
> co¶ siê dzieje w tym dniu.
>

moze po prostu lepiej sobie ustawic odpowiednio kodowanie?

--
Na wszystko skutecznie pomaga woda.
Dwie, trzy krople na szklanke wódki

Mariusz Cegielka

12/14/2006 11:13:00 PM

0

Jacek Czerwinski napisa3(a):
> Dnia 8 Dec 2006 07:38:06 -0800, chips napisa3(a):
>> Nic nie mówi3e? na ten temat wiec zak3adam ?e wierzyciel jest
>> jeden a wp3aty s? dokonywane na jedno konto (albo tak czy siak
>> traktujemy to wszystko masowo-zbiorczo).

Mo?na tak przyj?a - rozpatrujemy 1 fakture dla 1 wierzyciela.

>> Co my?lisz o tym: je?li pojawia sie w dniu D nale?no?a w
>> wysoko?ci X to do sumy odsetek dodajemy nale?ne odsetki od kwoty X za
>> czas od D do konca okresu, a je?li pojawia sie wp3ata - odejmujemy.
>> To zadzia3a dla oprocentowania prostego na pewno, przy sk3adanym albo
>> ci?g3ym trzeba by chyba najpierw dyskontowaa?

No tak, zapomnia3em napisaa... Musze w programie zaprezentowaa, jak
odsetki by3y liczone, czyli wykazaa poszczególne podokresy i kwoty, od
których liczono odsetki w danym podokresie, itd... Powy?sza metoda w tym
przypadku wydaje mi sie ma3o przejrzysta.

> Ja kiedys to robi3em przechodz?c chronologicznie prez czas (zdarzenia
> obci?zenia (wg daty wymagalno?ci), wp3aty (wd daty skutecznej), zmiany
> odsetek) opieraj?c sie na saldzie chwilowym * stopa * dni odstepu /356 itd.
> Wszystkie operacje tego samego dnia traktowane jako jednoczesne (tak
> naprawde odsetki licz? sie IMHO do dnia poprzedniego)

Próbuje robia to w3a?nie tak. Problem polega w3a?nie na w3a?ciwym
wyliczeniu dni uwzgledniaj?c zmiany oprocentowania. Chyba mam to ju?
rozgryzione, musze zaimplementowaa i przetestowaa. Jak co? z tego
wyjdzie, to dam znaa :)

Pozdrawiam i dzieki za odpowiedzi.
--
Mariusz Cegie3ka / Kyllan
kyllan (uchos3onia) teneg / com / pl