2.根据时间求账期,下一个月账期

1587 上次更新时间:2021-05-15 21:26:33

Document

需求
在进销存等场景中,需要计算所选时间的账期,或者为下一月为账期。账期的遇到两种场景为

1.以自然月为账期的

获取当月账期,这个比较简单我们直接使用 Date 函数即可实现。
DATE(日期字段,‘yyyy-MM’)

获取下月账期。思路为

  1. 先设计一个日期字段,记录下月第一天的数据。
    2.获取当前时间的月份的最后一天。然后加一天。即可获取获取下月的账期。
    公式:** DATE(DATEDELTA(MONTHDAY(当前时间控件,2),1))**


3.根据获取下个账期的第一天,然后使用公式转化为下月账期
![image.png](https://cdn.nlark.com/yuque/
最后演示效果

2.以某一个月指定时间为账期的,比如 25 号为当月账期,26 号至下月的 25 号为下月账期。

思路:如果我们用笨办法硬推,判断条件就会特别多。所以我们合理规则进行取巧。

1.先判断当前的自然日是否为小于 26,如果小于 26 那肯定为当前账期所在月,我们直接取账期即可。
推算逻辑为, 时间如果为 11 月5 号,那么 5 小于 26,那么我们直接取当前时间即可。 最终账期为 2021-11

2.如果当前的自然日已经超过 25 号,那我们给这个日期直接加上一个小于 28 且大于 3 的数即可。为什么呢?我要考虑 2 月这个特殊月份。

如果时间为 20 年12 月 28 号,28 大于 25,则需要往后推10 天(可以根据条件随意更换。)那么就来到了 21年 1 月 7 号,这时直接格式化时间为 21-01

公式:** DATE(IF(DAY(日期字段)<26,DATEDELTA(日期字段,10),日期字段),‘yyyy-MM’)**