CFLib.org – Common Function Library Project

GetNthOccOfDayInMonth(NthOccurrence, TheDayOfWeek, TheMonth, TheYear)

Last updated August 28, 2001
Download UDF

author

Ken McCafferty                                    Ken McCafferty

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

 
Rated 2 time(s). Average Rating: 3.5

Description:
Returns the day of the month(1-31) of an Nth Occurrence of a day (1-sunday,2-monday etc.)in a given month. Used to determine holidays and special events that occur on the nth occurrence of a day in a month.

Return Values:
Returns a numeric value.

Example:

<CFOUTPUT>
The third Sunday in August of 2001 is on August
#GetNthOccOfDayInMonth(3,1,8,2001)#.
</CFOUTPUT>

Parameters:

Name Description Required
NthOccurrence A number representing the nth occurrence.1-5. Yes
TheDayOfWeek A number representing the day of the week (1=Sunday, 2=Monday, etc.). Yes
TheMonth A number representing the Month (1=January, 2=February, etc.). Yes
TheYear The year. Yes

Full UDF Source:

<cfscript>
/**
* Returns the day of the month(1-31) of an Nth Occurrence of a day (1-sunday,2-monday etc.)in a given month.
*
* @param NthOccurrence      A number representing the nth occurrence.1-5.
* @param TheDayOfWeek      A number representing the day of the week (1=Sunday, 2=Monday, etc.).
* @param TheMonth      A number representing the Month (1=January, 2=February, etc.).
* @param TheYear      The year.
* @return Returns a numeric value.
* @author Ken McCafferty (mccjdk@yahoo.com)
* @version 1, August 28, 2001
*/

function GetNthOccOfDayInMonth(NthOccurrence,TheDayOfWeek,TheMonth,TheYear)
{
Var TheDayInMonth=0;
if(TheDayOfWeek lt DayOfWeek(CreateDate(TheYear,TheMonth,1))){
TheDayInMonth= 1 + NthOccurrence*7 + (TheDayOfWeek - DayOfWeek(CreateDate(TheYear,TheMonth,1))) MOD 7;
}
else{
TheDayInMonth= 1 + (NthOccurrence-1)*7 + (TheDayOfWeek - DayOfWeek(CreateDate(TheYear,TheMonth,1))) MOD 7;
}
//If the result is greater than days in month or less than 1, return -1
if(TheDayInMonth gt DaysInMonth(CreateDate(TheYear,TheMonth,1)) OR TheDayInMonth lt 1){
return -1;
}
else{
return TheDayInMonth;
}
}
</cfscript>

Search CFLib.org


Latest Additions

Ryan Thompson-Jewell Ryan Thompson-Jewell added
ListSplit
1 day(s) ago

Nathan Dintenfass Nathan Dintenfass added
RowsToColumns
1 day(s) ago

Barney Boisvert Barney Boisvert added
indentXml
1 day(s) ago

Barney Boisvert Barney Boisvert added
REReplaceCallbac...
1 day(s) ago

Top Rated

Rob Brooks-Bilson                                 FolderSize
Rated 5.0, 7 time(s)

Nick Giovanni                                     UniqueValueList
Rated 5.0, 5 time(s)

James Sleeman                                     QuickSort
Rated 5.0, 3 time(s)

Jeff Howden ListDeleteDuplic...
Rated 5.0, 3 time(s)

Created by Raymond Camden / Design by Justin Johnson