CFLib.org – Common Function Library Project

BusinessDaysAdd(date, number)

Last updated August 10, 2005

author

Billy Cravens

Version: 2 | Requires: CF5 | Library: DateLib

Description:
Allows you to only add business days to a date (in other words, it ignores weekends). Unlike dateAdd(), it only works with days.

Return Values:
Returns a date object.

Example:

<cfoutput>
Start date: #DateFormat(Now(), 'dddd mmmm dd, yyyy')#<br>
Minus 10 business days: #DateFormat(BusinessDaysAdd(Now(), -10), 'dddd mmmm dd, yyyy')#<br>
Minus 5 business days: #DateFormat(BusinessDaysAdd(Now(), -5), 'dddd mmmm dd, yyyy')#<br>
Minus 3 business days: #DateFormat(BusinessDaysAdd(Now(), -3), 'dddd mmmm dd, yyyy')#<br>
Minus 2 business days: #DateFormat(BusinessDaysAdd(Now(), -2), 'dddd mmmm dd, yyyy')#<br>
Minus 1 business day : #DateFormat(BusinessDaysAdd(Now(), -1), 'dddd mmmm dd, yyyy')#<br>
Plus 1 business day : #DateFormat(BusinessDaysAdd(Now(), 1), 'dddd mmmm dd, yyyy')#<br>
Plus 2 business days: #DateFormat(BusinessDaysAdd(Now(), 2), 'dddd mmmm dd, yyyy')#<br>
Plus 3 business days: #DateFormat(BusinessDaysAdd(Now(), 3), 'dddd mmmm dd, yyyy')#<br>
Plus 5 business days: #DateFormat(BusinessDaysAdd(Now(), 5), 'dddd mmmm dd, yyyy')#<br>
Plus 10 business days: #DateFormat(BusinessDaysAdd(Now(), 10), 'dddd mmmm dd, yyyy')#<br>
</cfoutput>

Parameters:

Name Description Required
date Date you want to add business days to. Yes
number Number of business days to add to date. Yes

Full UDF Source:

/**
 * Works just like dateAdd(), except it only adds business days
 * Version 2 by Steven Van Gemert, svg2@placs.net
 * 
 * @param date 	 Date you want to add business days to. (Required)
 * @param number 	 Number of business days to add to date. (Required)
 * @return Returns a date object. 
 * @author Billy Cravens (billy@architechx.com) 
 * @version 2, August 10, 2005 
 */
function businessDaysAdd(date,number) {
  var cAdded = 0;
  var tempDate = date;
  var direction = compare(number,0);
  while (cAdded LT abs(number)) {
	tempDate = dateAdd("d",direction,tempDate);
    if (dayOfWeek(tempDate) GTE 2 AND dayOfWeek(tempDate) LTE 6) {
      cAdded = incrementValue(cAdded);
    }
  }
  return tempDate;
}
blog comments powered by Disqus

Search CFLib.org


Latest Additions

Kevin Cotton added
date2ExcelDate
May 5, 2016

Raymond Camden added
CapFirst
April 25, 2016

Chris Wigginton added
loremIpsum
January 18, 2016

Gary Stanton added
calculateArrival...
November 19, 2015

Sebastiaan Naafs - van Dijk added
getDaysInQuarter
November 13, 2015

Created by Raymond Camden / Design by Justin Johnson