0454 - Calendar: Difference between revisions
Vardai Erwin (talk | contribs) |
mNo edit summary |
||
Line 48: | Line 48: | ||
def verifica_data(): | def verifica_data(): #verificăm daca o anumtă dată este validă | ||
if (luna in [1, 3, 5, 7, 8, 10, 12]) and (zi <= 31): | 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") | 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 | |||
elif (luna == 2) and (zi <= 29) and (an % 4 == 0) and ((an % 100 != 0) or (an % 400 == 0)): | |||
print("DA") | print("DA") | ||
elif (luna == 2) and (zi <= 29) and (an % 4 == 0) and (an % 400 != 0): | elif (luna == 2) and (zi <= 29) and (an % 4 == 0) and (an % 400 != 0): | ||
print("NU") | print("NU") #dacă luna și ziua nu corespund condiților, atunci data este invalidă | ||
else: | else: | ||
print("NU") | print("NU") |
Revision as of 12:35, 11 April 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 ⩽ an ⩽ 2500
- 0 ⩽ zi, luna ⩽ 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
Rezolvare ver. 1
<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>