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 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>