需求概述:根据系统默认时间当年1月~当年12月为一年(或指定财年)进行时间百分比进度展示。
一、默认正常时间进度
实现效果,例如现在系统是2023年2月1日,截止当前年时间已经过去了全年的8.49%.

1.解决思路:
首先我们利用Now()函数获取当前我们所在时区的日期。然后我们再利用YEAR,MOD函数判断当前年一共有多少天(判断闰年,平年),利用DATEDIFF判断年初到当前日期有多少天,最后我们再利用DIVIDE计算出进度百分比。后续我们可以再解决显示效果,自定义加入文本描述。
2.实现过程:
Current_Time_schedule =
var _now=NOW()
var switch_weekyear_or_leapyear=IF(MOD(RIGHT(YEAR(_now)),4)=0,366,365)
var _num=DATEDIFF(DATE(YEAR(_now),1,1),_now,DAY)
return
DIVIDE( _num,switch_weekyear_or_leapyear,0)
3.函数解释
DETEDIFF:返回两个日期之间的间隔边界的计数
DATEDIFF(<Date1>, <Date2>, <Interval>)

二、财年时间进度
实现效果,例如财年是当年7月~次年6月为一年,现在系统是2023年2月1日,截止当前时间已经过去了全年的58.9%.

1.解决思路
首先我们利用Now()函数获取当前我们所在时区的日期,然后我们再利用IF对年月进行判断,获取财年的开始时间点。后续的逻辑就和默认正常时间进度是相同逻辑了。
2.实现过程
var _now=NOW()
var _start=DATE(IF(MONTH(_now)>=7,YEAR(_now),YEAR( _now)-1),7,1)
var _num=DATEDIFF( _start,_now,DAY)
var switch_weekyear_or_leapyear=IF(MOD(RIGHT(YEAR(_now)),4)=0,366,365)
return
DIVIDE( _num,switch_weekyear_or_leapyear,0)