如何使用" Formula Builder"计算同一模块的两个日期字段之间的天数,而不计算周末(周六和周日)在sugarCRM工作室。
答案 0 :(得分:0)
初步评论
据我所知,Sugar Logic没有计算日期跨度的功能。 但是我们可以使用现有的Sugar函数来计算它:
add(1,subtract(daysUntil(addDays($date_end,365000)),daysUntil(addDays($date_start,365000))))
这将返回$ date_start和$ date_end的范围,计算所有天数,包括开始日期和结束日期, 所以跨度2017-01-01到2017-01-01将返回1而不是0。
注意:
.000000
的整数解决方案
由于Sugar Logic也不似乎提供任何模数函数和公式范围变量, 你想要的结果公式(只计算Mo-Fr)就像“紧凑”一样:
floor(add(0.5,
add(
multiply(floor(divide(add(1,subtract(daysUntil(addDays($date_end,365000)),daysUntil(addDays($date_start,365000)))),7)),5)
,
add(
min(
max(0,subtract(6,ifElse(equal(dayofweek($date_start),0),7,dayofweek($date_start))))
,
subtract(
add(1,subtract(daysUntil(addDays($date_end,365000)),daysUntil(addDays($date_start,365000))))
,
multiply(floor(divide(add(1,subtract(daysUntil(addDays($date_end,365000)),daysUntil(addDays($date_start,365000)))),7)),7)
)
)
,
max(
0,
subtract(
subtract(
add(1,subtract(daysUntil(addDays($date_end,365000)),daysUntil(addDays($date_start,365000))))
,
multiply(floor(divide(add(1,subtract(daysUntil(addDays($date_end,365000)),daysUntil(addDays($date_start,365000)))),7)),7)
)
,
subtract(8,ifElse(equal(dayofweek($date_start),0),7,dayofweek($date_start)))
)
)
)
)
))
注意:
if()
和isAfter()