Seite 1 von 1

Zeitberechnung

Verfasst: Mittwoch 22. September 2004, 14:01
von Juchtefred
Hey ich bin ganz neu in Pyton. :shock:

Habe jetzt die wundervolle Aufgabe, ein Zeiterfassungsprogramm zu schreiben.
Ich muss dafür die differenz zwischen zwei Zeiten berechnen. Brauch dafür kein Datum und auch keine sec. Nur Stunden und Min. Das Ergebnis sollte man in eine Datei schreiben können.(Später mal in ne DB)

Das müsste ja eigentlich keine große Sache sein! Aber ich habe die letzte Woche nur das Buch durchgelesen.

Freue mich über jede Hilfe

Danke :idea:

Verfasst: Mittwoch 22. September 2004, 16:08
von Dookie
Hi Juchtefred,

am einfachsten geht das mit time aus dem Modul time.

Code: Alles auswählen

from time import time, sleep

start_time = time()
sleep(60*5) # mach 5 mintuen nichts
end_time = time()
dauer = end_time - time
stunden = int(dauer / (60 * 60))
minuten = int(dauer / 60) % 60
sekunden = int(dauer) % 60
ausgabe = "Es hat %i Stunden und %i Minuten gedauert" % (stunden, minunten)
print ausgabe # kann auch in eine Datei geschrieben werden.

Gruß

Dookie

Re: Zeitberechnung

Verfasst: Mittwoch 22. September 2004, 21:40
von hans
Juchtefred hat geschrieben:Hey ich bin ganz neu in Pyton. :shock:
Das haut uns nicht von den Socken, aber du bist trotzdem willkommen. ;)
Brauch dafür kein Datum und auch keine sec. Nur Stunden und Min.
Für normal arbeitende Menschen wird es ausreichen. Im IT Bereich ist es aber üblich, dass man sich auch die Nächte um die Ohren haut. :? Dann ist es ganz nützlich, wenn man auch das Datum in der Berechnung drin hat. Deshalb würde ich zum Modul datetime satt time tendieren. Sollte nicht schwieriger zu implementieren sein als time.

Dann mal frohes Schaffen.

Hans

Verfasst: Donnerstag 23. September 2004, 06:34
von Juchtefred
Jo erstmal danke, dass das hier so schnell mit der Hilfe klappt.

:?: noch ne Frage,

Ist es auch möglich, das die Zeitdiffernz, die in eine GUI eingetragen wird, berechnen zu lassen?
Dort stehen ja dann Werte wie gearbeitet von 6.30 bis 16.30

danke

Habs aber läuft nett

Verfasst: Donnerstag 23. September 2004, 09:55
von Juchtefred
Also die Berechnung tut's. :lol:

Aber ich kann es nicht laufen lassen. :cry:
Woran könnte das denn nun wieder liegen?
Hier mal der Quelltext:

Code: Alles auswählen

print "Stechkarten-Programm"

 def berech(a,b,c,d):
    erg1=(a*3600)+(b*60)
 	erg2=(c*3600)+(d*60)
	c=c*3600
 	d=d*60 
 	erg3=erg2-erg1
 	if c>=43200 and d > 0:	
 		if c<44280 and d<1800:
 			z=erg2-43200
 			erg3=erg3-z
 			z=z/60
 		else:
 			erg3=erg3-1800
 	stunden= int(erg3/(60*60))
 	minuten= int(erg3 / 60)%60
 	ausgabe="Sie haben %i Stunden und %i Minuten gearbeitet!" % (stunden, minuten)
 	print ausgabe

z1 = input("Beginn in Stunden")
z2 = input("Beginn in Minuten")
z3 = input("Ende in Stunden")
z4 = input("Ende in Minuten")

berech(z1,z2,z3,z4)
Also am Einrückung dürfte es nicht liegen denke ich, das format hat sich nur beim Kopieren geändert.

Danke

Bei mir geht dein Programm

Verfasst: Donnerstag 23. September 2004, 10:10
von Nils aka Ronnie
Bei mir läuft es mit der richtigen Einrückung:

Code: Alles auswählen

print "Stechkarten-Programm" 

def berech(a,b,c,d): 
    erg1=(a*3600)+(b*60) 
    erg2=(c*3600)+(d*60) 
    c=c*3600 
    d=d*60 
    erg3=erg2-erg1 
    if c>=43200 and d > 0: 
        if c<44280 and d<1800: 
            z=erg2-43200 
            erg3=erg3-z 
            z=z/60 
        else: 
            erg3=erg3-1800 
            stunden= int(erg3/(60*60)) 
            minuten= int(erg3 / 60)%60 
            ausgabe="Sie haben %i Stunden und %i Minuten gearbeitet!" % (stunden, minuten) 
            print ausgabe 

z1 = input("Beginn in Stunden") 
z2 = input("Beginn in Minuten") 
z3 = input("Ende in Stunden") 
z4 = input("Ende in Minuten") 

berech(z1,z2,z3,z4) 
Gruß,
Ronnie

Verfasst: Donnerstag 23. September 2004, 10:12
von Nils aka Ronnie
Nachtrag: Die Einrückung definiert wozu der else-Zweig gehört, bin mir nicht sicher ob es so richtig ist.

mm

Verfasst: Donnerstag 23. September 2004, 10:44
von Juchtefred
Danke,
ich habe es wohl mit dem einrücken doch nicht so bedacht.
kannst du mir vielleicht noch sagen wie ich das Ergebniss auch noch in einem kleinen Fenter ausgeben kann?

mit output :?: :?:

Verfasst: Donnerstag 23. September 2004, 16:52
von Milan
Hi. Indem du es in die Tags [python] quellcode [/python] setzt. Endlich mal jemand der auch danach fragt :D :D :D .

Verfasst: Donnerstag 23. September 2004, 18:03
von Dookie
ich glaub Juchtefred meint in einer GUI, da hast Du eh schon einen Thread im Tkinterforum.

Dookie

Verfasst: Freitag 24. September 2004, 17:30
von querdenker
ansonsten lohnt sich m.E. auch das DateTime-Modul von egenix.com.
Wirst es vermutlich bei DB-Anbindung sowieso brauchen.
Die Doku ist nicht dick aber brauchbar.

MfG, querdenker