Sprawdzanie poprawności daty
Treść zadania
Wczytaj d, m, y i sprawdź, czy jest to poprawna data w kalendarzu gregoriańskim.
Data jest poprawna, gdy:
- miesiąc
mjest w zakresie 1–12, - dzień
djest w zakresie od 1 do liczby dni w miesiącum:- 31 dni: miesiące 1, 3, 5, 7, 8, 10, 12,
- 30 dni: miesiące 4, 6, 9, 11,
- luty (2): 29 dni w roku przestępnym, 28 w nieprzestępnym (zob. konwencje rozdziału).
Wypisz:
Data jest poprawna.Data jest niepoprawna.
Dane wejściowe
3 liczby całkowite, każda w osobnej linii:
d— dzieńm— miesiący— rok
Dane wyjściowe
Jedna linia — komunikat.
Ograniczenia
- $-100 \le d, m \le 100$ (dzień i miesiąc mogą być spoza poprawnego zakresu, także zerowe lub ujemne)
- $1 \le y \le 9999$ (rok zawsze jest poprawny)
Przykłady
31 4 2021
Data jest niepoprawna.
Kwiecień ma tylko 30 dni.
29 2 2024
Data jest poprawna.
Rok 2024 jest przestępny, więc luty ma 29 dni.
Potrzebujesz teorii?
Zasady obowiązujące w rozdziale 3
Zadania w tym rozdziale dotyczą walidacji i obliczeń na datach w kalendarzu gregoriańskim.
Konwencje wspólne:
- Każde zadanie to osobny program: czyta standardowe wejście i wypisuje wynik na standardowe wyjście.
- Liczby wczytuj z osobnych linii, w kolejności z opisu. Data jest zawsze podawana jako trzy liczby: dzień, miesiąc, rok.
- Komunikaty wypisuj dokładnie jak w treści (kropki, polskie znaki, wielkość liter, spacje).
- Jeśli zadanie mówi „nie wypisuj nic” — program kończy się bez żadnego wyjścia.
- Program nie wypisuje komunikatów typu „Podaj liczbę:”. Tekst podany w
input("…")jest ignorowany przez sprawdzarkę. - We wszystkich zadaniach obowiązuje kalendarz gregoriański (także dla lat sprzed 1582 roku). Rok jest przestępny, gdy jest podzielny przez 4 i nie jest podzielny przez 100, albo gdy jest podzielny przez 400 (np. 2024 i 2000 są przestępne, a 2023 i 1900 — nie). Luty ma w roku przestępnym 29 dni, a w nieprzestępnym 28.
Zadanie pochodzi z otwartego zbioru Nauka-Programowania (z rozwiązaniami wzorcowymi). Zgłoś błąd w treści lub testach.
Przywrócono Twój zapisany kod.
Python uruchomi się w przeglądarce przy pierwszym teście.
Kod zapisuje się automatycznie w tej przeglądarce. Tab wstawia wcięcie; aby opuścić edytor klawiaturą, naciśnij Esc, a potem Tab.
Testy
Program dostaje „Wejście” przez input() i musi wypisać „Oczekiwane wyjście”. Liczby porównywane są z tolerancją 0,01, a tekst podany w input("…") nie jest sprawdzany.
Test 1
Nie uruchomiono29 2 2020
Data jest poprawna.
Test 2
Nie uruchomiono29 2 2019
Data jest niepoprawna.
Test 3
Nie uruchomiono29 2 1900
Data jest niepoprawna.
Test 4
Nie uruchomiono29 2 2000
Data jest poprawna.
Test 5
Nie uruchomiono31 12 2021
Data jest poprawna.
Test 6
Nie uruchomiono0 5 2021
Data jest niepoprawna.
Test 7
Nie uruchomiono15 13 2021
Data jest niepoprawna.
Test 8
Nie uruchomiono31 6 2023
Data jest niepoprawna.
Test 9
Nie uruchomiono30 6 2023
Data jest poprawna.
Test 10
Nie uruchomiono1 0 2020
Data jest niepoprawna.
Test 11
Nie uruchomiono32 1 2020
Data jest niepoprawna.
Test 12
Nie uruchomiono-1 3 2020
Data jest niepoprawna.
Test 13
Nie uruchomiono28 2 1900
Data jest poprawna.
Test 14
Nie uruchomiono30 2 2000
Data jest niepoprawna.