Menu
CoddyTech

Liệt kê sự kiện sắp tới

Thuộc phần Logic và luồng chương trình trong hành trình PHP của Coddy. Bài học 61 trên 68.

challenge icon

Thử thách

Dễ

Bạn sẽ nhận hai đầu vào: một chuỗi JSON biểu thị mảng sự kiện hiện có và một chuỗi ngày theo định dạng YYYY-MM-DD biểu thị ngày hôm nay.

Đầu vào thứ nhất là một chuỗi JSON theo định dạng sau: [{"name":"Team Meeting","date":"2024-04-15","location":"Office"},{"name":"Conference","date":"2024-05-20","location":"Convention Center"},{"name":"Workshop","date":"2024-03-10","location":"Library"}]

Đầu vào thứ hai là một chuỗi ngày theo định dạng sau: 2024-04-01

Đọc cả hai đầu vào và giải mã chuỗi JSON thành một mảng sự kiện. Tạo hai đối tượng DateTime: một đối tượng cho ngày hôm nay (dùng đầu vào thứ hai) và một đối tượng cho ngày của từng sự kiện khi bạn duyệt qua các sự kiện.

Lọc và chỉ hiển thị các sự kiện sắp tới, tức là những sự kiện có ngày lớn hơn hoặc bằng ngày hôm nay. Với mỗi sự kiện sắp tới, hãy in theo định dạng sau:

Upcoming: [name] on [date] at [location]

In mỗi sự kiện sắp tới trên một dòng riêng, theo thứ tự xuất hiện trong mảng. Nếu ngày của sự kiện trước ngày hôm nay, đừng in sự kiện đó.

Định dạng đầu vào:

  • Dòng đầu tiên: Một chuỗi JSON biểu thị mảng sự kiện với các khóa name, date và location
  • Dòng thứ hai: Một chuỗi ngày theo định dạng YYYY-MM-DD biểu thị ngày hôm nay (ví dụ: 2024-04-01)

Đầu ra mong đợi: Mỗi sự kiện sắp tới được in trên một dòng riêng theo định dạng: Upcoming: [name] on [date] at [location]

Tự làm thử

<?php
// Đọc chuỗi JSON chứa các sự kiện
$eventsJson = fgets(STDIN);
$events = (array)json_decode($eventsJson, true);

// Đọc ngày hôm nay
$todayDate = trim(fgets(STDIN));

// TODO: Viết code bên dưới
// Tạo đối tượng DateTime cho ngày hôm nay
// Duyệt qua các sự kiện và so sánh ngày
// In ra các sự kiện sắp tới theo định dạng yêu cầu

?>

Tất cả bài học trong Logic và luồng chương trình

Tự luyện tập: Trình biên dịch PHP online