FileMaker - Tip 222

 

Klik op om terug te keren naar het selectiemenu.

Tip 222 - Een tijdsduur afronden naar het volgende kwartier

Deze week een vraag van Marco K. Hij wil een berekende tijdsduur (eindtijd min begintijd) decimaal verwerken, maar dan wel afgerond naar het volgende kwartier.

Dus iemand die 13 minuten "verbruikt" krijgt er 15 aangerekend (dus decimaal een kwart van een uur: 0,25). Op die manier kan gemakkelijk het uurtarief omgezet worden naar het te betalen bedrag.

FileMaker biedt hiervoor verschillende mogelijkheden. We kiezen voor de meest eenvoudige qua logica. We berekenen eerst de duurtijd door eindtijd en starttijd van elkaar af te trekken. Die duurtijd rekenen we om naar minuten en pas dan doen we een afronding naar het eerstvolgende veelvoud van 15. Dit getal zetten we dan terug om in uren en minuten.

We hebben dus maar drie velden nodig:

Tijd Start (time field)
Tijd Einde (time field)
Afgeronde decimale duurtijd (calc field)

Wanneer we alles in één enkele formule gieten, dan krijgen we voor dit laatste veld:

(If(
Mod((Hour(Tijd Einde - Tijd Start) * 60 + Minute(Tijd Einde - Tijd Start)); 15)>0;
Int((Hour(Tijd Einde - Tijd Start) * 60 + Minute(Tijd Einde - Tijd Start))/15+1);
Int((Hour(Tijd Einde - Tijd Start) * 60 + Minute(Tijd Einde - Tijd Start))/15)
)
*15) /60

Zuiver wiskundig gezien kunnen we de formule nog vereenvoudigen, maar dan wordt ze minder transparant. Nu kan Marco aan de slag!

 
avd@avd-ci.be - contactformulier