FileMaker Tip 294

Automatische verjaardagkalenders (5)

 

Wanneer we de jarigen uit de tips 281, 282, 283 en 284 willen sorteren op FiFo-volgorde (eerst in, eerst uit), dus met de meest nakende verjaardag bovenaan in de lijst, dan moeten we weten hoeveel dagen er nog zijn tussen vandaag en elk van de komende verjaardagen.

We kunnen dit op meer dan een manier berekenen maar welke we ook kiezen, we krijgen telkens een echt haakjesfestival.

Eerst met zuivere datumvelden:

If(
Date(Month(Datum Geboorte);Day(Datum Geboorte);Year(1980)) >=
Date(Month(Get(CurrentDate));Day(Get(CurrentDate));Year(1980));Date(Month(Datum Geboorte);Day(Datum Geboorte);Year( 1980) - Date(Month(Get(CurrentDate));Day(Get(CurrentDate));Year(1980));Sum((Date(12;31;Year(Get(CurrentDate)) + 1) - Get(CurrentDate));(Date(Month(Datum Geboorte);Day(Datum Geboorte);Year(Get(CurrentDate))+1)) - Date(1;1;Year(Get(CurrentDate))+ 1)))

De tweede formule zet de datumvelden eerst om in numerieke waarden:

Case(
GetAsNumber(Date(Month(Datum geboorte);Day(Datum geboorte);Year(Get(CurrentDate))) > Get(CurrentDate));
GetAsNumber(Date(Month(Datum geboorte);Day(Datum geboorte);Year(Get(CurrentDate))) - Get(CurrentDate));
GetAsNumber(Date(Month(Datum geboorte);Day(Datum geboorte);
Year(Get(CurrentDate)) + 1) - Get(CurrentDate)))

Beide formules houden rekening met de schrikkeljaren en verdienen daarom alleen al de Gouden Palm.

Met dank aan Theo (voor de tweede formule)

 

Terug naar het selectiemenu voor de tips.