Geachte medeforummers, ik ben bezig met het maken van een renteberekeningsmodule, nu is dit niet zo moeilijk als het elk jaar dezelfde rente is, maar in dit geval is de rente elk jaar anders, sterker nog de rente veranderd halverwege het jaar nog wel eens.
Bijv. 01-01-2004 tot 01-07-2004 rente 5%
01-07-2004 tot 01-01-2005 rente 5,1%
Nu geldt natuurlijk niet die volledige 5% rente omdat dat een jaarlijkse rente is, hij moet dus eigenlijk het percentage berekenen voor de aantal dagen die er daadwerkelijk zijn. Ik neem als voorbeeld de periode 01-01-2004 tot 01-07-2004 hier is de rente 5%. Dit zijn 182 dagen van de 366 (2004 was eens schrikkeljaar). 366 is dan 100% en 182 is dan 49,73%. De rente over die periode is dus 49,73% van 5%, of te wel 2,48%. Dit percentage moet dus gebruikt worden om de rente te berekenen over de periode van 01-01-2004 tot 01-07-2004, daarna is het percentage dus weer anders. Het is erg ingewikkeld!
Ik heb nu de volgende code:
Deze funtie rekend dus de rente per maand uit en telt het bij elkaar op. Maar nu moet deze functie dus eigenlijk kijken welke rente er voor een bepaalde periode geldt. Kan iemand mij hierbij helpen?
Bijv. 01-01-2004 tot 01-07-2004 rente 5%
01-07-2004 tot 01-01-2005 rente 5,1%
Nu geldt natuurlijk niet die volledige 5% rente omdat dat een jaarlijkse rente is, hij moet dus eigenlijk het percentage berekenen voor de aantal dagen die er daadwerkelijk zijn. Ik neem als voorbeeld de periode 01-01-2004 tot 01-07-2004 hier is de rente 5%. Dit zijn 182 dagen van de 366 (2004 was eens schrikkeljaar). 366 is dan 100% en 182 is dan 49,73%. De rente over die periode is dus 49,73% van 5%, of te wel 2,48%. Dit percentage moet dus gebruikt worden om de rente te berekenen over de periode van 01-01-2004 tot 01-07-2004, daarna is het percentage dus weer anders. Het is erg ingewikkeld!
Ik heb nu de volgende code:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
| function GetMonthDiff($first, $second) { $max = max($first, $second); $min = min($first, $second); $months = 0; while (strtotime('-1 month', $max) > $min) { $max = strtotime('-1 month', $max); $months++; } return $months; } function rente ($bedrag, $datum) { $wetrente = (4.8/100)+1; $datum = explode('-', $datum); $datum = array_reverse($datum); $datum = implode('-', $datum); $toen = strtotime($datum); $nu = time(); $aantalmaanden = GetMonthDiff($toen, $nu); for ($maand = 0; $maand < $aantalmaanden ; $maand++) { $bedrag = $bedrag * $wetrente; } return $bedrag; } |
Deze funtie rekend dus de rente per maand uit en telt het bij elkaar op. Maar nu moet deze functie dus eigenlijk kijken welke rente er voor een bepaalde periode geldt. Kan iemand mij hierbij helpen?