0455 - Calendar1
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 ziua luna anul.
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 ver. 1
<syntaxhighlight lang="python" line="1" start="1">
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
def main():
zi = int(input("Introduceți ziua: ")) luna = int(input("Introduceți luna: ")) an = int(input("Introduceți anul: "))
ziua_urmatoare, luna_urmatoare, anul_urmator = data_zilei_urmatoare(zi, luna, an)
print("Data zilei următoare este: {} {} {}".format(ziua_urmatoare, luna_urmatoare, anul_urmator))
</syntaxhighlight>