Menu
Coddy logo textTech

Отображение обратного отсчета

Часть раздела Логика и управление потоком путешествия по PHP на Coddy — урок 64 из 68.

challenge icon

Задание

Легко

Вы получите три входных значения: строку JSON, представляющую массив событий, строку с датой в формате YYYY-MM-DD, представляющую сегодняшнюю дату, и название события, для которого нужно отобразить обратный отсчет.

Первым входным значением будет строка JSON в следующем формате: [{"name":"Team Meeting","date":"2024-04-15","location":"Office"},{"name":"Conference","date":"2024-05-20","location":"Convention Center"}]

Вторым входным значением будет строка с датой в формате: 2024-04-01

Третьим входным значением будет название события в формате: Team Meeting

Прочитайте все три входных значения и декодируйте строку JSON в массив событий. Найдите событие, которое соответствует указанному названию. Создайте объекты DateTime как для сегодняшней даты, так и для даты события.

Вычислите разницу между датой события и сегодняшней датой. Используйте метод diff() для объекта DateTime сегодняшней даты, передав объект DateTime события в качестве параметра. Это вернет объект DateInterval. Обратитесь к свойству days этого объекта, чтобы получить количество дней между двумя датами.

Выведите обратный отсчет в следующем формате:

Countdown to [event name]: [number of days] days

Если событие не найдено в массиве, выведите: Event not found

Формат входных данных:

  • Первая строка: Строка JSON, представляющая массив событий с ключами name, date и location
  • Вторая строка: Строка с датой в формате YYYY-MM-DD, представляющая сегодняшнюю дату (пример: 2024-04-01)
  • Третья строка: Название события, для которого нужно отобразить обратный отсчет (пример: Team Meeting)

Ожидаемый результат: Одна строка, показывающая обратный отсчет в формате: Countdown to [event name]: [number of days] days, или Event not found, если событие не существует

Попробуйте сами

<?php
// Чтение входных данных
$jsonString = trim(fgets(STDIN));
$todayDate = trim(fgets(STDIN));
$eventName = trim(fgets(STDIN));

// Декодирование строки JSON в массив событий
$events = (array)json_decode($jsonString, true);

// TODO: Напишите свой код ниже
// Поиск события, соответствующего указанному названию события
// Создание объектов DateTime для сегодняшней даты и даты события
// Вычисление разницы с помощью метода diff()
// Доступ к свойству days объекта DateInterval

// Вывод результата
echo $result;
?>

Все уроки раздела Логика и управление потоком