Always check CFLib first... http://www.cflib.org/udf.cfm?ID=179
-Cameron ----------------- Cameron Childress Sumo Consulting Inc. --- cell: 678-637-5072 aim: cameroncf email: [EMAIL PROTECTED] > -----Original Message----- > From: Owens, Howard [mailto:[EMAIL PROTECTED] > Sent: Friday, February 28, 2003 9:28 PM > To: CF-Talk > Subject: RE: anybody ever done: every n day of the month for a year ... > > > Well, for anybody interested ... this is what I have so far in trying to > figure out a way of grabbing the N weekday of the month ... since the > aforemented weekadd didn't work (it doesn't account for five week > months), I > thought the best way to proceed would be to try to figure out the > first day > of the month, figure out what the first N day is after than, then > increment > up weekly after that. > > The following code is just draft/development code, not nearly yet > production > code ... just thought I would throw it out for comment ... I know I still > have one bug, but can't work on it any more tonight -- I discovered in my > last test that November of this year throws up a first friday > with a Date of > 0 ... oops! > > anyway ... this is what I've done so far ... I'm knocking off the for the > night: > > <cfscript> > /* first parse out month of the start date > * then find out the num val of the day of the week for the start date > * then grab the year > * then reconstruct the date to find the day of the week for the first of > the month > * then add the num val of the recurrence day you want > * then add the two days together, then subtrack 1 = > * you now have the date of the first X day of the month > * then just construct a list by incrementing up by 7 for the month */ > > seedParamWeekDay=6; // this would be a form var for (example) Friday > seedParamWeekRecur=3; // this would be form var for recurrence week > /* calculate the first day name/number of > * the month in the seed/start-date month > * start date comes from a form var */ > seedMonth=month('11/25/03'); // get start-date month > seedYear=year('11/25/03'); // get start-date year > seedDayOWk=DayOfWeek('#seedMonth#/1/#seedYear#'); // rebuild date > from start > of the month > seedFirstDay=(seedParamWeekDay-seedDayOWk)+1; > > /* build a list of all the days of the month for each week */ > week1=seedFirstDay; > week2=week1+7; > week3=week2+7; > week4=week3+7; > last=week4+7; > /*construct the last date in the weekly recurrence of the month > * the idea is that the date must be at least less than 31, but since > some months > * have fewer than 31 days, we still want to make sure we don't wind > up with > * something like 2/31/03 */ > if (last LTE 31 or isDate(#seedMonth#/#last#/#seedYear#)) { > last=last; > } > else { > last=week4; > } > > listmonth = '#week1#,#week2#,#week3#,#week4#,#last#'; > schDate=ListGetAt(listmonth, seedParamWeekRecur); > > writeoutput('seedParamWeekDay: '); > writeoutput(seedParamWeekDay); > writeoutput('<br> '); > > writeoutput('seedParamWeekRecur: '); > writeoutput(seedParamWeekRecur); > writeoutput('<br> '); > > writeoutput('seedMonth: '); > writeoutput(seedMonth); > writeoutput('<br> '); > > writeoutput('seedYear: '); > writeoutput(seedYear); > writeoutput('<br> '); > > writeoutput('seedDayOWk: '); > writeoutput(seedDayOWk); > writeoutput('<br> '); > > > writeoutput('seedFirstDay: '); > writeoutput(seedFirstDay); > writeoutput('<br> '); > > > > writeoutput('listmonth: '); > writeoutput(listmonth); > writeoutput('<br> '); > > writeoutput('last date: '); > writeoutput('#seedMonth#/#last#/#seedYear#'); > writeoutput('<br> '); > writeoutput('date: '); > writeoutput(schDate); > </cfscript> > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~| Archives: http://www.houseoffusion.com/cf_lists/index.cfm?forumid=4 Subscription: http://www.houseoffusion.com/cf_lists/index.cfm?method=subscribe&forumid=4 FAQ: http://www.thenetprofits.co.uk/coldfusion/faq Structure your ColdFusion code with Fusebox. Get the official book at http://www.fusionauthority.com/bkinfo.cfm Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4