Nachtstunden berechnen

Jepp, ich weiss.
Das ist der Stand heute - Sorry, ich mache möglichst immer allgemeingültige Lösungen die nicht beim ersten Managerfurz (und solche gibts nach meinen Erfahrungen am mehr als man Zeit hat sie umzusetzen) gleich neu programmiert werden müssen.

Uh ja, willkommen im Club. Hab gerade sowas an der Backe.

Stichwort: CTI-Software an Telefonanlage *GROLL*
 
Hi Yaslaw

Sorry das ich erst jetzt antworte, Stress auf der Arbeit gehabt.

Der Fehler lag bei mir, sorry. Hatte es als Modul gespeichert. :(



Danke noch mal. ;-)
 
Hallo Yaslaw,

vielen Dank für deinen Lösungsvorschlag zur Nachtstundenberechnung.
Leider funktioniert es bei mir nicht richtig und ich finde einfach nicht den Fehler.

Also ich habe zwei verschiedene Nachtzuschläge:
von 20:00 Uhr bis 0:00 Uhr 25% Zuschlag und
von 0:00 Uhr bis 4:00 Uhr 40% Zuschlag.

Deine VBA-Anweisung berechnet die Zeit von 0:00 bis 4:00 Uhr korrekt, aber die Zeit von 20:00 bis 0:00 Uhr leider nicht.

Wenn ich die Zeit so einstelle:
Const C_NIGHT_BEGIN = "20:00:00"
Const C_NIGHT_End = "00:00:00"
wird die Zeiten bis 0 Uhr korrekt berechnet, aber nur, wenn über die 0 Uhr gearbeitet wurde. Wenn jedoch die Arbeitszeit vor 0 Uhr endet, dann ist die Zeit immer 0

:
Wenn ich die Zeit so einstelle:
Const C_NIGHT_BEGIN = "20:00:00"
Const C_NIGHT_End = "23:59:59"
wird die Zeiten bis 0 Uhr korrekt berechnet, aber nur, wenn nicht über die 0 Uhr gearbeitet wurde. Wenn jedoch die Arbeitszeit nach 0 Uhr endet, dann ist die Zeit immer 0

Nun hoffe ich einfach mal ,daß du auch heute noch hier aktiv bist und eventuell Lust hast dir das mal anzuschauen.
Würde mich freuen, wenn du auch dafür eine Lösung hättest.

LG Jacky
 
Ahoi

Ich kann dein Problem nicht nachvollziehen
Visual Basic:
   Const C_NIGHT_BEGIN = "20:00:00"
    Const C_NIGHT_END = "00:00:00"
Visual Basic:
?getNightHours(#19:00:00#,#01:00:00#)
4:00:00
 
Hallo Yaslaw,

so sieht das Ergebnis bei auch aus.

Aber welches Ergebnis bekommst du, wenn bei der Einstellung
Code:
Const C_NIGHT_BEGIN = "20:00:00"
Const C_NIGHT_End = "00:00:00"

die Arbeitszeit von 18 Uhr bis 22 Uhr ist?
Wieviel Nachtstunden werden dann bei dir errechnet?


Bei mir kommt dann immer 0 Std. raus. :(
 
Ersetz in der Funktion createPeriode() die TZagesüberggriffslogik
Visual Basic:
       If iBegin > iEnd Then .end = .end + C_DAY_IN_SEC

Aber teste weitere Fälle....
 
Hallo Yaslaw,

super, jetzt funktioniert es mit 20 bis 0 Uhr, vielen Dank!

Allerdings funktioniert diese Änderung dann nicht mehr für die Zeiteinstellung 0 Uhr bis 4 Uhr, wenn die Arbeitszeit über 0 Uhr erfolgt.
Also Arbeitszeit von 19 Uhr bis 1 Uhr ergibt dann 0 Stunden
Wogegen eine Arbeitszeit von 1 Uhr bis 5 Uhr richtigerweise 4 Stunden ergibt.

Aber da ich eh zwei Module mache, habe ich nun für die Nachtstundenberechnung
Code:
Const C_NIGHT_BEGIN = "20:00:00"
Const C_NIGHT_End = "00:00:00"
die createPeriode() auf
Code:
If iBegin > iEnd Then .end = .end + C_DAY_IN_SEC
geändert und für die Nachtstundenberechnung
Code:
Const C_NIGHT_BEGIN = "00:00:00"
Const C_NIGHT_End = "04:00:00"
lasse ich die createPeriode() unverändert bei
Code:
If iBegin > iEnd Then .begin = .begin - C_DAY_IN_SEC

Nochmals vielen Dank für deine Hilfe. :)

LG Jacky
 
Zurück