Часы на ПИТОН с помощью классов
Задание звучит так, "Напишите часы на Питон с помощью классов"
в часах должны быть включены три параметра
- Часы(Integer)
- Минуты (Integer)
- Секунды (Integer)
Напишите функцию fixTime() которая "неверное" время исправляет. Минуты и секунды должны отображаться корректно
print(meine_uhr) -> "09:22:59"
meine_uhr = meine_uhr + 1
print(meine_uhr) -> "09:23:00
Понимаю что это довольно простая задача. Но по стечению обстоятельств, учу программирование на не родном мне языке, и не всё порой понимаю в учебном заведении. Вот пытаюсь с вами более менее усвоить эти знания. Не кидайтесь камнями. Спасибо)
Проверку на формат часов вроде криво но написал,а как с помощью функций далее проверить формат секунд минут и часов, чтобы секунды и минуты не была более 59, а если введенные минуты больше чем 60, то автоматически добавлялись "часы" в строке "часов" ну и соответсвенно чтобы "часы" не были более 23...
class Uhr:
def __init__ (self, x):
if self.checkUhrFormat == True: # and self.checkStundenFormat(Stunden) == True and self.checkMinutenFormat(Minuten) == True and self.checkSekundenFormat(Sekunden) == True:
print("Es ist:..........Uhr" )
# self.Stunde = Stunden
# self.Minuten = Minuten
# self.Sekunden = Sekunden
else:
print("Die Zeitformat ist ungültig")
def checkUhrFormat(zeit):
# uhr muss nur bis 23 sein
# und von Type str sein
if len(zeit) != 8 or type(zeit) != str:
return False
if zeit[2] != ":" :
return False
if zeit[5] != ":" :
return False
else:
return True
def checkSekundenFormat(Sekunden):
for i in range(len(zeit)):
if i in zeit[8] == 8:
print("DDDDD")
Ответы (1 шт):
если я правильно понял, то на вход подаётся строка что мешает
разбить строку через разделитель
':'перевести разделённые слова в числа
проверить входит ли число в диапазон 0..23 для первого числа, 0..59 для второго и третьего
ну а сами переполнения можно делать так:
seconds_new = seconds % 60
minutes = minutes + (seconds // 60)
minutes_new = minutes % 60
hours = hours + (minutes // 60)
hours_new = hours % 24
days = days + hours // 24
или так:
time = seconds + minutes * 60 + hours * 3600 + days * 86400
seconds = time % 60
minutes = ((time - seconds) // 60) % 60
hours = ((time - seconds - minutes * 60) // 3600) % 24
days = ((time - seconds - minutes * 60 - hours * 3600) // 86400)