0455 - Calendar1: Difference between revisions
Vardai Erwin (talk | contribs) |
Vardai Erwin (talk | contribs) |
||
| Line 30: | Line 30: | ||
===Rezolvare ver. 1=== | ===Rezolvare ver. 1=== | ||
<syntaxhighlight lang="python" line="1" start="1"> | <syntaxhighlight lang="python" line="1" start="1"> | ||
def validare(zi, luna, an): | |||
return zi.isdigit() and 1 <= int(zi) <= 31 and luna.isdigit() and 1 <= int(luna) <= 12 and an.isdigit() | |||
def data_zilei_urmatoare(zi, luna, an): | def data_zilei_urmatoare(zi, luna, an): | ||
if (an % 4 == 0 and an % 100 != 0) or (an % 400 == 0): | if (an % 4 == 0 and an % 100 != 0) or (an % 400 == 0): | ||
bisect = True | bisect = True | ||
| Line 65: | Line 67: | ||
luna_urmatoare = luna | luna_urmatoare = luna | ||
anul_urmator = an | anul_urmator = an | ||
return ziua_urmatoare, luna_urmatoare, anul_urmator | return ziua_urmatoare, luna_urmatoare, anul_urmator | ||
if __name__ == '__main__': | |||
zi = input("Introduceți ziua: ") | |||
luna = input("Introduceți luna: ") | |||
an = input("Introduceți anul: ") | |||
if validare(zi, luna, an): | |||
zi, luna, an = int(zi), int(luna), int(an) | |||
print("Datele introduse corespund restricțiilor impuse.") | |||
ziua_urmatoare, luna_urmatoare, anul_urmator = data_zilei_urmatoare(zi, luna, an) | |||
print(ziua_urmatoare, luna_urmatoare, anul_urmator, sep="\n") | |||
else: | |||
print("Datele introduse nu corespund restricțiilor impuse.") | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Revision as of 14:08, 15 March 2023
Cerință
Se citesc 3 numere naturale ziua luna anul, reprezentând o dată calendaristică corectă, în format zi luna an. Să se afişeze data zilei următoare.
Date de intrare
Programul citește de la tastatură numerele: zi luna an.
Date de ieșire
Programul afișează pe ecran numerele ziua luna anul, separate prin exact un spaţiu, reprezentând data zilei următoare.
Restricții de precizări
- data calendaristică citită corect
Exemplul 1
- Intrare
- 28
- 2
- 2000
- Ieșire
- Datele introduse corespund restricțiilor impuse.
- 29
- 2
- 2000
Rezolvare
Rezolvare ver. 1
<syntaxhighlight lang="python" line="1" start="1"> def validare(zi, luna, an):
return zi.isdigit() and 1 <= int(zi) <= 31 and luna.isdigit() and 1 <= int(luna) <= 12 and an.isdigit()
def data_zilei_urmatoare(zi, luna, an):
if (an % 4 == 0 and an % 100 != 0) or (an % 400 == 0):
bisect = True
else:
bisect = False
zile_luna = {
1: 31,
2: 29 if bisect else 28,
3: 31,
4: 30,
5: 31,
6: 30,
7: 31,
8: 31,
9: 30,
10: 31,
11: 30,
12: 31
}
if zi == zile_luna[luna]:
ziua_urmatoare = 1
if luna == 12:
luna_urmatoare = 1
anul_urmator = an + 1
else:
luna_urmatoare = luna + 1
anul_urmator = an
else:
ziua_urmatoare = zi + 1
luna_urmatoare = luna
anul_urmator = an
return ziua_urmatoare, luna_urmatoare, anul_urmator
if __name__ == '__main__':
zi = input("Introduceți ziua: ")
luna = input("Introduceți luna: ")
an = input("Introduceți anul: ")
if validare(zi, luna, an):
zi, luna, an = int(zi), int(luna), int(an)
print("Datele introduse corespund restricțiilor impuse.")
ziua_urmatoare, luna_urmatoare, anul_urmator = data_zilei_urmatoare(zi, luna, an)
print(ziua_urmatoare, luna_urmatoare, anul_urmator, sep="\n")
else:
print("Datele introduse nu corespund restricțiilor impuse.")
</syntaxhighlight>