View Full Version : Scheduling Stumper

06-06-2004, 03:24 AM
I am creating a scheduling program and have run into a conundrum.

The program allows the user to add rooms that can be assigned to staff. Each staff member has their availability set with a start and end time and a break time. (in a mySQL database in the TIME format 00:00:00).

I am trying to output a weekly calendar. I'm not sure how to actually display it. All rooms could be full, the person could have an appointment, or they have room. Either way, I want to display the times down the left side of a table and the days across. I would like to have an appointment that runs over a 15 minute block (times are available at 00min, 15min, 30min, and 45min past the hour) it becomes one cell.

If anyone has any suggestions that'd be great. Here is what i have already to determine the next and previous weeks, any tips would be much appreciated:

$days = array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday");
$months = array("", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
// number of days in each month
$totalDays = array(0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);

//get the current date from the url
$currYear = $_GET['currYear'];
$currMonth = $_GET['currMonth'];
$currDay = $_GET['currDay'];

//if not set find year, month, date
if(!$currYear) { $currYear = date("Y"); }
if(!$currMonth) { $currMonth = date("n"); }
if(!$currDay) { $currDay = date("j"); }
//leap year
if (date("L", mktime(0,0,0,$currMonth,1,$currYear)))
$totalDays[2] = 29;
$firstDayOfMonth = date("w", mktime(0,0,0,$currMonth,1,$currYear));

//defaults for previous week
$prevDay = $currDay-7;
$prevMonth = $currMonth;
$prevyear = $currYear;
//if negative number change month
if($prevDay < 1){
$prevMonth = $currMonth-1;
$prevYear = $currYear;
// if January, decrement year and set month to December
if ($prevMonth < 1) {
$prevDay = $totalDays[$prevMonth] + $prevDay;
}//prevDay less than 1

//defaults for next week
$nextDay = $currDay+7;
$nextMonth = $currMonth;
$nextYear = $currYear;
//if negative number change month
if($nextDay > $totalDays[$currMonth]){
$nextMonth = $currMonth+1;
$nextYear = $currYear;
// if December, increment year and set month to January
if ($nextMonth > 12) {
$nextDay=$nextDay - $totalDays[$currMonth];
}//nextDay too big

and here is my current output code:

//the actual week displayed
echo("<table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" bgcolor=\"#000000\"><tr><td>");
echo("<table width=\"100%\" border=\"0\" cellspacing=\"1\" cellpadding=\"2\"><tr bgcolor=\"#FFFFFF\">");

Thanks in advance.