代码如下:
输出:31
基本思路:要求一个月的天数,先获得这个月的年份和月份,在月份上加1,然后将年份、月份和“-01”进行拼接,求出下个月第一天的日期;然后在该日期上 -1,得到本月最后一天的日期;最有通过day(),求得最后一天日期的天对应的数字,该数字即为本月的天数。
一下看这个代码似乎有点晕,我们来分解一下这个代码:
最里面的代码
64行为求改天在本月中的第几天;
65行结合70行为将CAST中的字符串转化为datetime类型;
66行通过字符串截取求得本月的所在的年份,如:“2017-”;
67行、68行求得本月的下个月月份,在将本月加一得到下个月时,如果是13,则表示当前为12月,下月应为1月;
69行,下个月第一天;
66-67-68-69一起讲年-月-日拼接起来,并通过CAST转化为datetime;
71进行减1操作,得到本月最后一天的日期,最后day函数求得本月天数;