я написал простой кусок кода, чтобы вычислить из некоторых входных данных, что некоторые получат за свои рабочие часы, но, похоже, все работает наоборот, как я планировал. Я не углубился в php-кодирование, поэтому мне все еще нужно решить некоторые ранние проблемы.
Этот скрипт работает, если я наберу свой пример «50» часов. Нет, если я наберу «49» часов. Затем он говорит, что у меня 11 часов сверхурочной работы, что неверно, тогда должно быть 9 часов сверхурочной работы.
игнорировать последний кусок сценария. Это просто дурачок прямо сейчас.
<?php
// declaration.
$warbeit = $_POST['wochenarbeit']; //your working hours
$stundenlohn = 12.50; //what you get paid for hour
$ueberstunden = 15; //what you get paid if you work more than 40 hours
$berechnung = 0; //how many hours over 40 hours you have - overtime hours
$auszahlungu = 0; //what you get paid for your overtime hours
$auszahlungn = 0; // what you get paid for your hours until overtime
$gesamtlohn = 0; // what you get paid as sum
$lohn2 = 0;
$zuviel = 0;if ($warbeit <= 60) { //if your workingtime is < 60 hours a week for example 50 hours
if ($warbeit > 40) { //if your woringtime is more than 40 hours a week (between 40 and 60) if you take the 50 hours this should work
$berechnung = (60 - $warbeit); //how many hours over 40 hours you have - overtime hours - the sum here by 50 hours should be 10 (60-50=10)
$auszahlungu = ($berechnung * $ueberstunden); //what you get paid for your overtime hours - 10 times 15 should be 150 here
$auszahlungn = ($warbeit - $berechnung) * $stundenlohn; // what you get paid for your hours until overtime - (50 - 10) * (12.50) - should be 500
$gesamtlohn = $auszahlungn + $auszahlungu; // what you get paid as sum - 500 + 150 = 650
echo "Ihre Überstunden: " . $berechnung . " h<br>";
echo "Überstundenabrechnung: " . $auszahlungu . " €<br>";
echo "Ihr Gesamtlohn: " . $gesamtlohn . " €<br>";
}
else {
$lohn2 = $warbeit * $stundenlohn;
echo "Ihr Gesamtlohn: " . $lohn2 . " €<br>";
}
}
else {
$zuviel = (40 * 12.50) + (20 * 15);echo "es werden nur 60 Stunden pro Woche ausgezahlt!";
echo "Sie bekommen: " . $zuviel . " €<br>";
}
?>
Похоже, это ваша главная проблема
$berechnung = (60 - $warbeit);
Если вы действительно собираетесь для
//how many hours over 40 hours you have - overtime hours
Тогда должно быть
$berechnung = ($warbeit - 40);
То, как вы это делаете, в настоящее время работает на 50, но только по совпадению, потому что 60-50 = 50-40.
вам нужны средние и крайние случаи
if($warbeit == 40){
process this
}
if ($warbeit > 40 and $warbeit <50) {
process those
}
if ($warbeit >= 50 and $warbeit <60) {
process these
}
if($warbeit == 60){
process this
}