0455 - Calendar1: Difference between revisions
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 | 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 | Programul citește de la tastatură numerele ziua luna anul. | ||
==Date de ieșire== | ==Date de ieșire== | ||
Programul afișează pe ecran numerele | 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"> | ||
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>