计算sugarCRM中两个字段之间的天数

计算sugarCRM中两个字段之间的天数,sugarcrm,Sugarcrm,如何使用sugarCRM studio中的“公式生成器”计算同一模块的两个日期字段之间的天数,而不计算周末(周六和周日) 序言 据我所知,Sugar Logic没有计算日期跨度天数的功能。 但是,我们可以使用现有的糖函数进行计算,如下所示: add(1,subtract(daysUntil(addDays($date_end,365000)),daysUntil(addDays($date_start,365000)))) 这将返回从$date\u start到$date\u end的跨度,计

如何使用sugarCRM studio中的“公式生成器”计算同一模块的两个日期字段之间的天数,而不计算周末(周六和周日)

序言

据我所知,Sugar Logic没有计算日期跨度天数的功能。 但是,我们可以使用现有的糖函数进行计算,如下所示:

add(1,subtract(daysUntil(addDays($date_end,365000)),daysUntil(addDays($date_start,365000))))
这将返回从$date\u start到$date\u end的跨度,计算所有天数,包括开始日期和结束日期, 因此,2017-01-01到2017-01-01的跨度将返回1,而不是0

注:

  • 这不处理任何字段为空的特殊情况
  • 如果要直接显示此公式的结果,请将其包装在floor()中,以显示为不带
    的整数.000000
解决方案

由于Sugar Logic也不提供任何模函数和公式范围的变量, 您想要的结果公式(仅计算Mo Fr)与以下公式一样“紧凑”:

注:

  • 上面的公式不处理结束日期之后的开始日期,您可以使用
    if()
    isAfter()
  • 假期等都是不考虑的,所以这将只计算实际工作日

您好,欢迎来到stack overflow。有关如何提问和相应更新问题的更多详细信息,请参考链接。可能重复@Reisclef,我认为这是另一种方式,考虑到它更老(而且更具描述性/正确)@Jay,我不得不承认,我不确定哪一个最适合作为副本。我甚至可能想建议另一个!
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)))
        )
      )
    )
  )
))