Mit Zeiten rechnen

  • Hallo,

    im angehängten Programmausschnitt trage ich Zeitwerte aus einer mySql Datenbank (z.B. "07:00:00" und 21:00:00") ab. Es geht um den Ein- und Ausschaltzeitpunkt einer Solarpumpe.
    Um den Zeitvergleich zu ermöglichen musste ich diese Werte zum aktuellen Datumswert hinzurechnen. Deshalb die Berechnung mit "miternacht".
    Das funktionierte bisher auch alles bestens.
    Nun habe ich meine mySql Tabelle um die letzte Spalte "Tempdifferenz" erweiter und nun meckert das Programm da ich die Variablen "Anlage_Aktiv_an" und "Anlage_Aktiv_aus" nicht declariert hatte.
    Deshalb nun die Erweiterung mit "Anlage_Aktiv_an = datetime.time(0, 0, 0)...".
    Jeztzt meckert das Programm mit der angehänten Fehlermeldung.
    Ich bin am verzweifeln. Wieso hat es überhaupt die ganze Zeit funktioniert?
    Kann mir jemand helfen?


    Zitat

    Traceback (most recent call last):

    Zitat


    File "/home/Transfer/new 3.py", line 47, in <module>
    an = Anlage_Aktiv_an + mitternacht
    TypeError: unsupported operand type(s) for +: 'datetime.time' and 'datetime.datetime'

  • Wenn man mit Zeiten arbeitet muss man den Unterschied zwischen einem Zeitpunkt und einer Zeitdauer verstehen.

    1) Zwei Zeitpunkte kann man nicht addieren.
    2) Zu einem Zeitpunkt kann man eine Zeitdauer addieren oder subtrahieren und erhaelt einen neuen Zeitpunkt.
    3) Die Differenz von zwei Zeitpunkten ist eine Zeitdauer
    4) Zeitpunkte oder Zeitdauern kann man vergleichen

    Zeitpunkte sind Objekte vom Typ datetime in Python. Zeitdauern sind Objekte vom Typ timedelta.

  • Anlage_Aktiv_an muss eine Zeitdauer sein - so, wie sie auch aus der DB kommen und wir das beim letzten mal durchdekliniert haben.

    Also einfach

    Anlage_Aktiv_an = datetime.timedelta(0)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!