getEveryDOW(dowList[, startdate][, enddate])
Last updated July 27, 2011
Version: 2 | Requires: CF5 | Library: DateLib
Description:
Returns every occasion of a day of the week. A list of days of the week can be used. The UDF returns an array of date objects corresponding to the days of the week requested.
Return Values:
Returns an array.
Example:
<cfset dowList = "1,3">
<cfset dArr = getEveryDow(dowlist)>
<cfdump var="#dArr#">
Parameters:
Name | Description | Required |
---|---|---|
dowList | A list of days of the week in numeric form. | Yes |
startdate | Initial range for search. Defaults to the beginning of the current year. | No |
enddate | Initial range for search. Defaults to the end of the current year. | No |
Full UDF Source:
/**
* Returns every occasion of a day of the week. A list of days of the week can be used.
* Updates by Scott Pinkston and Peter Boughton to support a 'range' instead of just a year.
* Fix by Jim O'Keefe to prevent values outside of this year.
*
* @param dowList A list of days of the week in numeric form. (Required)
* @param startdate Initial range for search. Defaults to the beginning of the current year. (Optional)
* @param enddate Initial range for search. Defaults to the end of the current year. (Optional)
* @return Returns an array.
* @author Raymond Camden (ray@camdenfamily.com)
* @version 2, July 27, 2011
*/
function getEveryDOW(dowlist) {
var day1 = "";
var x = "";
var thisDOW = "";
var result = arrayNew(1);
var initialDOW = "";
var offset = "";
var dateToAdd = "";
var startdate = createDate(year(now()), 1, 1);
var enddate = createDate(year(now()), 12, 31);
day1 = startdate;
initialDOW = dayOfWeek(day1);
if(arrayLen(arguments) gte 2) {
startdate = arguments[2];
}
if(arrayLen(arguments) gte 3) {
enddate = arguments[3];
}
while( day1 LT enddate ) {
for(x=1; x lte listlen(dowlist); x=x+1) {
thisDOW = listGetAt(dowlist, x);
offset = thisDOW - initialDOW;
dayToAdd = dateAdd("d", offset, day1 );
if (dayToAdd gte startDate and dayToAdd lte endDate) {arrayAppend(result, dayToAdd);}
}
day1 = dateAdd("ww", 1, day1);
}
return result;
}
Search CFLib.org
Latest Additions
Raymond Camden added
QueryDeleteRows
November 04, 2017
Leigh added
nullPad
May 11, 2016
Raymond Camden added
stripHTML
May 10, 2016
Kevin Cotton added
date2ExcelDate
May 05, 2016
Raymond Camden added
CapFirst
April 25, 2016