0461 - Timp1

De la Universitas MediaWiki

Cerința

Se dau numerele naturale h m, reprezentând ora curentă exprimată în ore şi minute. Să se determine care va fi ora peste x ore şi y minute.

Date de intrare

Programul citește de la tastatură numerele h1 m1 x y.

Date de ieșire

Programul afișează pe ecran numerele h2 m2, separate printr-un spaţiu, cu semnificaţia din enunţ.

Restricții și precizări

  • 0 ≤ h1, h2 ≤ 23;
  • 0 ≤ m1, m2, y ≤ 59;
  • 0 ≤ x ≤ 10000;

Exemplul 1

Intrare
7 11 5 34
Ieșire
Datele de intrare corespund restricțiilor impuse.
12 45

Exemplul 2

Intrare
-1 -1 -1 -1
Ieșire
Datele de intrare nu corespund restricțiilor impuse.

Rezolvare

#0461 - Timp1
def determina_ora_urmatoare(h1, m1, x, y):
    # adaugam minutele
    minute = m1 + y
    # adaugam orele si minutele ramase
    ore = h1 + x + minute // 60
    minute = minute % 60
    # daca am depasit 24 de ore, revenim la 0 si continuam
    if ore >= 24:
        ore = ore % 24
    return ore, minute

if __name__ == '__main__':
    h1 = int(input("Introduceți ora curentă (ora): "))
    m1 = int(input("Introduceți ora curentă (minute): "))
    x = int(input("Introduceți numărul de ore peste care să calculăm ora următoare: "))
    y = int(input("Introduceți numarul de minute peste care să calculam ora urmatoare: "))
    if h1 >= 0 and h1 <= 23 and m1 >= 0 and m1 <= 59 and x >= 0 and x <= 10000:
        h2, m2 = determina_ora_urmatoare(h1, m1, x, y)
        print("Datele de intrare corespund restricțiilor impuse.")
        print(f"Ora urmatoare este {h2}:{m2}")
    else:
        print("Datele de intrare nu corespund restricțiilor impuse.")