巧用日期时间函数

 

在做一张考勤表的时候会涉及到很多的日期以及星期几,每个月的天数不一样,每个日期又需要一一的对应星期几。

要判断输入的这个日期所在月有几天,如果我们自己来写表达式计算,会很复杂,首先需要判断年份是闰年还是平年,然后再判断月份。
常规的表达式:

B3=case(month(@arg1),1,"31",2,"29",3,"31",4,"30",5,"31",6,"30",7,"31",8,"31",9,"30",10,"31",11,"30",12,"31")。

B4=if(year(@arg1)%4!=0&&year(@arg1)==2,to(1,int(B3)-1),to(1,int(B3)))

润乾提供了一个日期时间函数 days()。就能取到当月的天数。
用润乾提供的函数直接写上 =to(1,days(@arg1)) 就能准确简单的实现上面两行代码的作用。
函数说明:

函数说明:
        获得指定日期所在年,季度或者月份的天数
语法:
        days(dateExp)
参数说明:
        dateExp             日期或标准日期格式的字符串
返回值:
        整数 
选项:
        @q               获得指定日期所在季度的天数
        @y               获得指定日期所在年的天数
                         缺省为获得指定日期所在月的天数
示例:
        例1:days(datetime("19800227","yyyyMMdd"))             返回:29 
        例2:days(datetime("2006-01-15 10:20:30"))             返回:31 
        例3:days@y(datetime("19800227","yyyyMMdd"))           返回:366 
        例4:days@q(datetime("2006-01-15 10:20:30"))           返回:90

同样的 要获取选择日期的星期名称 可以试用如下函数:

dayname()

函数说明:

    函数说明:
        从日期型数据中获得该日的星期名称        
    语法:
        dayname(dateExp)        
    参数说明:
        dateExp        日期或标准日期格式的字符串,如:yyyy-MM-dd HH🇲🇲ss,yyyy-MM-dd,HH🇲🇲ss        
    返回值:
        字符型        
    示例:
        例1:dayname(datetime("19800227","yyyyMMdd"))    返回:星期三        
        例2:dayname(datetime(12345))                    返回:星期四        
        例3:dayname(datetime("2006-01-15 10:20:30"))    返回:星期日        
        例4:dayname("12:14:34")                         返回:星期四        
        例5:dayname("1972-11-08")                       返回:星期三        
        例6:dayname("1972-11-08 10:20:30")              返回:星期三