Shopping Cart

Search:

Signup

Contact

FileMaker is a registered trademark of FileMaker, Inc. in the U.S. and other countries.

# FileMaker Pro Custom Functions

CountWorkingDays ( From ; To )

Rate this function:

Discuss this Custom Function

Saigopal Das, Mindfire Solutions
http://www.mindfiresolutions.com/

This helps to find no of working days in a date range including the given dates.

Sample Input:
 CountWorkingDays ( Date ( 1;5;2014 );Date ( 9;15;2015 ) )
Sample Output:
 442

Then copy & paste into FileMaker Advanced's Edit Custom Function window.

## Description:

This function first calculated the no of week between the provided dates and then adds the working days of the current week of from and to dates.

If the from and to years are different , then it calculates the working days of a particular year and adds it recursively.

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

This is my Custom Function and I want to edit it

## Discuss:

Not sure this is right:
List(
CountWorkingDays( get( currentDate); get( currentDate) + 1 );
CountWorkingDays( get( currentDate); get( currentDate) + 2 );
CountWorkingDays( get( currentDate); get( currentDate) + 3 );
CountWorkingDays( get( currentDate); get( currentDate) + 4 );
CountWorkingDays( get( currentDate); get( currentDate) + 5 );
CountWorkingDays( get( currentDate); get( currentDate) + 6 );
CountWorkingDays( get( currentDate); get( currentDate) + 7 )
)

Result:
2
3
4
3
4
5
6

Bruce, Redmond WA
September 09, 2015 1:07pm

To clarify: it looks like your function produces an error.

As you step through an increasing span of days, sometimes the count of working days moves backwards.

Bruce, Redmond WA
September 10, 2015 9:26am

As mentioned in another context: this can be coded non-recursively, and a whole lot shorter:

/*
Signature: CountWorkingDays_eos ( From ; To )
Recursive: No
*/

Case (
To > From ;
Let ( [
diff = To - From ;
weeks = Div ( diff ; 7 ) ;
days = Mod ( diff ; 7 ) ;
firstWeekDay = To - days + 1 ;
dayOfWeekFirstDay = DayOfWeek ( firstWeekDay ) ;
dayList = MiddleValues ( "1¶2¶3¶4¶5¶6¶7¶1¶2¶3¶4¶5" ; dayOfWeekFirstDay ; days ) ;
weekdays = ValueCount ( FilterValues ( "2¶3¶4¶5¶6" ; dayList ) )
] ;
weeks * 5 + weekDays
)
)

eos, Teg
September 10, 2015 4:58pm