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

时间:2015-01-22 22:14:58

标签: coldfusion coldfusion-9 coldfusion-10

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

例如,教练刚从早上6点到早上8点完成会话。如果他们决定背靠背调度和上午8:15(如果他们想要休息),下一个可用的插槽应该是8AM。应该隐藏具有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 个答案:

答案 0 :(得分:1)

我发现我只为可用的时隙创建了2个数组,对于已经采用的时隙创建了第2个数组,并消除了我不需要的时间