Seite 1 von 1
Rechnung
Verfasst: Mittwoch 13. Oktober 2004, 14:37
von Gast
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
Verfasst: Mittwoch 13. Oktober 2004, 15:30
von Dookie
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!
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
Verfasst: Mittwoch 13. Oktober 2004, 17:27
von Milan
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.
Verfasst: Donnerstag 14. Oktober 2004, 10:45
von Gast
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)
Verfasst: Donnerstag 14. Oktober 2004, 12:47
von Dookie
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)