RSA Archer计算了日期

时间:2017-12-14 15:28:24

标签: archer

我是阿切尔的新手。

我正在尝试根据其他2个字段创建计算日期字段。

  • 字段A(日期字段)
  • 字段B(值列表):每年(365天);半(182天);每月(30天)
  • 字段C(日期字段)

我想看到的是,如果字段A的值为6/12/2017而字段B的值为每年(365天),则字段C应显示值6/12/2018

谢谢

2 个答案:

答案 0 :(得分:1)

这很容易:)

请在FIELD C中写下以下计算:(使用DATEADD内置函数)

IF([FIELD B] =VALUEOF(FIELD B], "Annually"), DATEADD(DAY, 365,[FIELD A]),

IF([FIELD B] =VALUEOF(FIELD B], "Semi"), DATEADD(DAY, 182,[FIELD A]),

DATEADD(DAY, 30,[FIELD A])))

希望这会有所帮助!!

答案 1 :(得分:0)

另一种方法是在非布局字段中捕获“日月”和“年”。示例如下所示。这可能需要对如何将其重新组合到“计算的日期”字段中进行一些调整。这种方法的好处是可以处理leap年,并且我们不必担心每个月有多少天。简单地在日期中添加很多天,将导致很多不必要的结果,处理这些结果将导致某些真正复杂的解决方案。

注意:计算格式取自RSA关于调试计算的文档。

示例

帮手日

DAY([Field A])

助手月

IF(
    [Field B] = VALUEOF(FIELD B], "Semi")
,   MONTH([Field A])+6
,   IF(
       [Field B] = VALUEOF(FIELD B], "Monthly")
    ,  MONTH([Field A])+1
    ,  MONTH([Field A])
    )
)

助手年

IF(
   [Field B] = VALUEOF(FIELD B], "Annually")
,  YEAR([Field A])+1
,  IF(
      [Helper Month] > 12
   ,  YEAR([Field A] + ([Helper Month] - 12))
   ,  YEAR([Field A])
   )
)

字段C

IF(
   [Helper Month] > 12
   ,  DATEFORMAT(CONCATENATE([Helper Day],"/",[Helper Month] -12,"/",[Helper Year]))
   ,  DATEFORMAT(CONCATENATE([Helper Day],"/",[Helper Month] -12,"/",[Helper Year]))
)