0454 - Calendar
Cerință[edit | edit source]
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[edit | edit source]
Programul citește de la tastatură numerele zi luna an.
Date de ieșire[edit | edit source]
Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele de intrare corespund restricțiilor impuse." și programul afișează pe ecran mesajul DA, dacă cele trei numere formează o dată calendaristică corectă, respectiv NU în caz contrar. În caz contrar, se va afișa pe ecran: "Datele de intrare nu corespund restricțiilor impuse."
Restricții de precizări[edit | edit source]
- 1850 ⩽ an ⩽ 2500
- 0 ⩽ zi, luna ⩽ 100
Exemplul 1[edit | edit source]
- Intrare
- 29
- 2
- 2000
- Ieșire
- Datele introduse corespund restricțiilor impuse.
- DA
Exemplul 2[edit | edit source]
- Intrare
- 29
- 2
- 2024
- Ieșire
- Datele introduse corespund restricțiilor impuse.
- DA
Rezolvare[edit | edit source]
Rezolvare ver. 1[edit | edit source]
<syntaxhighlight lang="python" line="1" start="1"> def validare_date(zi, luna, an):
return an.isdigit() and 1850 <= int(an) <= 2500 and luna.isdigit() and 0 <= int(luna) <= 100 and zi.isdigit() and 0 <= int(zi) <= 100
def verifica_data(): #verificăm daca o anumtă dată este validă
if (luna in [1, 3, 5, 7, 8, 10, 12]) and (zi <= 31): #ca data să fie validă lunile respective trebuie să aibă 31 de zile print("DA") elif (luna in [4, 6, 9, 11]) and (zi <= 30): #ca dată să fie validă, lunile respective trebuie sa aibă doar 30 de zile print("DA") elif (luna == 2) and (zi <= 29) and (an % 4 == 0) and ((an % 100 != 0) or (an % 400 == 0)): #dacă luna este februarie și anuel este bisect print("DA") elif (luna == 2) and (zi <= 29) and (an % 4 == 0) and (an % 400 != 0): print("NU") #dacă luna și ziua nu corespund condiților, atunci data este invalidă else: print("NU")
if __name__ == '__main__':
zi = input() luna = input() an = input()
if validare_date(zi, luna, an): zi, luna, an = int(zi), int(luna), int(an) print("Datele de intrare corespund restricțiilor impuse.") verifica_data() else: print("Datele de intrare nu corespund restricțiilor impuse.")
</syntaxhighlight>