0454 - Calendar: Difference between revisions
Pagină nouă: ==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... |
Vardai Erwin (talk | contribs) No edit summary |
||
Line 1: | Line 1: | ||
==Cerință== | ==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== | ==Date de intrare== | ||
Programul citește de la tastatură numerele z l a. | Programul citește de la tastatură numerele z l a. |
Revision as of 18:14, 14 March 2023
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>