<?php
class TaskQueue {
private $queue = [];
public function enqueue(string $dateString): bool {
// Validate date string format (YYYY-MM-DD)
if (!preg_match("/^\d{4}-\d{2}-\d{2}$/", $dateString)) {
return false; // Invalid date format
}
$date = date_create($dateString);
if ($date === false) {
return false; // Invalid date
}
$this->queue[] = $dateString;
return true;
}
public function dequeue(): ?string {
if (empty($this->queue)) {
return null; // Queue is empty
}
return array_shift($this->queue);
}
public function getQueueSize(): int {
return count($this->queue);
}
}
//Example usage
$queue = new TaskQueue();
if ($queue->enqueue('2024-03-15')) {
echo "Task enqueued for 2024-03-15\n";
} else {
echo "Invalid date format\n";
}
if ($queue->enqueue('2024-03-20')) {
echo "Task enqueued for 2024-03-20\n";
} else {
echo "Invalid date format\n";
}
echo "Queue size: " . $queue->getQueueSize() . "\n";
$nextTask = $queue->dequeue();
if ($nextTask !== null) {
echo "Processing task for: " . $nextTask . "\n";
} else {
echo "Queue is empty\n";
}
echo "Queue size: " . $queue->getQueueSize() . "\n";
?>
Add your comment