我有一项任务,计算一个对象的有效期的结束日期。
我们说开始有效日期是: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引擎中的一个错误。
答案 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天。