Menu
Coddy logo textTech

Etkinlikleri Aya Göre Filtreleme

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

challenge icon

Görev

Kolay

Üç girdi alacaksınız: etkinlik dizisini temsil eden bir JSON dizesi, bugünün tarihini temsil eden YYYY-MM-DD formatında bir tarih dizesi ve filtreleme yapmak için bir ay numarası (1-12).

İ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"},{"name":"Workshop","date":"2024-04-25","location":"Library"}]

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

Üçüncü girdi şu formatta bir ay numarası olacaktır: 4

Her üç girdiyi de okuyun ve JSON dizesini bir etkinlik dizisine (events array) dönüştürün. Etkinlikleri şu iki koşulu da karşılayacak şekilde filtreleyin:

  • Etkinlik tarihi, bugünün tarihine eşit veya daha büyük olmalıdır (yalnızca yaklaşan etkinlikler)
  • Etkinlik belirtilen ayda gerçekleşmelidir

Tarihleri karşılaştırmak için DateTime nesnelerini kullanın ve her etkinliğin tarihinden ayı, "n" format karakterini (ayı başında sıfır olmadan bir sayı olarak döndürür) kullanan format() yöntemiyle çıkarın.

Filtrelemeden sonra, eşleşen her etkinliği aşağıdaki formatta yazdırın:

Event in month [month]: [name] on [date] at [location]

Her etkinliği, dizide göründükleri sırayla ayrı bir satıra yazdırın. Her iki kritere de uyan hiçbir etkinlik yoksa hiçbir şey yazdırmayın.

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: 1 ile 12 arasında bir ay numarası (örnek: Nisan için 4)

Beklenen çıktı: Hem yaklaşan hem de belirtilen ayda olan her etkinlik, şu formatta ayrı bir satıra yazdırılır: Event in month [month]: [name] on [date] at [location]

Kendin dene

<?php
// Girdileri oku
$jsonInput = trim(fgets(STDIN));
$todayDate = trim(fgets(STDIN));
$monthNumber = intval(trim(fgets(STDIN)));

// JSON'u diziye dönüştür
$events = (array)json_decode($jsonInput, true);

// TODO: Kodunuzu aşağıya yazın
// Gelecek olan ve belirtilen ayda gerçekleşen etkinlikleri filtreleyin
// Tarihleri karşılaştırmak için DateTime nesnelerini kullanın
// Eşleşen her etkinliği gerekli formatta yazdırın

?>

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