Özet: Tarih Hesaplamaları
Coddy'nin PHP Journey'sinin Mantık ve Akış bölümünün bir parçası — ders 51 / 68.
Görev
KolayÜç girdi alacaksınız: bir başlangıç tarihi, bir bitiş tarihi ve bir format dizesi. İlk iki girdi Y-m-d formatında tarih dizeleridir (örnek: 2024-03-15) ve üçüncü girdi +5 days, -2 weeks veya +1 month gibi bir değişiklik ifadesidir.
Her üç girdiyi de okuyun, başlangıç ve bitiş tarihlerinden iki DateTime nesnesi oluşturun, değişiklik ifadesini başlangıç tarihine uygulayın ve ardından hangi tarihin daha sonra geldiğini belirleyin: değiştirilmiş başlangıç tarihi mi yoksa orijinal bitiş tarihi mi. Daha sonra olan tarihi Y-m-d formatında yazdırın.
Girdi formatı:
- Birinci satır:
Y-m-dformatında bir başlangıç tarihi dizesi (örnek:2024-03-15) - İkinci satır:
Y-m-dformatında bir bitiş tarihi dizesi (örnek:2024-04-10) - Üçüncü satır: Bir değişiklik dizesi (örnek:
+5 daysveya-2 weeks)
Beklenen çıktı: Değiştirilmiş başlangıç tarihi ile orijinal bitiş tarihi arasındaki daha sonraki tarih, Y-m-d olarak formatlanmış şekilde
Kendin dene
<?php
// Üç girişi oku
$startDate = trim(fgets(STDIN));
$endDate = trim(fgets(STDIN));
$modification = trim(fgets(STDIN));
// TODO: Kodunuzu aşağıya yazın
// Başlangıç ve bitiş tarihlerinden DateTime nesneleri oluşturun
// Başlangıç tarihine değişikliği uygulayın
// Değiştirilmiş başlangıç tarihini bitiş tarihi ile karşılaştırın
// Hangi tarihin daha sonra olduğunu belirleyin
// Daha sonraki tarihi Y-m-d formatında yazdırın
echo $laterDate;
?>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 Egzersizi7Tarih ve Saatlerle Çalışmak
'date()' Fonksiyonu'time()' ile Unix Zaman DamgalarıDateTime Nesnesine GirişDateTime Nesnelerini BiçimlendirmeDateTime Nesnelerini DeğiştirmeÖzet: Tarih Hesaplamaları2İ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ıralama