@ 2023-12-03T23:21:48Z <?php
$vacancies = [
'2024-01-01 09:00:00' => 'booked',
'2024-01-01 09:10:00' => 'booked',
'2024-01-01 09:20:00' => 'booked',
'2024-01-01 09:30:00' => 'booked',
'2024-01-01 09:40:00' => 'booked',
'2024-01-01 09:50:00' => 'booked',
'2024-01-01 10:00:00' => null,
'2024-01-01 10:10:00' => null,
'2024-01-01 10:20:00' => null,
'2024-01-01 10:30:00' => null,
'2024-01-01 10:40:00' => null,
'2024-01-01 10:50:00' => null,
'2024-01-01 11:00:00' => null,
'2024-01-01 11:10:00' => null,
'2024-01-01 11:20:00' => null,
'2024-01-01 11:30:00' => null,
'2024-01-01 11:40:00' => null,
'2024-01-01 11:50:00' => null,
'2024-01-01 12:00:00' => null,
'2024-01-01 12:10:00' => null,
'2024-01-01 12:20:00' => null,
'2024-01-01 12:30:00' => null,
'2024-01-01 12:40:00' => null,
'2024-01-01 12:50:00' => null,
'2024-01-01 13:00:00' => null,
'2024-01-01 13:10:00' => null,
'2024-01-01 13:20:00' => null,
'2024-01-01 13:30:00' => null,
'2024-01-01 13:40:00' => null,
'2024-01-01 13:50:00' => null,
'2024-01-01 14:00:00' => null,
'2024-01-01 14:10:00' => null,
'2024-01-01 14:20:00' => null,
'2024-01-01 14:30:00' => null,
'2024-01-01 14:40:00' => null,
'2024-01-01 14:50:00' => null,
'2024-01-01 15:00:00' => null,
'2024-01-01 15:10:00' => null,
'2024-01-01 15:20:00' => null,
'2024-01-01 15:30:00' => null,
'2024-01-01 15:40:00' => null,
'2024-01-01 15:50:00' => null,
'2024-01-01 16:00:00' => 'booked',
'2024-01-01 16:10:00' => 'booked',
'2024-01-01 16:20:00' => 'booked',
'2024-01-01 16:30:00' => 'booked',
'2024-01-01 16:40:00' => 'booked',
'2024-01-01 16:50:00' => null,
'2024-01-01 17:00:00' => null,
'2024-01-01 17:10:00' => null,
'2024-01-01 17:20:00' => null,
'2024-01-01 17:30:00' => null,
'2024-01-01 17:40:00' => null,
'2024-01-01 17:50:00' => null,
];
$newTests = [
'2024-01-01 09:50:00',
'2024-01-01 10:00:00',
'2024-01-01 15:40:00',
'2024-01-01 17:40:00',
];
function is30MinuteSessionVacant(array $vacancies, string $dateTime): bool
{
for ($addMinutes = 0; $addMinutes < 30; $addMinutes += 10) {
$dateTime = date('Y-m-d H:i:s', strtotime("$dateTime +{$addMinutes} minutes"));
if (!key_exists($dateTime, $vacancies)) {
throw new Exception('Proposed time is not within business hours');
}
if ($vacancies[$dateTime] !== null) {
return false;
}
}
return true;
}
foreach ($newTests as $test) {
echo "\n$test: ";
try {
echo is30MinuteSessionVacant($vacancies, $test) ? 'available' : 'unavailable';
} catch (Exception $e) {
echo $e->getMessage();
}
}
Enable javascript to submit You have javascript disabled. You will not be able to edit any code.
Output for 8.1.0 - 8.1.33 , 8.2.0 - 8.2.29 , 8.3.0 - 8.3.25 , 8.4.1 - 8.4.12 2024-01-01 09:50:00: unavailable
2024-01-01 10:00:00: available
2024-01-01 15:40:00: unavailable
2024-01-01 17:40:00: Proposed time is not within business hours preferences:dark mode live preview ace vim emacs key bindings
69.24 ms | 406 KiB | 5 Q