Menu
CoddyTech
flag Ar iconالعربيةdown icon

تصفية الفعاليات حسب الشهر

جزء من قسم المنطق وتدفق التنفيذ في رحلة PHP على Coddy. الدرس 63 من 68.

challenge icon

التحدي

سهل

ستتلقى ثلاثة مدخلات: سلسلة JSON تمثل مصفوفة من الأحداث، وسلسلة تاريخ بتنسيق YYYY-MM-DD تمثل تاريخ اليوم، ورقم الشهر (1-12) للتصفية بناءً عليه.

المدخل الأول سيكون سلسلة JSON بهذا التنسيق: [{"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"}]

المدخل الثاني سيكون سلسلة تاريخ بهذا التنسيق: 2024-04-01

المدخل الثالث سيكون رقم الشهر بهذا التنسيق: 4

اقرأ المدخلات الثلاثة وقم بفك تشفير سلسلة JSON إلى مصفوفة أحداث. قم بتصفية الأحداث لتشمل فقط تلك التي تستوفي الشرطين التاليين:

  • تاريخ الحدث أكبر من أو يساوي تاريخ اليوم (الأحداث القادمة فقط)
  • يقع الحدث في الشهر المحدد

استخدم كائنات DateTime لمقارنة التواريخ واستخراج الشهر من تاريخ كل حدث باستخدام طريقة format() مع حرف التنسيق "n" (الذي يعيد الشهر كرقم بدون أصفار بادئة).

بعد التصفية، اطبع كل حدث مطابق بالتنسيق التالي:

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

اطبع كل حدث في سطر منفصل، بالترتيب الذي تظهر به في المصفوفة. إذا لم تطابق أي أحداث كلا المعيارين، فلا تطبع أي شيء.

تنسيق المدخلات:

  • السطر الأول: سلسلة JSON تمثل مصفوفة الأحداث مع المفاتيح name و date و location
  • السطر الثاني: سلسلة تاريخ بتنسيق YYYY-MM-DD تمثل تاريخ اليوم (مثال: 2024-04-01)
  • السطر الثالث: رقم الشهر من 1 إلى 12 (مثال: 4 لشهر أبريل)

المخرجات المتوقعة: كل حدث قادم وفي الشهر المحدد، مطبوعاً في سطر منفصل بالتنسيق: Event in month [month]: [name] on [date] at [location]

جرّب بنفسك

<?php
// قراءة المدخلات
$jsonInput = trim(fgets(STDIN));
$todayDate = trim(fgets(STDIN));
$monthNumber = intval(trim(fgets(STDIN)));

// تحويل JSON إلى مصفوفة
$events = (array)json_decode($jsonInput, true);

// TODO: اكتب الكود الخاص بك أدناه
// تصفية الأحداث القادمة وفي الشهر المحدد
// استخدام كائنات DateTime لمقارنة التواريخ
// طباعة كل حدث مطابق بالتنسيق المطلوب

?>

جميع دروس المنطق وتدفق التنفيذ

تدرّب بنفسك: مترجم PHP عبر الإنترنت