Brian Dunning's FileMaker Custom Functions

DateByDayOccur ( yearNum ; monthNum ; dayOfWeekNum ; dayOccurance )

Returns the date of a specific occurrence of a day of the week, for a given month and year. Ideal for holiday calculations.

  Average rating: 4.4 (40 votes) Log in to vote

Jonathan Mickelson   Jonathan Mickelson

Share on Facebook Share on Twitter

  Sample input:
DateByDayOccur ( 2004; 1; 2; 3)

DateByDayOccur ( 2020; 2; 1; "")
  Sample output:
1/19/2004
(Which was Martin Luther King Day in 2004)
2/23/2020
(last Sunday in Feb, 2020)

  Function definition: (Copy & paste into FileMaker's Edit Custom Function window)

Returns the date of a specific occurrence of a day of the week, for a given month and year. Ideal for holiday calculations. For example, to find the 3rd Tuesday in March of 2008, or the date of the last Friday in December 1954.

Data type returned - Date

Parameters:

yearNum - any valid Year (YYYY format)
monthNum - a Number 1-12 representing a calendar month.
dayOfWeekNum - a number 1-7 (Where Sunday = 1 ... Saturday = 7)
dayOccurance - a number 1-5 For the desired occurrence of the day of the week. Null or empty values locate the LAST occurrence of the day of the week.
For example, to find the last Saturday in May 2001 you would use: DateByDayOccur ( 2001; 5; 7; "" )

Acknowledgements - This custom function draws upon work from:
- Dan Kaplan, abledesign.com, for a similar PHP calculation.
- Marcos J. Montes, www.smart.net/~mmontes/ushols.html

 

Comments

Alistair Hay   Alistair Hay, York, U.K.
Mar 31, 2016
I want to thank you for this function.
You have saved my an unimaginable amount of time re-inventing the wheel!

I was given the task of beginning a calendar display on the first Monday of the Month and ending on the last Sunday.
Your function was the final key to success.

So again, many many thanks

Alistair
 

Log in to post comments.

 

Note: these functions are not guaranteed or supported by BrianDunning.com. Please contact the individual developer with any questions or problems.

Under construction. Email me your wish list for improvements.