Menu
Coddy logo textTech

Список предстоящих событий

Часть раздела Логика и управление потоком путешествия по PHP на Coddy — урок 61 из 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"},{"name":"Workshop","date":"2024-03-10","location":"Library"}]

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

Прочитайте оба входных значения и декодируйте строку JSON в массив событий. Создайте два объекта DateTime: один для сегодняшней даты (используя второе входное значение) и по одному для даты каждого события при итерации по массиву событий.

Отфильтруйте и отобразите только предстоящие события — события, дата которых больше или равна сегодняшней дате. Для каждого предстоящего события выведите информацию в следующем формате:

Upcoming: [name] on [date] at [location]

Выводите каждое предстоящее событие на новой строке в том порядке, в котором они появляются в массиве. Если дата события предшествует сегодняшней дате, не выводите его.

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

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

Ожидаемый результат: Каждое предстоящее событие выводится на отдельной строке в формате: Upcoming: [name] on [date] at [location]

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

<?php
// Прочитать JSON-строку событий
$eventsJson = fgets(STDIN);
$events = (array)json_decode($eventsJson, true);

// Прочитать сегодняшнюю дату
$todayDate = trim(fgets(STDIN));

// TODO: Напишите свой код ниже
// Создать объект DateTime для сегодняшней даты
// Перебрать события и сравнить даты
// Вывести предстоящие события в требуемом формате

?>

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