המשימה
כתוב פעולה שמקבלת יום, חודש ושנה, ומחזירה אמת אם התאריך קיים בלוח השנה. תאריך קיים אם: • החודש בין 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) הנחיות: • בדוק קודם את החודש, ורק אחר כך את היום. אם החודש לא חוקי, אין בכלל משמעות לשאלה כמה ימים יש בו. • כלל השנה המעוברת הוא תנאי אחד מורכב, לא שלושה תנאים נפרדים. שווה לכתוב אותו פעם אחת במשתנה בוליאני ולהשתמש בו. • בלי ספריות תאריכים.
קוד הפתיחה
public class Main {
public static boolean isValidDate(int day, int month, int year) {
// כתוב את הפתרון כאן
return false;
}
public static void main(String[] args) {
System.out.println(isValidDate(29, 2, 2024)); // true
System.out.println(isValidDate(29, 2, 2023)); // false
System.out.println(isValidDate(29, 2, 1900)); // false
System.out.println(isValidDate(29, 2, 2000)); // true
System.out.println(isValidDate(31, 4, 2021)); // false
System.out.println(isValidDate(31, 12, 2020)); // true
System.out.println(isValidDate(0, 5, 2020)); // false
System.out.println(isValidDate(15, 13, 2020)); // false
}
}
כדי לכתוב, להריץ ולקבל משוב — התחבר עם חשבון Google. לוקח שנייה.
המשוב נוצר על ידי AI ועשוי לטעות. אם אתה חושב שהפתרון שלך נכון —
כנראה שאתה צודק. הציון כאן הוא לתרגול בלבד ואינו מדווח לאיש.
אל תכתוב בקוד פרטים אישיים כמו שם מלא, טלפון או כתובת. הקוד נשלח לשירות
בדיקה חיצוני.