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.
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,datevelocationanahtarları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
1İleri Seviye Fonksiyonlar
Anonim FonksiyonlarClosure'lar ve 'use'Ok Fonksiyonları (Arrow Functions)Geri Çağırma (Callback) Fonksiyonları'call_user_func' KullanımıDeğişken FonksiyonlarReferans ile Değer AktarımıÖz Yinelemeli (Recursive) FonksiyonlarÖzet: Fonksiyon Karması4Çok Boyutlu Diziler
2 Boyutlu Dizi Oluşturma2 Boyutlu Dizi Elemanlarına Erişme2 Boyutlu Dizi Elemanlarını Değiştirmeİç İçe Döngülerle Yineleme2 Boyutlu İlişkisel DizilerÖzet: Basit Izgara Egzersizi2İleri Düzey Dizi İşlemleri
'array_push' ile Ekleme'array_pop' ile Silme'array_unshift' ile Ekleme'array_shift' ile Silmeİndisli Dizileri Birleştirmeİlişkisel Dizileri Birleştirme'array_slice' ile Kesit Alma'in_array' ile Değer Kontrolü'array_search' ile Anahtar AramaÖzet: Çalma Listesi Alıştırması3Dizileri Sıralama
İndisli Dizileri Artan Sırada Sıralamaİndisli Dizileri Azalan Sırada Sıralamaİlişkisel Dizileri Değere Göre Sıralamaİlişkisel Dizileri Anahtara Göre SıralamaDoğal Sıralama (Natural Order)'usort' ile Özel SıralamaÖzet: Liderlik Tablosu Sıralama6Yüksek Mertebeden Dizi Fonksiyonları
'array_map' ile DönüştürmeÖzel Fonksiyon ile 'array_map''array_filter' ile FiltrelemeÖzel Fonksiyon ile 'array_filter''array_reduce' ile İndirgeme'array_walk' ile GezinmeÖzet: Veri İşleme9Etkinlik Planlayıcı
Etkinlik VerisiYeni Etkinlik Ekleme