意外的@Adjust公式行为

时间:2014-09-18 09:09:19

标签: lotus-notes lotus lotus-formula

我有一项任务,计算一个对象的有效期的结束日期。

我们说开始有效日期是:18 Sept. 2014

有效期(例如)是:3 months

结束日期(对象仍然有效的最后日期,+ 3个月和-1天):17 Dec 2014

看起来是正确的,为了计算结束日期,我使用了以下@ -formula:

@Adjust(start; 0; 3; -1; 0; 0; 0);

我在此处添加3个月并从开始日期开始减少1天。

但是当我将开始日期设为01 Oct. 2014时,我的结束日期为30 Dec 2014,而不是31 Dec 2014

看起来很奇怪,看起来像是Lotus Notes引擎中的一个错误。

1 个答案:

答案 0 :(得分:1)

解决方案有点意外和简单。

@Adjust功能从右到左评估其参数

换句话说,它会减少1 day,然后将3 months添加到开始日期。

如果开始日期为01 Oct 2014,那么@Adjust公式将30 Sept. 2014添加-1 day,然后添加3 months并获取30 Dec 2014

要解决这个问题,我需要更改初始公式:

temp_ := @Adjust(start; 0; 3; 0; 0; 0; 0);
@Adjust(temp_; 0; 0; -1; 0; 0; 0);

temp_变量将开始日期增加到3个月,之后我们从计算结果中减少1天。