Hey ich bin ganz neu in Pyton.
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
Zeitberechnung
-
- Python-Forum Veteran
- Beiträge: 2010
- Registriert: Freitag 11. Oktober 2002, 18:00
- Wohnort: Salzburg
- Kontaktdaten:
Hi Juchtefred,
am einfachsten geht das mit time aus dem Modul time.
Gruß
Dookie
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
[code]#!/usr/bin/env python
import this[/code]
import this[/code]
-
- User
- Beiträge: 728
- Registriert: Sonntag 22. September 2002, 08:32
- Wohnort: Sauerland
- Kontaktdaten:
Das haut uns nicht von den Socken, aber du bist trotzdem willkommen.Juchtefred hat geschrieben:Hey ich bin ganz neu in Pyton.
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.Brauch dafür kein Datum und auch keine sec. Nur Stunden und Min.
Dann mal frohes Schaffen.
Hans
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
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
Also die Berechnung tut's.
Aber ich kann es nicht laufen lassen.
Woran könnte das denn nun wieder liegen?
Hier mal der Quelltext:
Also am Einrückung dürfte es nicht liegen denke ich, das format hat sich nur beim Kopieren geändert.
Danke
Aber ich kann es nicht laufen lassen.
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)
Danke
Bei mir läuft es mit der richtigen Einrückung:
Gruß,
Ronnie
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)
Ronnie
Nachtrag: Die Einrückung definiert wozu der else-Zweig gehört, bin mir nicht sicher ob es so richtig ist.
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
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
-
- User
- Beiträge: 424
- Registriert: Montag 28. Juli 2003, 16:19
- Wohnort: /dev/reality
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
Wirst es vermutlich bei DB-Anbindung sowieso brauchen.
Die Doku ist nicht dick aber brauchbar.
MfG, querdenker