Menu
Coddy logo textTech

הצגת ספירה לאחור

חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-PHP של Coddy. שיעור 64 מתוך 68.

challenge icon

אתגר

קל

תקבלו שלוש קלטים: מחרוזת JSON המייצגת מערך של אירועים, מחרוזת תאריך בפורמט YYYY-MM-DD המייצגת את התאריך של היום, ושם אירוע שעבורו יש להציג ספירה לאחור.

הקלט הראשון יהיה מחרוזת JSON בפורמט הזה: [{"name":"Team Meeting","date":"2024-04-15","location":"Office"},{"name":"Conference","date":"2024-05-20","location":"Convention Center"}]

הקלט השני יהיה מחרוזת תאריך בפורמט הזה: 2024-04-01

הקלט השלישי יהיה שם אירוע בפורמט הזה: Team Meeting

קראו את שלושת הקלטים ופענחו את מחרוזת ה-JSON למערך אירועים. מצאו את האירוע שתואם לשם האירוע שסופק. צרו אובייקטים מסוג DateTime עבור התאריך של היום ועבור תאריך האירוע.

חשבו את ההפרש בין תאריך האירוע לתאריך של היום. השתמשו בשיטה diff() של אובייקט ה-DateTime של היום, והעבירו לה פרמטר שהוא אובייקט ה-DateTime של האירוע. פעולה זו מחזירה אובייקט DateInterval. גשו למאפיין days של האובייקט הזה כדי לקבל את מספר הימים בין שני התאריכים.

הדפיסו את הספירה לאחור בפורמט הבא:

Countdown to [event name]: [number of days] days

אם האירוע לא נמצא במערך, הדפיסו: Event not found

פורמט הקלט:

  • שורה ראשונה: מחרוזת JSON המייצגת את מערך האירועים עם המפתחות name, date ו-location
  • שורה שנייה: מחרוזת תאריך בפורמט YYYY-MM-DD המייצגת את התאריך של היום (לדוגמה: 2024-04-01)
  • שורה שלישית: שם האירוע שעבורו יש להציג ספירה לאחור (לדוגמה: Team Meeting)

הפלט הצפוי: שורה יחידה המציגה את הספירה לאחור בפורמט: Countdown to [event name]: [number of days] days, או Event not found אם האירוע אינו קיים

נסו בעצמכם

<?php
// קראו את נתוני הקלט
$jsonString = trim(fgets(STDIN));
$todayDate = trim(fgets(STDIN));
$eventName = trim(fgets(STDIN));

// פענחו את מחרוזת JSON למערך אירועים
$events = (array)json_decode($jsonString, true);

// TODO: כתבו את הקוד שלכם למטה
// מצאו את האירוע ששמו תואם לשם האירוע שסופק
// צרו אובייקטים מסוג DateTime עבור התאריך של היום ותאריך האירוע
// חשבו את ההפרש באמצעות המתודה diff()
// גשו למאפיין days של האובייקט DateInterval

// הציגו את התוצאה
echo $result;
?>

כל השיעורים ביחידה לוגיקה וזרימת תוכנית

תרגלו בעצמכם: קומפיילר PHP אונליין