Jerry Posted December 24, 2007 Posted December 24, 2007 http://www.clarify.net/viewtopic.php?t=3254 Dit draadje gaat precies over iets wat mij maar niet lukt... Doel: ik wil het aantal uren zien dat er in een bepaalde dienst gewerkt is: Dagdienst:.....uur Avonddienst:.....uur Nachtdienst:....uur Dagdienst: If(GetAsNumber(Eindtijd_regels) > Time(7;0;0) and GetAsNumber(Eindtijd_regels)<= Time(18;0;0) and GetAsNumber(Begintijd_regels) <=Time(7;0;0); Eindtijd_regels - Time(7; 0; 0);"") + If(GetAsNumber(Eindtijd_regels) >= Time(7;0;0) and GetAsNumber(Eindtijd_regels)<= Time(18;0;0) and GetAsNumber(Begintijd_regels) > Time(7;0;0); Eindtijd_regels - Begintijd_regels;"") + If(GetAsNumber(Eindtijd_regels)> Time(18;0;0) and GetAsNumber(Begintijd_regels) <= Time(7;0;0); Time(18;0;0) - Time(7; 0; 0);"") + If(GetAsNumber(Eindtijd_regels) >= Time(7;0;0) and GetAsNumber(Eindtijd_regels)> Time(18;0;0) and GetAsNumber(Begintijd_regels) > Time(7;0;0) and GetAsNumber(Begintijd_regels) <= Time(18;0;0); Time(18;0;0) - Begintijd_regels;"")+ If(GetAsNumber(Eindtijd_regels)<=Time(7;0;0);Time(18;0;0)-Begintijd_regels) Dagdienst/3600 = uitkomst Avonddienst If(GetAsNumber(Eindtijd_regels) > Time(18;0;0) and GetAsNumber(Eindtijd_regels)<= Time(24;0;0) and GetAsNumber(Begintijd_regels) <=Time(18;0;0); Eindtijd_regels - Time(18; 0; 0);"") + If(GetAsNumber(Eindtijd_regels) >= Time(18;0;0) and GetAsNumber(Eindtijd_regels)<= Time(24;0;0) and GetAsNumber(Begintijd_regels) > Time(18;0;0); Eindtijd_regels - Begintijd_regels;"") + If(GetAsNumber(Eindtijd_regels)> Time(24;0;0) and GetAsNumber(Begintijd_regels) <= Time(18;0;0); Time(24;0;0) - Time(18; 0; 0);"") + If(GetAsNumber(Eindtijd_regels) >= Time(18;0;0) and GetAsNumber(Eindtijd_regels)> Time(24;0;0) and GetAsNumber(Begintijd_regels) > Time(18;0;0) and GetAsNumber(Begintijd_regels) <= Time(24;0;0); Time(24;0;0) - Begintijd_regels;"")+ If(GetAsNumber(Eindtijd_regels)<=Time(7;0;0)and GetAsNumber(Begintijd_regels)<=Time(18;0;0);Time(24;0;0)-Time(18;0;0)) En nacht dienst. If(GetAsNumber(Eindtijd_regels) > Time(0;0;0) and GetAsNumber(Eindtijd_regels)<= Time(7;0;0) and GetAsNumber(Begintijd_regels) <=Time(0;0;0); Eindtijd_regels - Time(0;0;0);"") + If(GetAsNumber(Eindtijd_regels) >= Time(0;0;0) and GetAsNumber(Eindtijd_regels)<= Time(7;0;0) and GetAsNumber(Begintijd_regels) > Time(0;0;0); Eindtijd_regels - Begintijd_regels;"") + If(GetAsNumber(Eindtijd_regels)> Time(7;0;0) and GetAsNumber(Begintijd_regels) <= Time(0;0;0); Time(7;0;0) - Time(0;0;0);"") + If(GetAsNumber(Eindtijd_regels) >= Time(0;0;0) and GetAsNumber(Eindtijd_regels)> Time(7;0;0) and GetAsNumber(Begintijd_regels) > Time(0;0;0) and GetAsNumber(Begintijd_regels) <= Time(7;0;0); Time(7;0;0) - Begintijd_regels;"")+ If(GetAsNumber(Eindtijd_regels)<=Time(0;0;0);Time(7;0;0)-Begintijd_regels) Test: 06:00- 19:00 (13 uur) dagdienst 11 uur avond dienst 1 uur nachtdienst 1 uur. Dat klopt dus. Maar ga je een dienst invoeren van bv 23:00-07:00 Dan krijg je negatieve waardes. Heeft iemand een idee hoe dat kan en wat er moet veranderen? Bovenstaande berekeningen heb ik niet zelf uitgedokterd, ze zijn overgenomen van een forummer in een eerder draadje ( vorig jaar geloof ik) Quote
0 JeanWM Posted December 25, 2007 Posted December 25, 2007 Bij de nachtdienst zit je te paard op twee dagen (is dat een Nederlandse uitdrukking ¿ ), dus dien je daar ook rekening mee te houden. ((dateEnd - dateStart) * 86400) + timeEnd - timeStart .. is een vrij eenvoudige manier om de uren te berekenen die over meerdere dagen lopen. Las, lijm, plak of velponiseer dat in je nachtformule. Quote
0 Koen Van Hulle Posted December 25, 2007 Posted December 25, 2007 Of omzetten naar TimeStamps (DateTime format). Koen Quote
0 Jerry Posted December 25, 2007 Author Posted December 25, 2007 Misschien dat Timestamps nauwkeriger zijn? De uitdaging is echter groter: Ik weet hoelang een dienst duurt, over middernacht heen. Ik weet niet, maar wil wel weten, hoeveel uren er zijn gewerkt in elke dienst afzonderlijk. x-uren in dagdienst (07:00-18:00) x-uren in avonddienst (18:00-24:00) x-uren in nachtdienst (24:00-07:00) De berekeningen die ik gepost had kloppen voor de dag.-en avonddienst. In de nachtdienst schijnen ze af te tellen? Quote
Question
Jerry
http://www.clarify.net/viewtopic.php?t=3254
Dit draadje gaat precies over iets wat mij maar niet lukt...
Doel: ik wil het aantal uren zien dat er in een bepaalde dienst gewerkt is:
Dagdienst:.....uur
Avonddienst:.....uur
Nachtdienst:....uur
Dagdienst:
If(GetAsNumber(Eindtijd_regels) > Time(7;0;0) and GetAsNumber(Eindtijd_regels)<= Time(18;0;0) and GetAsNumber(Begintijd_regels) <=Time(7;0;0); Eindtijd_regels - Time(7; 0; 0);"") +
If(GetAsNumber(Eindtijd_regels) >= Time(7;0;0) and GetAsNumber(Eindtijd_regels)<= Time(18;0;0) and GetAsNumber(Begintijd_regels) > Time(7;0;0); Eindtijd_regels - Begintijd_regels;"") +
If(GetAsNumber(Eindtijd_regels)> Time(18;0;0) and GetAsNumber(Begintijd_regels) <= Time(7;0;0); Time(18;0;0) - Time(7; 0; 0);"") +
If(GetAsNumber(Eindtijd_regels) >= Time(7;0;0) and GetAsNumber(Eindtijd_regels)> Time(18;0;0) and GetAsNumber(Begintijd_regels) > Time(7;0;0) and GetAsNumber(Begintijd_regels) <= Time(18;0;0); Time(18;0;0) - Begintijd_regels;"")+
If(GetAsNumber(Eindtijd_regels)<=Time(7;0;0);Time(18;0;0)-Begintijd_regels)
Dagdienst/3600 = uitkomst
Avonddienst
If(GetAsNumber(Eindtijd_regels) > Time(18;0;0) and GetAsNumber(Eindtijd_regels)<= Time(24;0;0) and GetAsNumber(Begintijd_regels) <=Time(18;0;0); Eindtijd_regels - Time(18; 0; 0);"") +
If(GetAsNumber(Eindtijd_regels) >= Time(18;0;0) and GetAsNumber(Eindtijd_regels)<= Time(24;0;0) and GetAsNumber(Begintijd_regels) > Time(18;0;0); Eindtijd_regels - Begintijd_regels;"") +
If(GetAsNumber(Eindtijd_regels)> Time(24;0;0) and GetAsNumber(Begintijd_regels) <= Time(18;0;0); Time(24;0;0) - Time(18; 0; 0);"") +
If(GetAsNumber(Eindtijd_regels) >= Time(18;0;0) and GetAsNumber(Eindtijd_regels)> Time(24;0;0) and GetAsNumber(Begintijd_regels) > Time(18;0;0) and GetAsNumber(Begintijd_regels) <= Time(24;0;0); Time(24;0;0) - Begintijd_regels;"")+
If(GetAsNumber(Eindtijd_regels)<=Time(7;0;0)and GetAsNumber(Begintijd_regels)<=Time(18;0;0);Time(24;0;0)-Time(18;0;0))
En nacht dienst.
If(GetAsNumber(Eindtijd_regels) > Time(0;0;0) and GetAsNumber(Eindtijd_regels)<= Time(7;0;0) and GetAsNumber(Begintijd_regels) <=Time(0;0;0); Eindtijd_regels - Time(0;0;0);"") +
If(GetAsNumber(Eindtijd_regels) >= Time(0;0;0) and GetAsNumber(Eindtijd_regels)<= Time(7;0;0) and GetAsNumber(Begintijd_regels) > Time(0;0;0); Eindtijd_regels - Begintijd_regels;"") +
If(GetAsNumber(Eindtijd_regels)> Time(7;0;0) and GetAsNumber(Begintijd_regels) <= Time(0;0;0); Time(7;0;0) - Time(0;0;0);"") +
If(GetAsNumber(Eindtijd_regels) >= Time(0;0;0) and GetAsNumber(Eindtijd_regels)> Time(7;0;0) and GetAsNumber(Begintijd_regels) > Time(0;0;0) and GetAsNumber(Begintijd_regels) <= Time(7;0;0); Time(7;0;0) - Begintijd_regels;"")+
If(GetAsNumber(Eindtijd_regels)<=Time(0;0;0);Time(7;0;0)-Begintijd_regels)
Test:
06:00- 19:00 (13 uur)
dagdienst 11 uur
avond dienst 1 uur
nachtdienst 1 uur.
Dat klopt dus.
Maar ga je een dienst invoeren van bv
23:00-07:00
Dan krijg je negatieve waardes.
Heeft iemand een idee hoe dat kan en wat er moet veranderen?
3 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.