0454 - Calendar
Cerință
Se citesc 3 numere naturale z l a. Să se decidă dacă reprezintă o dată calendaristică corectă, în format zi luna an.
Date de intrare
Programul citește de la tastatură numerele z l a.
Date de ieșire
Programul afișează pe ecran mesajul DA, dacă cele trei numere formează o dată calendaristică corectă, respectiv NU în caz contrar.
Restricții de precizări
- 1850 ⩽ a ⩽ 2500
- 0 ⩽ z, l ⩽ 100
Exemplul 1
- Intrare
- 29
- 2
- 2000
- Ieșire
- Datele introduse corespund restricțiilor impuse.
- DA
Exemplul 2
- Intrare
- 29
- 2
- 2024
- Ieșire
- Datele introduse corespund restricțiilor impuse.
- DA
Rezolvare
<syntaxhighlight lang="python" line="1" start="1"> def este_data_corecta(z, l, a):
if l < 1 or l > 12: return False elif z < 1 or z > zile_in_luna(l, a): return False else: return True
def zile_in_luna(l, a):
if l == 2: if a % 4 == 0 and (a % 100 != 0 or a % 400 == 0): return 29 else: return 28 elif l in [4, 6, 9, 11]: return 30 else: return 31
</syntaxhighlight>