CFLib.org – Common Function Library Project

BusinessDaysAdd(date, number)

Last updated August 10, 2005

Version: 2 | Requires: ColdFusion 5 | Library: DateLib

 
Rated 6 time(s). Average Rating: 2.8

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:

view plain print about
<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:

view plain print about
<cfscript>
/**
 * 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 (svg2@placs.netbilly@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;
}
</cfscript>
blog comments powered by Disqus

Search CFLib.org


Latest Additions

Tayo Akinmade Tayo Akinmade added
arrayTrim
11 day(s) ago

Will Belden Will Belden added
longTime
17 day(s) ago

James Sleeman James Sleeman added
quickSort
27 day(s) ago

Ben Forta Ben Forta added
GetHostAddress
30 day(s) ago

Top Rated

Darwan Leonardo Sitepu EksporSQLData
Rated 5.0, 16 time(s)

Darwan Leonardo Sitepu backupDatabase
Rated 5.0, 13 time(s)

Barney Boisvert indentXml
Rated 5.0, 10 time(s)

Kevin Pepperman generateSsccAsn
Rated 5.0, 4 time(s)

Created by Raymond Camden / Design by Justin Johnson