import pygame
import sas_pygame as sas


class Uhrzeit:

    def __init__(self, zeitverschiebung):
        self.zeitverschiebung = zeitverschiebung

    def gibStunde(self):
        stunde = sas.Tools.getHour() + self.zeitverschiebung
        if stunde < 0:
            stunde += 24
        if stunde > 23:
            stunde -= 24
        return stunde

    def gibMinute(self):
        return sas.Tools.getMinute()

    def gibSekunde(self):
        return sas.Tools.getSecond()

    def gibZeitstring(self):
        zeitstr = ""
        stunde = self.gibStunde()
        minute = self.gibMinute()
        sekunde = self.gibSekunde()
        if stunde < 10:
            zeitstr = zeitstr + "0" +str(stunde) + ":"
        else:
            zeitstr = zeitstr +str(stunde) + ":"
        if minute < 10:
            zeitstr = zeitstr + "0" +str(minute) + ":"
        else:
            zeitstr = zeitstr +str(minute) + ":"
        if sekunde < 10:
            zeitstr = zeitstr + "0" +str(sekunde) 
        else:
            zeitstr = zeitstr +str(sekunde) 
        return zeitstr

class Digitalanzeige:

    def __init__(self,zeit, xPos, yPos, ort, farbe):
        self.uhrzeit = zeit
        gehaeuse = sas.Rectangle(xPos, yPos, 200, 80, farbe)
        anzeige = sas.Rectangle(xPos + 6, yPos + 5, 188, 35, "white")
        self.zeitText = sas.Text(xPos+33, yPos+10,self.uhrzeit.gibZeitstring())
        self.zeitText.setFont(32)
        self.ortText = sas.Text(xPos+15, yPos+15,ort, "white")
        self.ortText.setFont(32)
        laenge = self.ortText.getShapeWidth()
        self.ortText.moveTo(xPos + (200 - laenge) / 2, yPos + 45)

    def setzeZeit(self,zeit):
        self.uhrzeit = zeit
        self.zeitText.setText(self.uhrzeit.gibZeitstring())

def main():
    view = sas.createView(250, 250, "Digitaluhr")
    ortszeit = Uhrzeit(0)
    zeitNY = Uhrzeit(-6)
    anzeigeOrtszeit = Digitalanzeige(ortszeit, 25,25, "Münster","red")
    anzeigeNYzeit = Digitalanzeige(zeitNY, 25,125, "New York","blue")
    while view.running:
        view.step()
        anzeigeOrtszeit.setzeZeit(ortszeit)
        anzeigeNYzeit.setzeZeit(zeitNY)
    view.quit()
        

main()


