Menu
Coddy logo textTech

Listando Próximos Eventos

Parte da seção Lógica & Fluxo do Journey de PHP da Coddy — lição 61 de 68.

challenge icon

Desafio

Fácil

Você receberá duas entradas: uma string JSON representando o array de eventos existentes e uma string de data no formato YYYY-MM-DD representando a data de hoje.

A primeira entrada será uma string JSON neste formato: [{"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"}]

A segunda entrada será uma string de data neste formato: 2024-04-01

Leia ambas as entradas e decodifique a string JSON em um array de eventos. Crie dois objetos DateTime: um para a data de hoje (usando a segunda entrada) e um para a data de cada evento conforme você itera pelos eventos.

Filtre e exiba apenas os eventos futuros - eventos cuja data seja maior ou igual à data de hoje. Para cada evento futuro, imprima-o no seguinte formato:

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

Imprima cada evento futuro em uma linha separada, na ordem em que aparecem no array. Se a data de um evento for anterior à data de hoje, não o imprima.

Formato de entrada:

  • Primeira linha: Uma string JSON representando o array de eventos com as chaves name, date e location
  • Segunda linha: Uma string de data no formato YYYY-MM-DD representando a data de hoje (exemplo: 2024-04-01)

Saída esperada: Cada evento futuro impresso em uma linha separada no formato: Upcoming: [name] on [date] at [location]

Experimente você mesmo

<?php
// Lê a string JSON de eventos
$eventsJson = fgets(STDIN);
$events = (array)json_decode($eventsJson, true);

// Lê a data de hoje
$todayDate = trim(fgets(STDIN));

// TODO: Escreva seu código abaixo
// Cria o objeto DateTime para a data de hoje
// Percorre os eventos e compara as datas
// Imprime os próximos eventos no formato exigido

?>

Todas as lições de Lógica & Fluxo