Menu
Coddy logo textTech

Exibindo uma Contagem Regressiva

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

challenge icon

Desafio

Fácil

Você receberá três entradas: uma string JSON representando um array de eventos, uma string de data no formato YYYY-MM-DD representando a data de hoje e um nome de evento para exibir a contagem regressiva.

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"}]

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

A terceira entrada será um nome de evento neste formato: Team Meeting

Leia as três entradas e decodifique a string JSON em um array de eventos. Encontre o evento que corresponde ao nome do evento fornecido. Crie objetos DateTime tanto para a data de hoje quanto para a data do evento.

Calcule a diferença entre a data do evento e a data de hoje. Use o método diff() no objeto DateTime de hoje, passando o objeto DateTime do evento como parâmetro. Isso retorna um objeto DateInterval. Acesse a propriedade days deste objeto para obter o número de dias entre as duas datas.

Imprima a contagem regressiva no seguinte formato:

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

Se o evento não for encontrado no array, imprima: Event not found

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)
  • Terceira linha: Um nome de evento para exibir a contagem regressiva (exemplo: Team Meeting)

Saída esperada: Uma única linha mostrando a contagem regressiva no formato: Countdown to [event name]: [number of days] days, ou Event not found se o evento não existir

Experimente você mesmo

<?php
// Ler as entradas
$jsonString = trim(fgets(STDIN));
$todayDate = trim(fgets(STDIN));
$eventName = trim(fgets(STDIN));

// Decodificar a string JSON em um array de eventos
$events = (array)json_decode($jsonString, true);

// TODO: Escreva seu código abaixo
// Encontrar o evento que corresponde ao nome do evento fornecido
// Criar objetos DateTime para a data de hoje e a data do evento
// Calcular a diferença usando o método diff()
// Acessar a propriedade days do objeto DateInterval

// Exibir o resultado
echo $result;
?>

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