I’m trying to create a function that will check the start/end times
of two periods to see if there is a conflict with a scheduling program.
For example:
Period 1 – 8:00 to 9:00 and Period 2 – 9:00 to 10:00 would be OK
Period 1 – 8:00 to 10:00 and Period 2 – 9:00 to 10:00 would be BAD
Period 1 – 8:30 to 9:30 and Period 2 – 9:00 to 10:00 would be BAD
My “CheckTimeConflict()” function does not work correctly. 😡
Is the function correctable
or should I write a completely different check using DATE/TIME formats?
Here’s what I’ve got so far:
[code]
<html>
<head>
<title>Time Block Checks</title>
<script type=”text/javascript”>
function CheckTimeConflict(frm) {
var STa = frm.stA.value*60; // convert to seconds
var ETa = frm.etA.value*60-1;
var STb = frm.stB.value*60;
var ETb = frm.etB.value*60-1;
var act = 0;
var Status = ”; // Different
if (STa == STb) { act = 1; } // Same
if ((ETa >= STb) && (STa >= STb)) { act = 2 } // Overlap (A within B)
if ((STa >= STb) && (STa <= ETb)) { act = 3 } // Overlap (A within B)
switch (act) {
case 1: Status = ‘BAD: STa == STb’; break;
case 2: Status = ‘BAD: (ETa > STb) && (STa >= STb)’; break;
case 3: Status = ‘BAD: (STa >= STb) && (STa <= ETb)’; break;
default:Status = ‘OK’; break;
}
alert(‘Block A: ‘+STa+’ –> ‘+ETa+’n Block B: ‘+STb+’ –> ‘+ETb+’nStatus: ‘+Status);
}
function SetSame(frm) {
frm.stA.value=’8′;
frm.etA.value=’9′;
frm.stB.value=’8′;
frm.etB.value=’9′;
}
function SetDiff(frm) {
frm.stA.value=’8′;
frm.etA.value=’9′;
frm.stB.value=’9′;
frm.etB.value=’10’;
}
function SetOver(frm) {
frm.stA.value=’8′;
frm.etA.value=’10’;
frm.stB.value=’9′;
frm.etB.value=’11’;
}
</script>
</head>
<body>
<form onsubmit=”return false”>
Block A START time:
<select name=”stA”>
<option value=”8″ selected>8:00 am</option>
<option value=”8.5″>8:30 am</option>
<option value=”9″>9:00 am</option>
<option value=”9.5″>9:30 am</option>
<option value=”10″>10:00 am</option>
<option value=”10.5″>10:30 am</option>
<option value=”11″>11:00 am</option>
<option value=”11.5″>11:30 am</option>
<option value=”12″>12:00 pm</option>
</select>
END time:
<select name=”etA”>
<option value=”8″>8:00 am</option>
<option value=”8.5″>8:30 am</option>
<option value=”9″ selected>9:00 am</option>
<option value=”9.5″>9:30 am</option>
<option value=”10″>10:00 am</option>
<option value=”10.5″>10:30 am</option>
<option value=”11″>11:00 am</option>
<option value=”11.5″>11:30 am</option>
<option value=”12″>12:00 pm</option>
<option value=”12.5″>12:30 pm</option>
<option value=”13″>1:00 pm</option>
<option value=”13.5″>1:30 pm</option>
</select>
<br>
Block B START time:
<select name=”stB”>
<option value=”8″>8:00 am</option>
<option value=”8.5″>8:30 am</option>
<option value=”9″ selected>9:00 am</option>
<option value=”9.5″>9:30 am</option>
<option value=”10″>10:00 am</option>
<option value=”10.5″>10:30 am</option>
<option value=”11″>11:00 am</option>
<option value=”11.5″>11:30 am</option>
<option value=”12″>12:00 pm</option>
</select>
END time:
<select name=”etB”>
<option value=”8″>8:00 am</option>
<option value=”8.5″>8:30 am</option>
<option value=”9″>9:00 am</option>
<option value=”9.5″>9:30 am</option>
<option value=”10″ selected>10:00 am</option>
<option value=”10.5″>10:30 am</option>
<option value=”11″>11:00 am</option>
<option value=”11.5″>11:30 am</option>
<option value=”12″>12:00 pm</option>
<option value=”12.5″>12:30 pm</option>
<option value=”13″>1:00 pm</option>
<option value=”13.5″>1:30 pm</option>
</select>
<p>
</form>
<input type=”radio” name=”setTimes” onclick=”SetDiff(this.form)”> Different
<input type=”radio” name=”setTimes” onclick=”SetSame(this.form)”> Same
<input type=”radio” name=”setTimes” onclick=”SetOver(this.form)”> Overlap
<br>
<button onclick=”CheckTimeConflict(this.form)”>Check Conflict</button>
</form>
</body>
</html>