我有一个有趣的时隙反演算法,我正在努力解决,希望我能在这里得到一些帮助。我有以下挑战:
我们正在使用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');
这个想法是用户向一个函数传递可用性记录列表并返回缺席。知道如何实现这个目标吗?
答案 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)