Exibindo uma Contagem Regressiva
Parte da seção Lógica & Fluxo do Journey de PHP da Coddy — lição 64 de 68.
Desafio
FácilVocê 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,dateelocation - 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
1Funções Avançadas
Funções AnônimasClosures e 'use'Arrow FunctionsFunções de CallbackUsando 'call_user_func'Funções VariáveisPassagem por ReferênciaFunções RecursivasRecapitulação: Mix de Funções4Arrays Multidimensionais
Criando um Array 2DAcessando Elementos de um Array 2DModificando Elementos de um Array 2DIterando com Loops AninhadosArrays Associativos 2DRecapitulação: Exercício de Grade Simples2Manipulações Avançadas de Arrays
Adicionando com 'array_push'Removendo com 'array_pop'Adicionando com 'array_unshift'Removendo com 'array_shift'Mesclando Arrays IndexadosMesclando Arrays AssociativosExtraindo com 'array_slice'Valores com 'in_array'Chaves com 'array_search'Recapitulação: Exercício de Playlist3Ordenação de Arrays
Ordenar Arrays Indexados (Crescente)Ordenar Arrays Indexados (Decrescente)Ordenar Arrays Associativos por ValorOrdenar Arrays Associativos por ChaveOrdenação por Ordem NaturalOrdenação Personalizada com 'usort'Recapitulação: Ordenação de Leaderboard6Funções de Ordem Superior para Arrays
Transformando com 'array_map''array_map' com Funções PersonalizadasFiltrando com 'array_filter''array_filter' com Funções PersonalizadasReduzindo com 'array_reduce'Percorrendo com 'array_walk'Recapitulação: Processamento de Dados9Agendador de Eventos
Dados do EventoAdicionando um Novo Evento