0455 - Calendar1: Difference between revisions

From Bitnami MediaWiki
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


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)
if __name__ == '__main__':
     zi = input("Introduceți ziua: ")
    luna = input("Introduceți luna: ")
    an = input("Introduceți anul: ")


 
    if validare(zi, luna, an):
    print("Data zilei următoare este: {} {} {}".format(ziua_urmatoare, luna_urmatoare, anul_urmator))
        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>