Zeitberechnen
Welchen Datentyp benötige ich, um das Ergebnis dieser Formel auszugeben.
Gibt mir nämlich null aus wenn der Wert ins negative geht.
ueber1= (sum/(60*60))
ueber2= (sum / 60)%60
Ausgabe
"Überstunden: %d:%d" % (ueber1, ueber2)
ist wahrscheinlich easy
trotzdem danke
Rechnung
-
- Python-Forum Veteran
- Beiträge: 2010
- Registriert: Freitag 11. Oktober 2002, 18:00
- Wohnort: Salzburg
- Kontaktdaten:
Hi Gast,
kannst mal etwas mehr code posten, bei mir kommt da auch bei negativen werten für sum, sowohl bei int als auch bei float nie 0 raus!
Gruß
Dookie
kannst mal etwas mehr code posten, bei mir kommt da auch bei negativen werten für sum, sowohl bei int als auch bei float nie 0 raus!
Code: Alles auswählen
>>> sum = -32000
>>> print "Überstunden: %d:%d" % ((sum/(60*60)), (sum / 60)%60)
Überstunden: -9:6
>>> sum = -32000.0
>>> print "Überstunden: %d:%d" % ((sum/(60*60)), (sum / 60)%60)
Überstunden: -8:6
Gruß
Dookie
[code]#!/usr/bin/env python
import this[/code]
import this[/code]
Hi. Wahrscheinlich hat er einfach solche Integerwerte genommen: -60 < sum < 60 . Dann ist klar, das bei beiden 0 rauskommt, da int durch int immer den ganzahlgen Betrag der Division (halt div) ergibt und keine Fließkommazahl. Lösung: Einfach floats benutzten.
Danke erstmal für die schnelle hilfe!
Ich ging davon aus das ich in Python die Typen nicht definieren muss
Hab gedacht das kann das selbst.
Hier ist noch ein bissel mehr von dem Code
vielleicht hilfts ja.
erg1=(rech.stbeginn*3600)+(rech.minbeginn*60)
erg2=(rech.stende*3600)+(rech.minende*60)
erg3=erg2-erg1
help = rech.stpaub + rech.minpaub + rech.stpaub + rech.minpaue
pau = 0
if help != 0:
pau1=(rech.stpaub*3600)+(rech.minpaub*60)
pau2=(rech.stpaub*3600)+(rech.minpaue*60)
pau = pau2-pau1
erg3=erg3-pau
stunden= (erg3/(60*60))
minuten= (erg3 / 60)%60
pau = pau/60
sum = 0
ueber1= (sum/(60*60))
ueber2= (sum / 60)%60
return "Arbeitszeit: %d Stunden und %d Minuten Überstunden: % d:%d Pausenzeit: %d" % (stunden, minuten, ueber1, ueber2, pau)
Ich ging davon aus das ich in Python die Typen nicht definieren muss
Hab gedacht das kann das selbst.

Hier ist noch ein bissel mehr von dem Code
vielleicht hilfts ja.
erg1=(rech.stbeginn*3600)+(rech.minbeginn*60)
erg2=(rech.stende*3600)+(rech.minende*60)
erg3=erg2-erg1
help = rech.stpaub + rech.minpaub + rech.stpaub + rech.minpaue
pau = 0
if help != 0:
pau1=(rech.stpaub*3600)+(rech.minpaub*60)
pau2=(rech.stpaub*3600)+(rech.minpaue*60)
pau = pau2-pau1
erg3=erg3-pau
stunden= (erg3/(60*60))
minuten= (erg3 / 60)%60
pau = pau/60
sum = 0
ueber1= (sum/(60*60))
ueber2= (sum / 60)%60
return "Arbeitszeit: %d Stunden und %d Minuten Überstunden: % d:%d Pausenzeit: %d" % (stunden, minuten, ueber1, ueber2, pau)
-
- Python-Forum Veteran
- Beiträge: 2010
- Registriert: Freitag 11. Oktober 2002, 18:00
- Wohnort: Salzburg
- Kontaktdaten:
Hi,
na wenn du sum auf 0 setzt darfst du dich nicht wundern wenn 0 bei deinen Berechnungen rauskommt.
Typen definierst Du wenn du den entsprechenden Typ bei einer Zuweisung verwendest
0 -> int
0.0 -> float
"0" -> string
Gruß
Dookie
P.S.: Wenn du Code postest setzte ihn in Zukunft bitte in [ Python ]...[ /Python ] (Ohne Spaces)
na wenn du sum auf 0 setzt darfst du dich nicht wundern wenn 0 bei deinen Berechnungen rauskommt.
Typen definierst Du wenn du den entsprechenden Typ bei einer Zuweisung verwendest
0 -> int
0.0 -> float
"0" -> string
Gruß
Dookie
P.S.: Wenn du Code postest setzte ihn in Zukunft bitte in [ Python ]...[ /Python ] (Ohne Spaces)
[code]#!/usr/bin/env python
import this[/code]
import this[/code]