|
Tip 179 - Een tijdsduur berekenen over middernacht
heen
Iemand moet
berekenen hoe lang ergens aan gewerkt is. Er is een
veld Tijd Aanvang en een veld Tijd
Einde. Beide zijn natuurlijk
tijdvelden.
Zolang de eindtijd
ná de starttijd komt, is er geen probleem: de
eindtijd wordt dan van de starttijd afgetrokken, en dat
geeft de duurtijd.
Duurtijd =
Tijd Einde - Tijd Aanvang
Het loopt natuurlijk
mis als de eindtijd na middernacht ligt, zoals bijvoorbeeld
wanneer er gewerkt wordt van 11 uur 's avonds tot 1 uur 's
morgens.
We moeten de formule
voor de Duurtijd dus aanpassen en eerst controleren
of de eindtijd "kleiner" is dan de starttijd, zoals in
bovenstaand geval: 1 is daar immers kleiner dan 23 (11 uur
's avonds). We komen er met een gewone If-functie:
If(Tijd
Einde > Tijd Aanvang;Tijd Einde - Tijd
Aanvang;Time(24;00;00) - Tijd Aanvang + Tijd
Einde)
Let er wel op dat
het resultaat van de calculatie Time is.
En... dit werkt
enkel voor duurtijden korter dan 24 uur. In de andere
gevallen moeten we de datum in het verhaal
betrekken.
|