0455 - Calendar1

From Bitnami MediaWiki
Revision as of 11:18, 15 March 2023 by Carla Chereji (talk | contribs) (Am modificat codul.)

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>