0454 - Calendar: Difference between revisions
Vardai Erwin (talk | contribs) |
Vardai Erwin (talk | contribs) |
||
Line 4: | Line 4: | ||
==Date de intrare== | ==Date de intrare== | ||
Programul citește de la tastatură numerele | Programul citește de la tastatură numerele '''zi luna an'''. | ||
==Date de ieșire== | ==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. | Programul afișează pe ecran mesajul DA, dacă cele trei numere formează o dată calendaristică corectă, respectiv NU în caz contrar. |
Revision as of 18:16, 14 March 2023
Cerință
Se citesc 3 numere naturale zi luna an. Să se decidă dacă reprezintă o dată calendaristică corectă, în format zi luna an.
Date de intrare
Programul citește de la tastatură numerele zi luna an.
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>