תרגול מדעי המחשב

האם התאריך קיים

מאתגר C#

המשימה

כתוב פעולה שמקבלת יום, חודש ושנה, ומחזירה אמת אם התאריך קיים בלוח השנה.

תאריך קיים אם:
• החודש בין 1 ל-12
• היום לפחות 1, ולא גדול ממספר הימים באותו חודש
• השנה לפחות 1

אורכי החודשים: 31 יום בחודשים 1, 3, 5, 7, 8, 10, 12. 30 יום בחודשים
4, 6, 9, 11. בפברואר 28 יום, ובשנה מעוברת 29.

שנה מעוברת היא שנה שמתחלקת ב-4, **חוץ** משנים שמתחלקות ב-100 אלא אם כן
הן מתחלקות גם ב-400. לכן 2000 מעוברת ו-1900 לא.

דוגמאות:
  29, 2, 2024  →  אמת   (2024 מתחלקת ב-4)
  29, 2, 2023  →  שקר   (2023 לא מעוברת)
  29, 2, 1900  →  שקר   (מתחלקת ב-100 ולא ב-400)
  29, 2, 2000  →  אמת   (מתחלקת ב-400)
  31, 4, 2021  →  שקר   (באפריל יש 30)
  0, 5, 2020   →  שקר   (אין יום 0)
  15, 13, 2020 →  שקר   (אין חודש 13)

הנחיות:
• בדוק קודם את החודש, ורק אחר כך את היום. אם החודש לא חוקי, אין בכלל
  משמעות לשאלה כמה ימים יש בו.
• כלל השנה המעוברת הוא תנאי אחד מורכב, לא שלושה תנאים נפרדים. שווה
  לכתוב אותו פעם אחת במשתנה בוליאני ולהשתמש בו.
• בלי ספריות תאריכים.

קוד הפתיחה

using System;

class Program {

    static bool IsValidDate(int day, int month, int year) {
        // כתוב את הפתרון כאן
        return false;
    }

    static void Main() {
        Console.WriteLine(IsValidDate(29, 2, 2024));    // True
        Console.WriteLine(IsValidDate(29, 2, 2023));    // False
        Console.WriteLine(IsValidDate(29, 2, 1900));    // False
        Console.WriteLine(IsValidDate(29, 2, 2000));    // True
        Console.WriteLine(IsValidDate(31, 4, 2021));    // False
        Console.WriteLine(IsValidDate(31, 12, 2020));   // True
        Console.WriteLine(IsValidDate(0, 5, 2020));     // False
        Console.WriteLine(IsValidDate(15, 13, 2020));   // False
    }
}

כדי לכתוב, להריץ ולקבל משוב — התחבר עם חשבון Google. לוקח שנייה.

התרגיל הבא זוגי או אי-זוגי
המשוב נוצר על ידי AI ועשוי לטעות. אם אתה חושב שהפתרון שלך נכון — כנראה שאתה צודק. הציון כאן הוא לתרגול בלבד ואינו מדווח לאיש.
אל תכתוב בקוד פרטים אישיים כמו שם מלא, טלפון או כתובת. הקוד נשלח לשירות בדיקה חיצוני.