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. :oops:

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)