如何从营业时间列表列表中禁用预订的时间段



朋友,

i的工作约会预订项目,详细信息如下:营业时间从 9:00 7:00 默认持续时间为 30分钟。因此,插槽开始如(9:00,9:30,10:00 .... 7:00)。

在这里,要显示可用的插槽,我正在使用以下逻辑。

  1. 将所有插槽用 30分钟在列表中持续时间(列表a ),例如[9:00,9:30,10:00,10:00,10:30,... 7:00]
  2. 通过预订的约会进行循环(包含开始和结束时间),如果启动时间与任何列表> 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; 

最新更新