满足条件计算月末的最后一天原创
金蝶云社区-弦
7人赞赏了该文章 1,319次浏览 未经作者许可,禁止转载编辑于2019年12月31日 15:37:05

场景:每月20号前,就返回当月的最后一天,如果是20号后面的就返回下月的最后一天。

用到的公式。

日期类型字段元素.Date.Day(获取天)

以下3个公式算完就是FSTARDate日期的最后一天

FENDDate = FSTARDate.AddDays(1-float((FSTARDate.ToString("dd")))) ;
FENDDate = FENDDate.AddMonths(+1);

FENDDate = FENDDate.AddDays(-1)


方法:

以应付单为例:

1、添加3个日期字段:日期原始(F_HHXD_Date2)、日期中间(F_HHXD_Date4)、日期计算(F_HHXD_Date3)

2、通过实体服务规则,通过输入【日期原始】来返回【日期计算】

具体的步骤:

1、添加3个日期的字段,(注意缺省值,选择当前日期)

2、通过实体服务服务规则。

      前提条件:日期计算不为空( F_HHXD_Date2 <> null)

      计算:日期计算=日期原始+一个月。(F_HHXD_Date3=F_HHXD_Date2.AddMonths(+1))

2.png

1.png

     3、当日期原始(F_HHXD_Date2)是20号以内的,返回日期原始(F_HHXD_Date2)当前月的最后一天

前提: F_HHXD_Date2  <> null AND F_HHXD_Date2.Date.Day-20< 0 --------日小于20(也就是1-19号)

3.png

满足条件的时候的分别计算(注意一下顺序)

①——F_HHXD_Date3 = F_HHXD_Date2.AddDays(1-float((F_HHXD_Date2.ToString("dd"))))
②——F_HHXD_Date3= F_HHXD_Date3.AddMonths(+1)
③——F_HHXD_Date3= F_HHXD_Date3.AddDays(-1)

4.png


4、当日期原始(F_HHXD_Date2)是20号以上的,返回日期原始(F_HHXD_Date2)当前月的最后一天

前提: F_HHXD_Date2 <> null AND F_HHXD_Date4.Date.Day-19> 0 --------日大于于19日


5.png

满足条件的时候的分别计算(注意一下顺序)

①——F_HHXD_Date3 = F_HHXD_Date4.AddDays(1-float((F_HHXD_Date4.ToString("dd"))))
②——F_HHXD_Date3= F_HHXD_Date3.AddMonths(+1)
③——F_HHXD_Date3= F_HHXD_Date3.AddDays(-1)

6.png

前端显示:

7.png

8.png

赞 7