0455 - Calendar1: Difference between revisions

From Bitnami MediaWiki
Pagină nouă: ==Cerință== Se citesc 3 numere naturale z1 l1 a1, 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 z1 l1 a1. ==Date de ieșire== Programul afișează pe ecran numerele z2 l2 a2, 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 :2...
 
Am modificat codul.
Line 1: Line 1:


==Cerință==
==Cerință==
Se citesc 3 numere naturale z1 l1 a1, reprezentând o dată calendaristică corectă, în format zi luna an. Să se afişeze data zilei următoare.
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==
==Date de intrare==
Programul citește de la tastatură numerele z1 l1 a1.
Programul citește de la tastatură numerele ziua luna anul.
==Date de ieșire==
==Date de ieșire==
Programul afișează pe ecran numerele z2 l2 a2, separate prin exact un spaţiu, reprezentând data zilei următoare.
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==
==Restricții de precizări==
*data calendaristică citită corect
*data calendaristică citită corect
Line 27: Line 27:


:2000
:2000
==Rezolvare==
==Rezolvare ver. 1==
<syntaxhighlight lang="python" line="1" start="1">
<syntaxhighlight lang="python" line="1" start="1">
import datetime
zi = int(input("Introduceti ziua: "))
luna = int(input("Introduceti luna: "))
an = int(input("Introduceti anul: "))
data = datetime.datetime(an, luna, zi)
data_urmatoare = data + datetime.timedelta(days=1)
print("Data urmatoare este:", data_urmatoare.strftime("%d/%m/%Y"))


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

Revision as of 11:18, 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 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>