代码之家  ›  专栏  ›  技术社区  ›  user1880192

如何跳过ColdFusion中的特定时间段

  •  -1
  • user1880192  · 技术社区  · 11 年前

    我正在创建一个有教练的汽车预约系统,它基本上工作正常。我想实施规则,我可以说我想阻止一些额外的会话。

    例如,讲师只需在上午6点到上午8点结束课程。如果他们决定背靠背调度,则下一个可用的时隙应该是上午8点,如果他们想休息,则为上午8点15分。105分钟内的其他会话应隐藏,以便下一个可用会话将在上午10点

    <cfloop index="ii" from="#startHour#" to="#endHour#">
    <cfloop index="jj" from="0" to="#60-locbtwMinute#" step="#locbtwMinute#">
        <cfset showtime="y">
        <cfset time = createtime(ii, jj, 0)>
    
            <cfloop query="qAssignedSessions">
    
                <cfset preSessionStart = dateadd("n",-locBtwSpan-buffertime,sessionstart)>
                <cfset postSessionend = dateadd("n",bufferTime,sessionend)>
    
                <cfif (hour(time) gt hour(preSessionStart) or (hour(time) eq hour(preSessionStart) and minute(time) gt minute(preSessionStart)))
                                            and (hour(time) lt hour(postSessionend) or (hour(time) eq hour(postSessionend) and minute(time) lt minute(postSessionend)))>
                                        <cfset showtime="n">
                                    </cfif>
                                </cfloop>
    
                                <cfif ((datecompare(arguments.startDt,latestSessionDate) eq 1 and ((hour(time) eq 20 and minute(time) eq 00) or hour(time) lt 20))
                                        or (datecompare(arguments.startDt,latestSessionDate) eq 0 and ((hour(time) eq 20 and minute(time) eq 00) or (hour(time) lt 20 and hour(time) gt hour(now()))))
                                            )
                                        and showtime eq "y">
                                    <option value="<cfoutput>#timeformat(time, 'HH:mm')#</cfoutput>"><cfoutput>#timeformat(time, "hh:mm tt")#</cfoutput></option>
                                </cfif>
                            </cfloop>
                        </cfloop>
    
    1 回复  |  直到 11 年前
        1
  •  1
  •   user1880192    11 年前

    我发现我只创建了2个数组,一个用于可用的时隙,另一个用于已占用的时隙,并消除了不需要的时隙