![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 984 Pomógł: 41 Dołączył: 16.03.2002 Skąd: Płock Ostrzeżenie: (0%) ![]() ![]() |
Mial kiedys ktos doczynienia ze skryptem typu kalkulator odsetkowy ktory oblicza odsetki od podanych kwot, miedzy dwoma datami na podstawie roznych progow podatkowych? troche zamotane.. przyklad tutaj
http://e-dlugi.pl/odsetki |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 456 Pomógł: 0 Dołączył: -- Ostrzeżenie: (0%) ![]() ![]() |
Nie zrozumialem dokladnie pierwszego postu. Przeciez to jest jasne ze trzeba wyliczyc odsetki osobno dla kazdego progu bo trzeba uzyc do tego danej stopy ktora byla aktualna w danym okresie.
Kod <?php
if($poczatkowa!=""){ $db_data=array(); $db_stopa=array(); $db_data[0]="15/08/1992"; $db_data[1]="01/05/1993"; $db_data[2]="15/12/1995"; $db_data[3]="01/01/1997"; $db_data[4]="15/04/1998"; $db_data[5]="01/02/1999"; $db_data[6]="15/05/1999"; $db_data[7]="01/11/2000"; $db_data[8]="15/12/2001"; $db_stopa[0]="60"; $db_stopa[1]="54"; $db_stopa[2]="46"; $db_stopa[3]="35"; $db_stopa[4]="33"; $db_stopa[5]="24"; $db_stopa[6]="21"; $db_stopa[7]="30"; $db_stopa[8]="20"; $poczatkowa=explode("/",chop($poczatkowa));//wyciagamy z stringa date dzien i miesiac $poczatkowa=mktime(0,0,0,$poczatkowa[1],$poczatkowa[0],$poczatkowa[2]);//ustalamy stempel czasu dla poczatku---/ $koncowa=explode("/",chop($koncowa));//wyciagamy z stringa date dzien i miesiac $koncowa=mktime(0,0,0,$koncowa[1],$koncowa[0],$koncowa[2]);//---a tu stempel czasu dla konca $zaleglosc=chop($zaleglosc);//usuwamy rn //--ta petla rozwala nam string na daty i zamienia je na stempel czasu for($i=0;$i<count($db_data);$i++){ $ex=explode("/",$db_data[$i]); $tim=mktime(0,0,0,$ex[1],$ex[0],$ex[2]); $db_data[$i]=$tim; } // tu sorujemy jesli sa nie pokoleji ale w tym samym czasie sortujemy rowniez array ze stopami //wiadomo dlaczego :)) array_multisort($db_data,$db_stopa); //ustalamy na ktorej pozycji jest najblizej polozona data $j=0; for($i=0;$i<count($db_data);$i++){ $j=$i; if($poczatkowa<$db_data[$i]){ break; } } //-------------------liczymy odsetki od daty poczatkowej do pierwszego progu-----// $prog=$db_data[$j]; $roznica_dni=explode(".",(($prog-$poczatkowa)/86400));//liczymy roznice dni i odcinamy wartosc po przecinku $roznica_dni=$roznica_dni[0];//tu przypiszujemy te wartosc $stopa="0.".$db_stopa[$j-1]; // przypisujemy procent stopy do wartosci po przecinku $odsetki_progu[]=($zaleglosc*$roznica_dni*$stopa)/365; // wyliczymy odsetki $j++; //-----tu liczymy pomiedzy calkowitymi progami---// while($koncowa>$db_data[$j]){ $prog=$db_data[$j]; $roznica_dni=explode(".",(($prog-$db_data[$j-1])/86400));//liczymy roznice dni i odcinamy wartosc po przecinku $roznica_dni=$roznica_dni[0];//tu przypiszujemy te wartosc $stopa="0.".$db_stopa[$j-1]; // przypisujemy procent stopy do wartosci po przecinku $odsetki_progu[]=($zaleglosc*$roznica_dni*$stopa)/365; // wyliczymy odsetki $j++; } //--------a tu liczymy odsetki po ostatnim progu do dnia koncowego----// $roznica_dni=explode(".",(($koncowa-$db_data[$j-1])/86400));//liczymy roznice dni i odcinamy wartosc po przecinku $roznica_dni=$roznica_dni[0];//tu przypiszujemy te wartosc $stopa="0.".$db_stopa[$j-1]; // przypisujemy procent stopy do wartosci po przecinku $odsetki_progu[]=($zaleglosc*$roznica_dni*$stopa)/365; //----sumujemy odsetki progow $odsetki=0; for($i=0;$i<count($odsetki_progu);$i++){ $odsetki=$odsetki+$odsetki_progu[$i]; } } ?> <html> <body> odsetki :<b><?php echo"$odsetki"; ?></b> <hr> Wpisz date w takim formacie: 31/05/2001 !!<br> <form action="<? echo "$PHP_SELF";?>" method="post"> data poczatkowa:<br> <input type="text" name="poczatkowa" value="15/05/1994"><br> data koncowa:<br> <input type="text" name="koncowa" value="20/11/2000"><br> zaleglosc:<br> <input type="text" name="zaleglosc" value="2000"><br> <input type="submit" name="submit" value="przelicz"> </form> </body> </html> wez pobaw sie tym Liczy troche inaczej niz to ten kalkulator z banku ale bardzo przyblizonie wiec mysle ze jest to kwesja zaokraglen :wink: w liniach wyliczajacych roznice dni masz cos takiego: Kod $roznica_dni=explode(".",(($koncowa-$db_data[$j-1])/86400));//liczymy roznice dni i odcinamy wartosc po przecinku
$roznica_dni=$roznica_dni[0];//tu przypiszujemy te wartosc wykomentuj druga linie i wywal to explode czyli zrob cos takiego: Kod $roznica_dni=($koncowa-$db_data[$j-1])/86400;//liczymy roznice dni i odcinamy wartosc po przecinku
//$roznica_dni=$roznica_dni[0];//tu przypiszujemy te wartosc i wartosc sie troche zmieni bo w tym miejscu odcinalem reszte po przecinku w roznicy dnii a oni moze jej nie odcinaja tylko zaokraglaja np: do dwoch miejsc po przecinku.. Pobaw sie tym jak bedziesz mial jakies pytania to wal moze cos wymysle lecz nie oczekuj ode mnie za wiele gdyz nie bede mial w tym tygodniu duzo czasu. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 26.09.2025 - 23:27 |