<?php
$_POST['s1'] = '16.15';
$_POST['s2'] = '23.30';
$wagesLookup = [
'18:00' => 146 / 4, // morning
'22:00' => 204 / 4, // evening
'24:00' => 244 / 4 // night
];
$period = new DatePeriod(
DateTime::createFromFormat('H.i', $_POST['s1']),
new DateInterval('PT15M'),
DateTime::createFromFormat('H.i:01', "{$_POST['s2']}:01") // bump ahead to make "inclusive"
);
$total = 0;
foreach ($period as $dt) {
$time = $dt->format('H:i');
foreach ($wagesLookup as $mark => $pay) {
if ($time <= $mark) {
break;
}
}
printf("%s earned %.02f\n", $dt->format('H:i'), $pay);
$total += $pay;
}
echo "Total: $total";
- Output for 7.4.0 - 7.4.33, 8.0.1 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.26, 8.4.1 - 8.4.13
- 16:15 earned 36.50
16:30 earned 36.50
16:45 earned 36.50
17:00 earned 36.50
17:15 earned 36.50
17:30 earned 36.50
17:45 earned 36.50
18:00 earned 36.50
18:15 earned 51.00
18:30 earned 51.00
18:45 earned 51.00
19:00 earned 51.00
19:15 earned 51.00
19:30 earned 51.00
19:45 earned 51.00
20:00 earned 51.00
20:15 earned 51.00
20:30 earned 51.00
20:45 earned 51.00
21:00 earned 51.00
21:15 earned 51.00
21:30 earned 51.00
21:45 earned 51.00
22:00 earned 51.00
22:15 earned 61.00
22:30 earned 61.00
22:45 earned 61.00
23:00 earned 61.00
23:15 earned 61.00
Total: 1413
preferences:
126.56 ms | 408 KiB | 5 Q