本帖最后由 gaowenzhen 于 2013-05-14 10:52:40 编辑

解决方案 »

  1.   

    如果时间段是排好序且不存在错误时间的话:var totalTime = {startTime : "08:30", endTime : "22:30"};
    var occupiedTime = [ {startTime : "09:20", endTime : "10:30"}, 
                         {startTime : "11:30", endTime : "12:30"}, 
                         {startTime : "14:30", endTime : "15:30"}, 
                         {startTime : "15:30", endTime : "21:30"} ];
    var idleTime = new Array();var currentStartTime = totalTime.startTime;
    for (var i = 0; i < occupiedTime.length; i++) {
    var currentOccupied = occupiedTime[i];
    if (currentStartTime < currentOccupied.startTime) {
    var idle = {startTime : currentStartTime, endTime : currentOccupied.startTime};
    idleTime.push(idle);
    }
    currentStartTime = currentOccupied.endTime;
    }
    if (currentStartTime < totalTime.endTime) {
    var idle = {startTime : currentStartTime, endTime : totalTime.endTime};
    idleTime.push(idle);
    }idleTime数组即为结果
      

  2.   

    rencht --真是好思路啊,我怎么就没有想到呢,太感谢了我分少要不然多给您一点。