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 YYYY-AA-GG biçiminde temsil eden bir tarih dizesi ve geri sayımın görüntüleneceği etkinliğin adı.
İlk girdi şu biçimde 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 biçimde bir tarih dizesi olacaktır: 2024-04-01
Üçüncü girdi şu biçimde bir etkinlik adı olacaktır: Team Meeting
Üç girdinin tümünü okuyun ve JSON dizesini bir etkinlikler dizisine 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 diff() nesnesi üzerinde DateTime yöntemini kullanın ve parametre olarak etkinliğin DateTime nesnesini geçirin. Bu işlem 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 biçimde yazdırın:
Countdown to [event name]: [number of days] days
Etkinlik dizide bulunamazsa şunu yazdırın: Event not found
Girdi biçimi:
- İlk satır:
name,datevelocationanahtarlarına sahip etkinlikler dizisini temsil eden bir JSON dizesi - İkinci satır: Bugünün tarihini temsil eden YYYY-AA-GG biçiminde bir tarih dizesi (örnek:
2024-04-01) - Üçüncü satır: Geri sayımın görüntüleneceği etkinliğin adı (örnek:
Team Meeting)
Beklenen çıktı: Geri sayımı şu biçimde 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 EklemeKendi başına pratik yap: Online PHP derleyicisi