利用默认值或工作流自动计算当月天数
表格设想,可以预先设置好数值或者文本字段 用来记录系统默认计算出来的结果
由于工作流执行会消耗算力,我们先用默认值设置作为参考
1.穷举法利用MONTH函数获取当月月份,利用OR逐个判断。
在这里面主要是用if ,嵌套判断今天是那个月,今年是闰年还是非闰年
什么!上面的表达式太长,怕写错
可以直接复制下面的内容,到表达式设置的位置上
直接复制下面
IF(OR(MONTH(TODAY())=1,MONTH(TODAY())=3,MONTH(TODAY())=5,MONTH(TODAY())=7,MONTH(TODAY())=8,MONTH(TODAY())=10,MONTH(TODAY())=12),31,IF(OR(MONTH(TODAY())=4,MONTH(TODAY())=6,MONTH(TODAY())=8,MONTH(TODAY())=9,MONTH(TODAY())=11),30,IF(YEAR(TODAY())/4=0,29,28)))
2.穷举法-(IN函数)与穷举法的思路相同,改用IN函数优化写法
在这里面我们主要用in,函数判断当前的月份 是否在我们预先设置的一个集合当中
在用if 判断对应的这个集合,应该是有多少天
还是可以直接复制下面的内容 粘贴到伙伴云的表达式子里面
IF(IN(MONTH(TODAY()),[1,3,5,7,8,10,12]),31,IF(IN(MONTH(TODAY()),[4,6,8,9,11]),30,IF(YEAR(TODAY()) / 4 = 0,29,28)))
3.计算-(DATEDIF函数)利用DATEFORMAT函数拼出本月第一天与次月第一天,再利用DATEDIF函数将两者作差,得出当月天数
伙伴云当中日期时间相减有一个专门的函数dataif(日期1,日期2,日期单位)=日期2-日期1
也是可以直接复制使用
DATEDIF(DATEFORMAT(TODAY(),'YYYY-MM-01'),DATEADD(DATEFORMAT(TODAY(),'YYYY-MM-01'),1,'M'), 'D')使用工作流的设置
1.打开工作流入口
2.
直接复制下面
IF(OR(MONTH(TODAY())=1,MONTH(TODAY())=3,MONTH(TODAY())=5,MONTH(TODAY())=7,MONTH(TODAY())=8,MONTH(TODAY())=10,MONTH(TODAY())=12),31,IF(OR(MONTH(TODAY())=4,MONTH(TODAY())=6,MONTH(TODAY())=8,MONTH(TODAY())=9,MONTH(TODAY())=11),30,IF(YEAR(TODAY())/4=0,29,28)))
|