Here is an interesting problem, and one I admit I'm not sure what the best answer is. You have two people who want to meet. However, both are quite busy and have a day full of meetings. Can you use ColdFusion to find a time where both are available? I've created a simple data set that contains a query of 4 rows. Person ID is the FK of the user. Name is the name. Start and End are the times of a meeting. Each row then is one meeting, or a busy time. Your solution needs to find a time where users 1 and 2 can meet up (on 6/16 obviously). Your solution should only search from 8AM to 6PM, and, potentially, handle a case where a meeting is impossible.
Here is some code that will generate the data for you. By the way - notice how I commit one of the cardinal sins of UDFs - accessing outside data from a UDF. Also notice how I don't care - it was a handy way to manipulate the core query quickly and easily. Anyway, here is the code:
<cfscript>
function addEvent(personid, name, start, end) {
queryAddRow(data);
querySetCell(data, "personid", arguments.personid);
querySetCell(data, "name", arguments.name);
querySetCell(data, "start", arguments.start);
querySetCell(data, "end", arguments.end);
}
</cfscript>
<cfset data = queryNew("personid,name,start,end")>
<cfset addEvent(1, "Ray", "6/16/06 8:00 AM", "6/16/06 10:00 AM")>
<cfset addEvent(1, "Ray", "6/16/06 2:00 PM", "6/16/06 4:00 PM")>
<cfset addEvent(2, "Lynn", "6/16/06 8:00 AM", "6/16/06 9:00 AM")>
<cfset addEvent(2, "Lynn", "6/16/06 10:00 AM", "6/16/06 12:00 PM")>