场景:每月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))
3、当日期原始(F_HHXD_Date2)是20号以内的,返回日期原始(F_HHXD_Date2)当前月的最后一天
前提: F_HHXD_Date2 <> null AND F_HHXD_Date2.Date.Day-20< 0 --------日小于20(也就是1-19号)
满足条件的时候的分别计算(注意一下顺序)
①——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、当日期原始(F_HHXD_Date2)是20号以上的,返回日期原始(F_HHXD_Date2)当前月的最后一天
前提: F_HHXD_Date2 <> null AND F_HHXD_Date4.Date.Day-19> 0 --------日大于于19日
满足条件的时候的分别计算(注意一下顺序)
①——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)
前端显示: