0455 - Calendar1

From Bitnami MediaWiki

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>