CFLib.org – Common Function Library Project

GetLastOccOfDayInMonth(TheDayOfWeek, TheMonth, TheYear)

Last updated August 22, 2001
Download UDF

author

Ken McCafferty

Version: 1 | Requires: CF5 | Library: DateLib

Description:
Returns the day of the month(1-31) of Last Occurrence of a day (1-sunday,2-monday etc.) in a given month. Can be used to determine holidays or special events that occur on the last occurrence of a day in a month.

Return Values:
Returns a numeric value.

Example:

<CFOUTPUT>
The last Monday in May of 2001 is on May #GetLastOccOfDayInMonth(2,5,2001)#.
</CFOUTPUT>

Parameters:

Name Description Required
TheDayOfWeek Ordinal value representing the desired day of the week (1-sunday,2-monday etc.) Yes
TheMonth Ordinal value representing the month (1-January, 2-February, etc.) Yes
TheYear The year. Yes

Full UDF Source:

/**
 * Returns the day of the month(1-31) of Last Occurrence of a day (1-sunday,2-monday etc.)
in a given month.
 * 
 * @param TheDayOfWeek 	 Ordinal value representing the desired day of the week (1-sunday,2-monday etc.) 
 * @param TheMonth 	 Ordinal value 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.0, August 22, 2001 
 */
function GetLastOccOfDayInMonth(TheDayOfWeek,TheMonth,TheYear) 
{
  //Find The Number of Days in Month
  Var TheDaysInMonth=DaysInMonth(CreateDate(TheYear,TheMonth,1));
  //find the day of week of Last Day
  Var DayOfWeekOfLastDay=DayOfWeek(CreateDate(TheYear,TheMonth,TheDaysInMonth));
  //subtract DayOfWeek
  Var DaysDifference=DayOfWeekOfLastDay - TheDayOfWeek;
  //Add a week if it is negative
  if(DaysDifference lt 0){
    DaysDifference=DaysDifference + 7;
  }
  return TheDaysInMonth-DaysDifference;
}
blog comments powered by Disqus

Search CFLib.org


Latest Additions

CF Ninja added
calcIRR
a month ago

Stephen Withington added
getWeekOfMonth
a month ago

Adam Cameron added
createPrimeNumbe...
2 months ago

Ray Ford added
timeZoneNow
3 months ago

Henry Ho added
queryExecute
3 months ago

Created by Raymond Camden / Design by Justin Johnson