Rechnung

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Gast

Mittwoch 13. Oktober 2004, 14:37

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
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Mittwoch 13. Oktober 2004, 15:30

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
[code]#!/usr/bin/env python
import this[/code]
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

Mittwoch 13. Oktober 2004, 17:27

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.
Gast

Donnerstag 14. Oktober 2004, 10:45

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)
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Donnerstag 14. Oktober 2004, 12:47

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)
[code]#!/usr/bin/env python
import this[/code]
Antworten