时间表算法

时间:2016-03-25 09:29:54

标签: node.js algorithm

我一直在尝试解决我曾经工作的应用程序的调度问题。这个问题如下......

第一次填充列表:

  • 将查看用户在“联系人”列表中设置为“活动”的所有联系人。
  • 对于每一个,它应该查看他们选择的联系频率(例如x天,x周,x个月)。
  • 会将他们的“最后联系日期”与今天的日期进行比较。对于这些日期之间的差异大于其指定联系频率的任何联系人,该人员将被添加到代理人列表中。

人们在代理人列表中的显示顺序应符合以下规则:

  • 最后一次接触之间距离最长的联系人在列表中较高
  • 标记为收藏的联系人位于列表顶部
  • isApp用户优先考虑

从这个“候选人”列表中,算法还应该检查每个人的联系历史记录。对于具有以下指定联系频率的联系人,请遵循以下规则

  • 每x天 - 不要考虑历史。只需在他们过期时添加
  • 每x周 - 如果已经在过去3天内联系,请不要显示,并跳到下次他们将要联系。
  • 每x个月 - 如果在过去7天内已经联系,请不要显示,并跳到下次他们将要联系。
  • 每x年 - 如果在上个月联系,请不要显示,并跳到下次他们将要联系。

1 个答案:

答案 0 :(得分:3)

创建包含所有联系人的数据集阵列。为联系人添加过滤器,例如" active"。设置联系人的时间段以根据差距进行区分。创建默认类别并在其中添加所有联系人,以便您可以迭代以跳过最近7天左右的联系人。拥有默认数组后,您始终可以创建具有所需功能的另一个列表。在这种情况下,将使用四个条件处理相同的列表,例如最后4行所需的条件。此解决方案适用于任何平台。获得代码后,您就可以应用预构建算法。您可以使用http://bunkat.github.io/schedule/来优化逻辑。希望这可以帮助。如果没有,请粘贴您的代码。