Seite 1 von 4

Re: Wenn ich den Begriff kennen würde, würde ich ihn googlen.

Verfasst: Samstag 6. April 2019, 22:52
von Pad385
das mit den Reklas stimmt schon wenn alles schief geht fährt man zu einer rekla und nimmt dann eine weitere rekla auf..:/
nein wenn Kommission rekla lautet soll auch in der csv rekla stehen
das Skript funktioniert zur zeit wie es soll nur spiele ich auf den vorschlag von blackjack an mit dem datetime modul zu rechnen

Re: Wenn ich den Begriff kennen würde, würde ich ihn googlen.

Verfasst: Sonntag 7. April 2019, 08:37
von Sirius3
Und ich spiele darauf an, dass kommission == 'rekla' und rekla == 'ja' immer konsistent sein müssen, damit die Texte, die Du erzeugst Sinn machen. Ergo, ist eine Angabe davon überflüssig.

Zeig doch mal, wie weit Du mit den Zeiten schon gekommen bist, erster Schritt wäre ja, Beginn und Ende mit datetime.datetime.strptime in ein DateTime-Objekt zu überführen.

Re: Wenn ich den Begriff kennen würde, würde ich ihn googlen.

Verfasst: Mittwoch 10. April 2019, 18:09
von Pad385
so in etwa ?

Code: Alles auswählen

    time_ende = datetime.strptime(ende, "%H:%M")
    time_start= datetime.strptime(start, "%H:%M")
ich habs verstanden da läuft was nicht richtig..

Re: Wenn ich den Begriff kennen würde, würde ich ihn googlen.

Verfasst: Mittwoch 10. April 2019, 18:40
von Sirius3
Das ist doch schon ein guter Anfang.

Re: Wenn ich den Begriff kennen würde, würde ich ihn googlen.

Verfasst: Dienstag 16. April 2019, 23:36
von Pad385
kp wie das gehen soll

zeit = timedelta(time_ende) - timedelta(time_start)


und

time_start= datetime.strptime(start, "%H:%M")

geht auch nicht

Re: Wenn ich den Begriff kennen würde, würde ich ihn googlen.

Verfasst: Dienstag 16. April 2019, 23:47
von __blackjack__
@Pad385: Ähm, warum `timedelta()`? Du musst den Startzeitpunkt vom Endzeitpunkt abziehen. Und vielleicht vorher noch prüfen ob der Startzeitpunkt nicht nach dem Endzeitpunkt liegt. Benutzereingaben sollte man möglichst nicht trauen. Die geben sonst was ein. :-)

Re: Wenn ich den Begriff kennen würde, würde ich ihn googlen.

Verfasst: Mittwoch 17. April 2019, 09:03
von Pad385

Code: Alles auswählen

#!/usr/bin/env python3
import csv
import time
import datetime

def main():
    auftraggeber = input('Auftraggeber (h/r/b) : ')
    if auftraggeber == 'h': auftraggeber = 'Hofmeister'
    if auftraggeber == 'r': auftraggeber = 'Röck'
    if auftraggeber == 'b': auftraggeber = 'Binsch'
    kommission = input('Kommission : ')
    if kommission == 'rekla':
        rekla_kommissionen = input('Kommissionen : ')
    else:
        rekla_kommissionen = ''
    ort = input('Ort : ')
    chef = input('Chef : ')
    rekla = input('Reklamation (ja/ ) : ')
    if rekla == 'ja':
        grund = input('Kommission, Begründung der Reklamationen : ')
    else:
        grund = ''
    start = input('Arbeitsbeginn : ')
    time_start= time.strptime(start, "%H:%M")
    ende = input('Arbeitsende : ')
    time_ende = time.strptime(ende, "%H:%M")
    #zeit = input('Arbeitszeit : ')
    zeit = time_ende - time_start
    pause = input('Pause : ')
    zeitpunkt = time.strftime('%d.%m.%Y__%H:%M:%S')
    eintrag = (
        f'Zeitpunkt des Eintrags: {zeitpunkt}   {auftraggeber}\n'
        f'Du warst heute mit {chef} in {ort} bei der Kommission {kommission}.\n'
        f'Du hast um {start} Uhr angefangen und um {ende} Uhr Feierabend'
        f' gemacht, dazwischen hast du {pause} Stunde(n) Pause gemacht.\n'
        f'Du hast {zeit} Stunden gearbeitet\n\n'
    )
    rekla_eintrag = (
        f'Zeitpunkt des Eintrags: {zeitpunkt}   {auftraggeber}\n'
        f'Du warst heute mit {chef} in {ort} bei der Kommission {kommission}.\n'
        f'Du hast {zeit} Stunden gearbeitet\nReklamationen: {grund}\n\n'
    )
    list_eintrag = [kommission, ort, zeitpunkt, zeit, pause, chef]
    rekla_tag_eintrag = (
        f'Zeitpunkt des Eintrags: {zeitpunkt}   {auftraggeber}\n'
        f'Du warst heute mit {chef} Reklamationen im {ort} erledigen.\n'
        f'Du hast um {start} Uhr angefangen und um {ende} Uhr Feierabend'
        f' gemacht, dazwischen hast du {pause} Stunde(n) Pause gemacht.\n'
        f'Du hast {zeit} Stunden gearbeitet,'
        f' du warst wieder bei Kommission {rekla_kommissionen}\n'
        f'Reklamationen: {grund}\n\n'
    )
    test = input('Korrekte Eingaben? (JA) : ')
    if test == 'JA':
        if kommission == 'rekla':
            with open('Arbeitszeitnachweis.txt', 'a', encoding='utf-8') as file:
                file.write(rekla_tag_eintrag)
        else:
            with open('Arbeitszeitnachweis.txt', 'a', encoding='utf-8') as file:
                file.write(eintrag)
        with open('Arbeitsstunden.csv', 'a', encoding='utf-8') as csv_file:
            writer = csv.writer(csv_file, delimiter=';')
            writer.writerow(list_eintrag)
        if rekla == 'ja':
            with open('Reklamationen.txt', 'a', encoding='utf-8') as file:
                file.write(rekla_eintrag)
    else:
        exit()

if __name__ == '__main__':
    main()

### Kommentare ###
# Verschiedene Touren

folgender Fehler:
Arbeitsende : 18:00
Traceback (most recent call last):
File "./arbeit.py", line 71, in <module>
main()
File "./arbeit.py", line 28, in main
zeit = time_ende - time_start
TypeError: unsupported operand type(s) for -: 'time.struct_time' and 'time.struct_time'


wenn ich time mir datetime ersetzte dann kommt folgender fehler:
Arbeitsbeginn : 6:00
Traceback (most recent call last):
File "./arbeit.py", line 71, in <module>
main()
File "./arbeit.py", line 24, in main
time_start= datetime.strptime(start, "%H:%M")
AttributeError: module 'datetime' has no attribute 'strptime'

aber eigentlich muss es mit timeobjekten auch funktionieren hab ja kein datum zum rechnen wie kann ich jetzt mit zwei timeobjekten rechnen ?!

Re: Wenn ich den Begriff kennen würde, würde ich ihn googlen.

Verfasst: Mittwoch 17. April 2019, 09:23
von Sirius3
Statt wild zu Raten, solltest Du einfach man in die Dokumentation schauen, wie man strptime bei datetime aufruft. Und nein, Zeitdifferenzen brauchen immer datetime-Objekte, time-Objekte reichen nicht.

Re: Wenn ich den Begriff kennen würde, würde ich ihn googlen.

Verfasst: Mittwoch 17. April 2019, 09:42
von __blackjack__
@Pad385: Zum Rechnen mit Zeitangaben ist das `datetime`-Modul da, mit den Sachen die `time` anbietet, geht das nur bedingt. `time` ist grösstenteils einfach nur eine recht dünne Schicht über die Funktionen die C-Programmierern zur Verfügung stehen. Wenn da zusammengesetzte Werte zurückgegeben werden, dann sind das reine Datenobjekte ohne weiteres verhahlten. Soweit ich das sehe alles `collections.namedtuple()`, welche die C-Strukturen abbilden.

Die zweite Ausnahme bekommst Du weil Du versuchst `strptime()` auf dem `datetime`-Modul aufzurufen statt auf dem `datetime`-Datentypen. Im `datetime`-Modul gibt es einen Datentypen der auch `datetime` heisst – *der* hat eine statische `strptime()`-Methode.

Mit `time`-Objekten kann man nicht rechnen. Das geht nur mit `datetime`- und `timedelta`-Objekten, also mit konkreten Zeitpunkten.

Re: Wenn ich den Begriff kennen würde, würde ich ihn googlen.

Verfasst: Mittwoch 17. April 2019, 09:47
von Pad385

Code: Alles auswählen

#!/usr/bin/env python3
import csv
import time
from datetime import datetime

def main():
    auftraggeber = input('Auftraggeber (h/r/b) : ')
    if auftraggeber == 'h': auftraggeber = 'Hofmeister'
    if auftraggeber == 'r': auftraggeber = 'Röck'
    if auftraggeber == 'b': auftraggeber = 'Binsch'
    kommission = input('Kommission : ')
    if kommission == 'rekla':
        rekla_kommissionen = input('Kommissionen : ')
    else:
        rekla_kommissionen = ''
    ort = input('Ort : ')
    chef = input('Chef : ')
    rekla = input('Reklamation (ja/ ) : ')
    if rekla == 'ja':
        grund = input('Kommission, Begründung der Reklamationen : ')
    else:
        grund = ''
    start = input('Arbeitsbeginn : ')
    time_start= datetime.strptime(start, "%H:%M")
    ende = input('Arbeitsende : ')
    time_ende = datetime.strptime(ende, "%H:%M")
    if time_ende < time_start:
        print('Value_Error')
        time.sleep(3)
        exit()
    time_zeit = time_ende - time_start
    zeit = str(time_zeit)[:-3]
    pause = input('Pause : ')
    zeitpunkt = time.strftime('%d.%m.%Y__%H:%M:%S')
    eintrag = (
        f'Zeitpunkt des Eintrags: {zeitpunkt}   {auftraggeber}\n'
        f'Du warst heute mit {chef} in {ort} bei der Kommission {kommission}.\n'
        f'Du hast um {start} Uhr angefangen und um {ende} Uhr Feierabend'
        f' gemacht, dazwischen hast du {pause} Stunde(n) Pause gemacht.\n'
        f'Du hast {zeit} Stunden gearbeitet\n\n'
    )
    rekla_eintrag = (
        f'Zeitpunkt des Eintrags: {zeitpunkt}   {auftraggeber}\n'
        f'Du warst heute mit {chef} in {ort} bei der Kommission {kommission}.\n'
        f'Du hast {zeit} Stunden gearbeitet\nReklamationen: {grund}\n\n'
    )
    list_eintrag = [kommission, ort, zeitpunkt, zeit, pause, chef]
    rekla_tag_eintrag = (
        f'Zeitpunkt des Eintrags: {zeitpunkt}   {auftraggeber}\n'
        f'Du warst heute mit {chef} Reklamationen im {ort} erledigen.\n'
        f'Du hast um {start} Uhr angefangen und um {ende} Uhr Feierabend'
        f' gemacht, dazwischen hast du {pause} Stunde(n) Pause gemacht.\n'
        f'Du hast {zeit} Stunden gearbeitet,'
        f' du warst wieder bei Kommission {rekla_kommissionen}\n'
        f'Reklamationen: {grund}\n\n'
    )
    test = input('Korrekte Eingaben? (JA) : ')
    if test == 'JA':
        if kommission == 'rekla':
            with open('Arbeitszeitnachweis.txt', 'a', encoding='utf-8') as file:
                file.write(rekla_tag_eintrag)
        else:
            with open('Arbeitszeitnachweis.txt', 'a', encoding='utf-8') as file:
                file.write(eintrag)
        with open('Arbeitsstunden.csv', 'a', encoding='utf-8') as csv_file:
            writer = csv.writer(csv_file, delimiter=';')
            writer.writerow(list_eintrag)
        if rekla == 'ja':
            with open('Reklamationen.txt', 'a', encoding='utf-8') as file:
                file.write(rekla_eintrag)
    else:
        exit()

if __name__ == '__main__':
    main()

### Kommentare ###
# Verschiedene Touren

gut das geht schonmal nur wie formatiere ich das ganze in folgendes Format: z.B. 10,25 d.h. 10Stunden und 15Minuten
auch das wäre gelöst habt ihr da vielleicht ne bessere methode als:
time_zeit = time_ende - time_start
zeit = str(time_zeit)[:-3]

in meiner csv Datei brauche ich zwingend 10,25 als format

Re: Wenn ich den Begriff kennen würde, würde ich ihn googlen.

Verfasst: Mittwoch 17. April 2019, 10:22
von Pad385

Code: Alles auswählen

#!/usr/bin/env python3
import csv
import time
from datetime import datetime

def main():
    auftraggeber = input('Auftraggeber (h/r/b) : ')
    if auftraggeber == 'h': auftraggeber = 'Hofmeister'
    if auftraggeber == 'r': auftraggeber = 'Röck'
    if auftraggeber == 'b': auftraggeber = 'Binsch'
    kommission = input('Kommission : ')
    if kommission == 'rekla':
        rekla_kommissionen = input('Kommissionen : ')
    else:
        rekla_kommissionen = ''
    ort = input('Ort : ')
    chef = input('Chef : ')
    rekla = input('Reklamation (ja/ ) : ')
    if rekla == 'ja':
        grund = input('Kommission, Begründung der Reklamationen : ')
    else:
        grund = ''
    start = input('Arbeitsbeginn : ')
    time_start = datetime.strptime(start, "%H:%M")
    ende = input('Arbeitsende : ')
    time_ende = datetime.strptime(ende, "%H:%M")
    if time_ende < time_start:
        print('Value_Error')
        time.sleep(3)
        exit()
    time_zeit = time_ende - time_start
    time_zeit = str(time_zeit)[:-3]
    #zeit = datetime.strptime(time_zeit, "%H,%M")
    pause = input('Pause : ')
    zeitpunkt = time.strftime('%d.%m.%Y__%H:%M:%S')
    eintrag = (
        f'Zeitpunkt des Eintrags: {zeitpunkt}   {auftraggeber}\n'
        f'Du warst heute mit {chef} in {ort} bei der Kommission {kommission}.\n'
        f'Du hast um {start} Uhr angefangen und um {ende} Uhr Feierabend'
        f' gemacht, dazwischen hast du {pause} Stunde(n) Pause gemacht.\n'
        f'Du hast {time_zeit} Stunden gearbeitet\n\n'
    )
    rekla_eintrag = (
        f'Zeitpunkt des Eintrags: {zeitpunkt}   {auftraggeber}\n'
        f'Du warst heute mit {chef} in {ort} bei der Kommission {kommission}.\n'
        f'Du hast {time_zeit} Stunden gearbeitet\nReklamationen: {grund}\n\n'
    )
    list_eintrag = [kommission, ort, zeitpunkt, zeit, pause, chef]
    rekla_tag_eintrag = (
        f'Zeitpunkt des Eintrags: {zeitpunkt}   {auftraggeber}\n'
        f'Du warst heute mit {chef} Reklamationen im {ort} erledigen.\n'
        f'Du hast um {start} Uhr angefangen und um {ende} Uhr Feierabend'
        f' gemacht, dazwischen hast du {pause} Stunde(n) Pause gemacht.\n'
        f'Du hast {time_zeit} Stunden gearbeitet,'
        f' du warst wieder bei Kommission {rekla_kommissionen}\n'
        f'Reklamationen: {grund}\n\n'
    )
    test = input('Korrekte Eingaben? (JA) : ')
    if test == 'JA':
        if kommission == 'rekla':
            with open('Arbeitszeitnachweis.txt', 'a', encoding='utf-8') as file:
                file.write(rekla_tag_eintrag)
        else:
            with open('Arbeitszeitnachweis.txt', 'a', encoding='utf-8') as file:
                file.write(eintrag)
        with open('Arbeitsstunden.csv', 'a', encoding='utf-8') as csv_file:
            writer = csv.writer(csv_file, delimiter=';')
            writer.writerow(list_eintrag)
        if rekla == 'ja':
            with open('Reklamationen.txt', 'a', encoding='utf-8') as file:
                file.write(rekla_eintrag)
    else:
        exit()

if __name__ == '__main__':
    main()

### Kommentare ###
# Verschiedene Touren

so habe ich mir das vorgestellt nur geht das natürlich nicht

und so geht's auch nicht: zeit = float(time_zeit)

wie wandle ich das timedelta objekt 10:15 in eine Dezimalzahl 10,25 um?

time_zeit = time_ende - time_start
time_zeit = str(time_zeit)[:-3]
h, m = time_zeit.split(':')
zeit = "{0},{1}".format(h,m)
schonmal ein schritt weiter nur wie rechne ich das jetzt richtig um das nach dem Komma die Dezimalzahl der Minuten steht und nicht die Minuten an sich?

Re: Wenn ich den Begriff kennen würde, würde ich ihn googlen.

Verfasst: Mittwoch 17. April 2019, 10:40
von __deets__
Das timedelta-Objekt hat Attribute. Die kannst du benutzen. Und aus den Attributen fuer Minuten und Sekunden und string-formatting zB deine gewuenschte Darstellung erzeugen.

Re: Wenn ich den Begriff kennen würde, würde ich ihn googlen.

Verfasst: Mittwoch 17. April 2019, 10:50
von Sirius3
Eine etwas sinnvollere Information als `Value_Error` bei falschen Zeiten wäre gut. `exit` sollte in einem normalen Programm nicht vorkommen (außer man will einen Exitcode != 0), ein `return` reicht völlig. Vor allem das `else: exit()` ganz zu Schluß ist unsinnig.
Die String-Darstellung eines timedelta-Objekts ist meiner Meinung nach, selten zu gebrauchen. Du mußt aus time_zeit (was für ein Name) die Sekunden nehmen, und selbst in Stunden und Minuten umrechnen (divmod). Die Pause muß von der Arbeitszeit noch abgezogen werden.

Re: Wenn ich den Begriff kennen würde, würde ich ihn googlen.

Verfasst: Mittwoch 17. April 2019, 11:05
von Pad385
ich habe keine Ahnung was du mit return machen willst bzw hab ich keine Ahnung was return macht ich will erstmal das das script läuft das exit am ende soll das script beenden wenn beim test = input was anderes eingegeben wird als 'JA'

Re: Wenn ich den Begriff kennen würde, würde ich ihn googlen.

Verfasst: Mittwoch 17. April 2019, 11:11
von __deets__
Und return beendet main, und da danach nix mehr passiert beendet sich das Programm. Du erreichst also dein Ziel UND machst etwas richtig. Muss man aber natuerlich nicht tun 🤷‍♂️

Re: Wenn ich den Begriff kennen würde, würde ich ihn googlen.

Verfasst: Mittwoch 17. April 2019, 11:41
von Pad385

Code: Alles auswählen

    start = input('Arbeitsbeginn : ')
    time_start = datetime.strptime(start, "%H:%M")
    ende = input('Arbeitsende : ')
    time_ende = datetime.strptime(ende, "%H:%M")
    if time_ende < time_start:
        print('Value_Error')
        time.sleep(3)
        return
    pause = input('Pause : ')
    time_pause = datetime.strptime(pause, "%H:%M")
    time_zeit = time_ende - time_start - pause
    sekunden = timedelta.total_seconds(time_zeit)
    minuten = time_zeit / 60
    stunden = minuten / 60
so nur was bringt mir das ich habe doch jetzt trotzdem nur die stunden und Minuten nur halt getrennt also wie mache ich jetzt aus der variable Minuten eine Dezimalzahl mit stunden und Minuten im moment bekomme ich ja dann am ende bei wert 10:45 das Ergebnis 10,45
wenn ich
Minuten = time_zeit / 60 / 60
stunden = minuten / 60
und das ganze zusammensetzte kommt ja z.B. 10,0,75 raus

Re: Wenn ich den Begriff kennen würde, würde ich ihn googlen.

Verfasst: Mittwoch 17. April 2019, 11:49
von __blackjack__
@Pad385: Dann rechne das aus den Gesamtsekunden aus. Die einfach mal (60 * 60) rechnen, als Zeichenkette mit zwei Nachkommastellen formatieren (`format()`) und da dann den Dezimalpunkt durch ein Dezimalkomma ersetzen und Du hast was Du brauchst.

Re: Wenn ich den Begriff kennen würde, würde ich ihn googlen.

Verfasst: Mittwoch 17. April 2019, 12:02
von Pad385

Code: Alles auswählen

#!/usr/bin/env python3
import csv
import time
from datetime import datetime, timedelta

def main():
    auftraggeber = input('Auftraggeber (h/r/b) : ')
    if auftraggeber == 'h': auftraggeber = 'Hofmeister'
    if auftraggeber == 'r': auftraggeber = 'Röck'
    if auftraggeber == 'b': auftraggeber = 'Binsch'
    kommission = input('Kommission : ')
    if kommission == 'rekla':
        rekla_kommissionen = input('Kommissionen : ')
    else:
        rekla_kommissionen = ''
    ort = input('Ort : ')
    chef = input('Chef : ')
    rekla = input('Reklamation (ja/ ) : ')
    if rekla == 'ja':
        grund = input('Kommission, Begründung der Reklamationen : ')
    else:
        grund = ''
    start = input('Arbeitsbeginn : ')
    obj_start = datetime.strptime(start, "%H:%M")
    ende = input('Arbeitsende : ')
    obj_ende = datetime.strptime(ende, "%H:%M")
    if obj_ende < obj_start:
        print('Value_Error')
        time.sleep(3)
        return
    pause = input('Pause : ')
    obj_pause = datetime.strptime(pause, "%H:%M")
    obj_zeit = obj_ende - obj_start - obj_pause
    sekunden = timedelta.total_seconds(obj_zeit)
    zeit = sekunden / 60 / 60
    zeitpunkt = time.strftime('%d.%m.%Y__%H:%M:%S')
    str_zeit = str(obj_zeit)[:-3]
kannst mir noch sagen wieso er in obj_zeit ein fehler ausgibt?
Arbeitsbeginn : 6:15
Arbeitsende : 18:00
Pause : 1:00
Traceback (most recent call last):
File "./arbeit.py", line 78, in <module>
main()
File "./arbeit.py", line 33, in main
obj_zeit = obj_ende - obj_start - obj_pause
TypeError: unsupported operand type(s) for -: 'datetime.timedelta' and 'datetime.datetime'

Re: Wenn ich den Begriff kennen würde, würde ich ihn googlen.

Verfasst: Mittwoch 17. April 2019, 12:08
von __blackjack__
@Pad385: Na da steht doch da: Du versucht von einem `timedelta`-Objekt ein `datetime`-Objekt abzuziehen, was verständlicherweise nicht geht. Was soll denn dabei heraus kommen? Wenn Du zum Beispiel von 10 Stunden und 45 Minuten den 01.01.1900 um 1 Uhr nachts abziehst, was sollte da ein sinnvolles Ergebnis sein?

Überlege mal was von diesen Werten ein Zeitpunkt und was eine Zeitspanne ist, und vergleiche das mit den tatsächlichen Datentypen die Du für die Werte verwendest.

Warum hast Du vor einige Namen diesen sinnfreien `obj_*`-Präfix gesetzt? In Python ist *alles* was man an einen Namen binden kann ein Objekt. Das müsstest Du dann also bei jedem Namen davor setzten. Oder eben bei keinem, denn dieser Präfix bietet absolut keinen Mehrwert.

Re: Wenn ich den Begriff kennen würde, würde ich ihn googlen.

Verfasst: Mittwoch 17. April 2019, 12:19
von Pad385

Code: Alles auswählen

#!/usr/bin/env python3
import csv
import time
from datetime import datetime, timedelta

def main():
    auftraggeber = input('Auftraggeber (h/r/b) : ')
    if auftraggeber == 'h': auftraggeber = 'Hofmeister'
    if auftraggeber == 'r': auftraggeber = 'Röck'
    if auftraggeber == 'b': auftraggeber = 'Binsch'
    kommission = input('Kommission : ')
    if kommission == 'rekla':
        rekla_kommissionen = input('Kommissionen : ')
    else:
        rekla_kommissionen = ''
    ort = input('Ort : ')
    chef = input('Chef : ')
    rekla = input('Reklamation (ja/ ) : ')
    if rekla == 'ja':
        grund = input('Kommission, Begründung der Reklamationen : ')
    else:
        grund = ''
    start = input('Arbeitsbeginn : ')
    timeobj_start = datetime.strptime(start, "%H:%M")
    ende = input('Arbeitsende : ')
    timeobj_ende = datetime.strptime(ende, "%H:%M")
    if timeobj_ende < timeobj_start:
        print('Value_Error')
        time.sleep(3)
        return
    pause = input('Pause : ')
    timeobj_pause = datetime.strptime(pause, "%H:%M")
    timeobj_zeit = timeobj_ende - timeobj_start - timeobj_pause
    sekunden = timedelta.total_seconds(timeobj_zeit)
    zeit = sekunden / 60 / 60
    format_zeit = '{%H,%M}'.format(zeit)
    zeitpunkt = time.strftime('%d.%m.%Y__%H:%M:%S')
    str_zeit = str(timeobj_zeit)[:-3]

aber
start = input('Arbeitsbeginn : ')
timeobj_start = datetime.strptime(start, "%H:%M")
ende = input('Arbeitsende : ')
timeobj_ende = datetime.strptime(ende, "%H:%M")
pause = input('Pause : ')
timeobj_pause = datetime.strptime(pause, "%H:%M")

sind doch alles die gleichen Objekte?! check ich nicht da steht überall datetime ich habe ja mit keinen der werte gerechnet und ausgerechnet wurden die auch nicht
start ist ein zeitpunkt genau wie ende und pause ist eine Zeitspanne

das mit dem timeeobj habe ich gemacht weil Sirius in einem vorherigen beitrag über die namensvergebung geplänkert hat :)