FileMaker - Tip 87

 

Klik op om terug te keren naar het selectiemenu.

Tip 87 - Drie dagen later, maar niet op zaterdag of zondag

Iemand vraagt vanaf een bepaalde datum de derde dag te berekenen. Dat is natuurlijk kinderspel:

Day3 = DayStart + 2

Dat konden we zelf ook al. Maar die derde dag mag niet op een zaterdag of op een zondag vallen. Dat is al wat anders...

We kunnen dit oplossen met een case-functie in onze calculation-formule waarbij we eerst controleren op welke dag DayStart valt. Hiertoe beschikken we over twee functies:

  • DayOfWeek (die een getal geeft van 1 tot en met 7, waarbij 1 gelijk is aan zondag, 2 aan maandag, enz.)

of

  • DayName (die de naam van de dag geeft, maar dat is tamelijk onbetrouwbaar omdat testen op bijvoorbeeld "zondag" enkel werkt op een Nederlandstalige machine; op andere heet die dag immers Sunday of dimanche enz.).

We krijgen dan deze formule:

Day 3 = Case(DayofWeek(DayStart) = 4;DayStart + 3;
DayofWeek(DayStart) = 5;DayStart + 3;DayStart + 2)

Natuurlijk hadden we het tweede Case-statement aan het eerste kunnen toevoegen met een OR:

Day 3 = Case(DayOfWeek(DayStart) = 4 or DayOfWeek(DayStart) = 5;DayStart + 3;DayStart + 2)

Voor degenen die dit maar slappe kost vinden, is er de spectaculaire formule uit het Scriptology book van Osborne & Petrowsky

DayStart + Middle("2222432"; Mod(DayStart - Date(1;3;1904); 7) + 1;1)

Zie ook Tip 2, Tip 80, Tip 124, Tip 210.

 
avd@avd-ci.be - contactformulier