朋友,
i的工作约会预订项目,详细信息如下:营业时间从 9:00 到 7:00 默认持续时间为 30分钟。因此,插槽开始如(9:00,9:30,10:00 .... 7:00)。
在这里,要显示可用的插槽,我正在使用以下逻辑。
- 将所有插槽用 30分钟在列表中持续时间(列表a ),例如[9:00,9:30,10:00,10:00,10:30,... 7:00]
- 通过预订的约会进行循环(包含开始和结束时间),如果启动时间与任何列表> list a elements匹配,则我,我从中删除该元素列表。循环继续。
在这里,问题是,请考虑是否已预订 9:30-10:00 。根据我的逻辑, 9:30 与列表匹配一个元素,它将从该列表中删除9:30。
因此,可用的插槽将显示为[9:00,x,10:00,10:30,.... 7:00]。实际上应该是[9:00,9:30,10:30,11:00 ... 7:00]
而不是显示可用插槽 9:00-9:30,10:30-11:00 它显示 9:00-10:00,10:30:30-11 自9:30从列表中删除。
请帮助解决此问题,或建议我解决此问题的其他方法。急需。
您要混合的东西是,您将第二个插槽的开始时间作为第一个插槽的结束时间。因此,您可以做的是存储开始时间和持续时间。
,要简单地计算结束时间,您要做
StartTime.AddMinutes(30);
并在最后添加一个评论;您正在尝试建立一个非常僵化的结构。如果您尝试扩展应用程序,iMho。
我建议,而不是使用单维数组,而是使用多维数组,例如
[[9:00][9:30],[9:30][10:00],[10:00][10:30], .... nth Item]
在这里,逻辑应该像这样
var start=[start time]
var end=[end time]
var duration=[duration]
for (i=start;i<end;i+=duration)
{
if(start==A[i][0])
remove(A[i][0]);
}
A.sort();
return A;