from datetime import datetime class TimeDisplay: def __init__(self, characterDisplay, topRow): self.currentHour = [-1, -1] self.currentMinute = [-1, -1] self.characterDisplay = characterDisplay self.topRow = topRow self.hourStartColumn = -1 self.timeDotsColumn = 7 self.minuteStartColumn = 9 self.characterDisplay.displayTimeDots(self.timeDotsColumn, self.topRow) def showTime(self): self.showHour(self.getHourDigits()) self.showMinute(self.getMinuteDigits()) def showHour(self, hour): if hour[0] != self.currentHour[0]: self.currentHour[0] = hour[0] if hour[0] == 0: self.characterDisplay.clearNumberPixels( self.hourStartColumn, self.topRow ) else: self.characterDisplay.displayNumber( self.hourStartColumn, self.topRow, hour[0] ) if hour[1] != self.currentHour[1]: self.currentHour[1] = hour[1] self.characterDisplay.displayNumber( self.hourStartColumn + 4, self.topRow, hour[1] ) def showMinute(self, minute): if minute[0] != self.currentMinute[0]: self.currentMinute[0] = minute[0] self.characterDisplay.displayNumber( self.minuteStartColumn, self.topRow, minute[0] ) if minute[1] != self.currentMinute[1]: self.currentMinute[1] = minute[1] self.characterDisplay.displayNumber( self.minuteStartColumn + 4, self.topRow, minute[1] ) def getHourDigits(self): return self.getTimeDigits('%l') def getMinuteDigits(self): return self.getTimeDigits('%M') def getTimeDigits(self, format): digits = datetime.now().strftime(format).strip().rjust(2, '0') return [int(x) for x in digits]