Creo que estás interpretando mal el ejercicio con esta parte
"sin exceder nunca de tres horas diarias ni de tres veces en una semana", esa parte te está haciendo confundir. Tienes como base un
sueldo por hora y las
horas que trabajó en la semana. Tu dices que suponiendo un trabajador trabaja de lunes a viernes y 8 horas diarias. Serían 40 horas a la semana. esas 40 horas se pagan el doble, ahora necesitas sacar las extras que según la ley federal
se pagan el triple, una resta horas trabajadas menos 40 horas. Ya tienes las horas extras, ahora esas horas se multiplican por el sueldo base y
por 3.
Básicamente sería:
Código PHP:
Ver original<?php
$horastrabajadas = 41; //1 hora extra
$sueldoporhora = 50;
$extras = $horastrabajadas - 40;
$sueldo = ($horastrabajadas-$extras)*$sueldoporhora*2;
$sueldoconextras = $sueldo+($extras*$sueldoporhora*3);
echo 'Sueldo semana: ' . $sueldoconextras;
ahora si lo quieres completar más:
Código PHP:
Ver original<?php
$horastrabajadas = array(8, 8, 8, 9, 8); //horas semana, 5 días $sueldoporhora = 50;
$sueldosemana = 0;
$ley = 0;
if (max($horastrabajadas) <= 11) { //sin exceder nunca de tres horas diarias foreach ($horastrabajadas as $ht) {
if ($ht == 8) {
$sueldosemana += $ht * $sueldoporhora * 2;
//las primeras 8 horas se pagarán doble
} else if ($ht > 8) {
$extras = $ht - 8;
$sueldosemana += 8 * $sueldoporhora * 2;
$sueldosemana += $extras * $sueldoporhora * 3;
$ley++;
//las demás el triple.
}
}
if ($ley <= 3) { //ni de tres veces en una semana
echo 'Sueldo semana: ' . $sueldosemana;
} else {
echo 'No cumple con la ley federal';
}
} else {
echo 'No cumple con la ley federal';
}
En cualquiera de los 2 casos da el mismo resultado.