时隙反转

时间:2017-03-20 16:03:19

标签: salesforce apex

我有一个有趣的时隙反演算法,我正在努力解决,希望我能在这里得到一些帮助。我有以下挑战:

我们正在使用Salesforce现场服务作为我们的平台。公司设定星期一至星期日的星期几的运营时间。每天都有开始时间和结束时间。例如 周一至8:00至22:00 星期二 - 8:00到20:00 等等

由于Salesforce的限制,用户只能说出他们缺席的时间,而不是他们何时可用。因此,举个例子,我可以说星期一在13-16之间我无法创建缺席记录:

ResourceAbsence absence = new ResourceAbsence(StartTime=13, EndTime=16, Day = 'Monday');

我们公司希望用户能够说出它们何时可用,而不是不可用。我们需要一个反转的函数,以便用户可以说它们可用而不是不可用:

ResourceAvailability availability1 = new Resource(StartTime=8, EndTime=13, Day = 'Monday');
ResourceAvailability availability2 = new Resource(StartTime=16, EndTime=22, Day = 'Monday');

这个想法是用户向一个函数传递可用性记录列表并返回缺席。知道如何实现这个目标吗?

1 个答案:

答案 0 :(得分:0)

我假设您在一天24小时内没有允许换时钟。算法会是这样的:

For each day of the week
    If a record doesn't exist, return absence(Starttime=0, enddtime=24, day = currentday
    else
        return absence(starttime=0, endtime=resource.starttime) and
            absence(starttime=resource.endtime, endtime=24)