Hallo liebe Forumgemeinde!
Ich habe von meinem Informatiklehrer den Auftrag bekommen, ein PHP-Script zu erstellen, welches aus den Inputs Grundkapital, Zinssatz und Zinstage das Endkapital berechnet und ausgibt.
Eigentlich war ich recht sicher, dass es klappt, doch PHP will wohl nicht so…
:sad:
Könntet ihr mir vielleicht sagen wo sich ein Fehler eingeschlichen hat und wo Verbesserungsbedarf nötig ist?
Hier das HTML-Formular:
[HTML]
Kapital: | € | ||||
Zinssatz: ("," als ".") |
% | ||||
Zinstage: |
|
||||
Der PHP-Code zur Verarbeitung lautet:
[PHP]<?php
$nachkommastellen = 2; // Anzahl der Nachkommastellen des Endbetrags (Summe) wird der Variable „$nachkommastellen“ zugewiesen
$kapital = $_POST[‚kapital‘]; // Wert „kapital“ wird angenommen und der Variable „$kapital“ zugewiesen
$zinssatz = $_POST[‚zinssatz‘]/100; // Wert „zinssatz“ wird angenommen und der Variable „$zinssatz“ zugewiesen und durch 100 geteilt, um den Zinssatz als Kommazahl zu erhalten
$start_jahr = $_POST[‚start_jahr‘]*360; // Wert „start_jahr“ wird angenommen, mit 360 multipliziert und der Variable „$start_jahr“ zugewiesen
$start_monat = $_POST[‚start_jahr‘]*30; // Wert „start_monat“ wird angenommen, mit 30 multipliziert und der Variable „$start_monat“ zugewiesen
$start_tag = $_POST[‚start_jahr‘]; // Wert „start_tag“ wird angenommen und der Variable „$start_tag“ zugewiesen
if($start_tag == 31){
$start_tag = 30;
}
$ende_jahr = $_POST[‚start_jahr‘]*360; // Wert „ende_jahr“ wird angenommen, mit 360 multipliziert und der Variable „$ende_jahr“ zugewiesen
$ende_monat = $_POST[‚start_jahr‘]*30; // Wert „ende_monat“ wird angenommen, mit 30 multipliziert und der Variable „$ende_monat“ zugewiesen
$ende_tag = $_POST[‚start_jahr‘]; // Wert „ende_tag“ wird angenommen und der Variable „$ende_tag“ zugewiesen
if($ende_tag == 31){
$ende_tag = 30;
}
$start_tag_dauer = $start_jahr+$start_monat+$start_tag; // Zeitspanne zwischen Christi-Geburt und Vertragsstart wird errechnet
$ende_tag_dauer = $ende_jahr+$ende_monat+$ende_tag; // Zeitspanne zwischen Christi-Geburt und Vertragsende wird errechnet
$zinstage = $ende_tag_dauer-$start_tag_dauer;
if($kapital == „“ or $kapital == „0“){ // WENN Kapital ist gleich leer oder Kapital ist gleich 0
echo „Bitte gib dein Kapital an.“; // DANN gib Text aus
}elseif($zinssatz == „“ or $zinssatz == „0“){ // WENN Zinssatz ist gleich leer oder Zinssatz ist gleich 0
echo „Bitte gib deinen Zinssatz an.“; // DANN gib Text aus
}elseif($zinstage == „“ or $zinstage == „0“){ // WENN Zinstage ist gleich leer oder Zinstage ist gleich 0
echo „Bitte gib deine verzinsten Tage an.“; // DANN gib Text aus
}else{ // ANSONSTEN:
$jahreszins = $zinssatz*$kapital; // Jahreszins wird mittels Multiplikation von Zinssatz und Kapital errechnet
$tageszins = $jahreszins/360; // Tageszins wird mittels Division aus Jahreszins und Antahl der Tage in jahr (360 bei Banken) errechnet
$zinsbetrag = $tageszins*$zinstage; // Zinsbetrag wird mittels Multiplikation aus Tageszins und Zinstage errechnet
$summe = $kapital+$zinsbetrag; // Summe wird mittels Summe aus Tageszins und Zinsbetrag errechnet
$summe_gerundet = round($summe,$nachkommastellen); // Summe wird auf zwei Nachkommstellen (siehe oben) gerundet und der Variable „$summe_gerundet“ zugewiesen
$zinssatz_prozent = $zinssatz*100; // Zinssatz wird mit 100 multipliziert um den Wert in Prozent zu erhalten und wird dann der Variable „$zinssatz_prozent“ zugewiesen
echo "Dein Gesamtkapital: ".$summe_gerundet.„€
\r\n“; // Gesamtbetrag wird in Euro ausgegeben
echo "Dein Zinsbetrag: ".$zinsbetrag.„€
\r\n“; // Zinsbetrag wird ausgegeben
echo „Zuvor getätigte Eingaben:
\r\n“; // Eingaben:
echo "Kapital: ".$kapital.„€
\r\n“; // Kapital ohne Zinsen wird ausgegeben
echo „Zinssatz: „.$zinssatz_prozent.“%
\r\n“; // Zinssatz wird ausgegeben
echo „Zinstage: „.$zinstage.“
\r\n“; // Die verzinsten Tage werden ausgegeben
} // ANSONSTEN-Klammer wird geschlossen
?>[/PHP]
Verzeiht die vielen Kommentare, diese brauche ich jedoch zur Erläuterung vor meiner Schulklasse…
Zur Erläuterung noch:
Um die Zinsberechnung wie bei Banken erfolgen zu lassen, hat im Script ein Jahr 360 Tage und ein Monat 30. (Sollte ein Monat 31 Tage haben, so wird er als 30 gewertet.)
Das Ergebnis meiner bemühungen könnt ihr aus ZinsBerechnung
Wen ihr noch Fragen habt dann meldet euch bitte!
vielen dank schon einmal :razz:
MfG Vitus
P.S.: Muss ich bei dem Umwandeln von einem 31-tägigem Monat in einen 30-tägigen die Zahlen in anführungszeichen schreiben oder könnte das die Funktionalität beeinflussen? Oder umgekehrt? :shock: