Menu
Coddy logo textTech

Geri Sayım Görüntüleme

Coddy'nin PHP Journey'sinin Mantık ve Akış bölümünün bir parçası — ders 64 / 68.

challenge icon

Görev

Kolay

Üç girdi alacaksınız: bir etkinlik dizisini temsil eden bir JSON dizesi, bugünün tarihini temsil eden YYYY-MM-DD formatında bir tarih dizesi ve geri sayımın görüntüleneceği bir etkinlik adı.

İlk girdi şu formatta bir JSON dizesi olacaktır: [{"name":"Team Meeting","date":"2024-04-15","location":"Office"},{"name":"Conference","date":"2024-05-20","location":"Convention Center"}]

İkinci girdi şu formatta bir tarih dizesi olacaktır: 2024-04-01

Üçüncü girdi şu formatta bir etkinlik adı olacaktır: Team Meeting

Her üç girdiyi de okuyun ve JSON dizesini bir etkinlik dizisine (events array) dönüştürün. Sağlanan etkinlik adıyla eşleşen etkinliği bulun. Hem bugünün tarihi hem de etkinliğin tarihi için DateTime nesneleri oluşturun.

Etkinlik tarihi ile bugünün tarihi arasındaki farkı hesaplayın. Bugünün DateTime nesnesi üzerinde diff() metodunu kullanın ve parametre olarak etkinliğin DateTime nesnesini geçirin. Bu, bir DateInterval nesnesi döndürür. İki tarih arasındaki gün sayısını almak için bu nesnenin days özelliğine erişin.

Geri sayımı aşağıdaki formatta yazdırın:

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

Eğer etkinlik dizide bulunamazsa, şunu yazdırın: Event not found

Girdi formatı:

  • Birinci satır: name, date ve location anahtarlarını içeren etkinlik dizisini temsil eden bir JSON dizesi
  • İkinci satır: Bugünün tarihini temsil eden YYYY-MM-DD formatında bir tarih dizesi (örnek: 2024-04-01)
  • Üçüncü satır: Geri sayımı görüntülenecek etkinlik adı (örnek: Team Meeting)

Beklenen çıktı: Geri sayımı şu formatta gösteren tek bir satır: Countdown to [event name]: [number of days] days, veya etkinlik mevcut değilse Event not found

Kendin dene

<?php
// Girdileri oku
$jsonString = trim(fgets(STDIN));
$todayDate = trim(fgets(STDIN));
$eventName = trim(fgets(STDIN));

// JSON dizesini etkinlikler dizisine dönüştür
$events = (array)json_decode($jsonString, true);

// YAPILACAK: Kodunuzu aşağıya yazın
// Sağlanan etkinlik adıyla eşleşen etkinliği bulun
// Bugünün tarihi ve etkinliğin tarihi için DateTime nesneleri oluşturun
// diff() yöntemini kullanarak farkı hesaplayın
// DateInterval nesnesinden days özelliğine erişin

// Sonucu yazdır
echo $result;
?>

Mantık ve Akış bölümündeki tüm dersler