「日期计算」 节假日、周末及工作日、周末调休
创作者俱乐部成员
不知不觉又到了清明节,小时候学过一篇课文,但是忘了这段文字是哪一句诗或文了,全文是什么来着?
没关系,问问WPS AI吧。
《清明时节雨纷纷》
清明时节雨纷纷,扫墓祭祖心思沉。
千家万户插杨柳,焚香祭酒寄深情。
游子归来无归处,泪湿衣襟心欲碎。
遥望故乡云烟起,何时归去共团圆?
纸钱飞舞化蝶飞,思念成灰随风去。
缅怀先人恩德重,子孙后代永铭记。
春光明媚草木香,踏青游玩心欢畅。
放飞风筝寄哀思,愿君在天得安息。
岁月匆匆人易老,珍惜当下莫蹉跎。
生命无常须珍惜,感恩生活心向善。
清明节时心自省,传承文化续新篇。
愿君常记先人恩,家国情怀永流传。
《清明节感怀》
清明时节雨纷纷,路上行人欲断魂。借问酒家何处有?牧童遥指杏花村。
昔日周末,悠游自得,琴书相伴,赏花品茗。然而,时光荏苒,周末渐逝,工作之日接踵而至,令人怅然若失。清明已至,追思往昔,倍觉时光之无情。
望眼欲穿,期盼即将到来的节假日与周末。愿得闲暇之余,重拾旧梦,吟咏风月,品味人生。然,闻听将周末调整为工作日之议,心中愤然不已。此举实乃剥夺民众休闲之时,剥夺生活之乐趣,实不可取。
愿生活之节奏,得以和谐;愿时光之流转,更显温馨。愿未来之节假日与周末,能给人以宁静与欢乐,让人们在忙碌之余,亦能享受生活的美好。
这说明WPS AI现在已经相当的强大了,为它WPS AI设定一个身份,WPS AI已经能自拟题目、自拟诗歌,还比较通顺,这像极了WPS表格的LABMDA函数和LET函数,为WPS AI赋值后,WPS AI就能根据赋值自行演变,当然以上都与今天的内容没什么关系。
📌 | 言归正传,还是说节假日、周末、工作日怎么计算。 |
不知道大家有没有计算过, 2024年的节假日有多少天、周末有多少天,周末调休为工作日的有多少天,以及2024年的工作日包含调休的周末来说一共有多少天?
可能搜索引擎上能搜到很多这类天数的文章,但不是自己手工计算出来的,体会不到其中的乐趣。
👋 | 这次就用函数公式来计算一下。 |
👋 | 首先自定义单元格格式 [$-x-sysdate]dddd, mmmm dd, yyyy 这段格式能让单元格里的日期以 2024年1月6日 星期六 形式展示出年月日和星期几,方便后面核查公式计算结果是否正确。 |
- 2024年的周末
首先计算下2024年一共有多少个周末(星期六和星期天),以及它们分别是几月几日。
一年52周,那么就有52×2=104个星期六和星期天
=WORKDAY.INTL(DATE(2024,1,1)-1,SEQUENCE(52,2),"1111100")
输入公式回车后很容易列出数组,左侧都是星期六,右侧都是星期天。
公式解释:
WORKDAY.INTL函数原本是用来计算工作日的,通过修改第三参数配置,也可以用来计算周末或其他日期,可以灵活使用。
=WORKDAY.INTL(DATE(2024,1,1)-1,SEQUENCE(52,2),"1111100")中的
DATE(2024,1,1)代表了2024年1月1日算作开始日期
SEQUENCE(52,2)是搭建一个52行2列的数组框架,也就是WORKDAY.INTL函数的第二个参数(天数)
"1111100"这段挺迷的字符串配置情况是这样,每一个数组代表函数公式中一周的一天,其中1代表非工作日(休息日),0代表工作日(工作日)。
那么"1111100"配置信息如下:
周二:1(非工作日)
周三:1(非工作日)
周四:1(非工作日)
周五:1(非工作日)
周六:0(工作日)
周日:0(工作日)
计算"00"的结果,对于函数来说就是工作日(周六和周日)。通过其他配置可以计算其他结果,譬如在构建的数组框架内只列出起止时间内的星期三数量"1101111"。
- 2024年放假安排和周末调休上班的日期
这一段日期可以通过各大门户网站查询获得,搜索引擎中都能找到,这一段数据在后面的计算中会有所引用。
- 2024年全年的日期
这个日期可以不列,也可以列出来,这里只是作为展示,不参与后面的计算。
公式也很简单=SEQUENCE(53,7,DATE(2024,1,1)),SEQUENCE函数构建一个53行7列的数组,DATE(2024,1,1)定义了序列的其实日期,即2024年1月1日,所以这个公式会从2024年1月1日开始,生成一个包含53周(每周7天)的日期序列。2024年12月31日后面的日期是送的,闰年送5个,其他年份送6个
- 2024年全年的工作日
这里是重点,由于上文中的2024年放假安排设置在D2:D29,2024年周末调休上班设置在E2:29,所以公式可以写为
=FILTER(SEQUENCE(366,1,DATE(2024,1,1),1),(WEEKDAY(SEQUENCE(366,1,DATE(2024,1,1),1),2)<6)*(ISNA(MATCH(SEQUENCE(366,1,DATE(2024,1,1),1),D2:D29,0)))+(NOT(ISNA(MATCH(SEQUENCE(366,1,DATE(2024,1,1),1),E2:E9,0)))))
这个公式中使用了FILTER函数、SEQUENCE函数、WEEKDAY函数、MATCH和ISNA函数,这些函数的作用如下:
FILTER函数用来筛选出工作日
SEQUENCE函数来构建2024年全年的日期数据
WEEKDAY函数用于检查日期是否为周一至周五(假设周六和周日为休息日)
MATCH和ISNA函数用于检查日期是否为节假日或调休日
由于=FILTER(......)生成的数据为一列,不方便查看,故用INDEX(数组,ROW,COLUMN)函数来将一列数据重新组织构建成51行5列的格式方便查看。
将公式=INDEX(FILTER(SEQUENCE(366,1,DATE(2024,1,1),1),(WEEKDAY(SEQUENCE(366,1,DATE(2024,1,1),1),2)<6)*(ISNA(MATCH(SEQUENCE(366,1,DATE(2024,1,1),1),$D$2:$D$29,0)))+(NOT(ISNA(MATCH(SEQUENCE(366,1,DATE(2024,1,1),1),$E$2:$E$9,0))))), (ROW(A1)-1)*5 + COLUMN(A1))
复制填充到51行5列的单元格中即可(后面的错误值删掉即可)。
其中INDEX(……ROW(A1)-1*5,COLUMN(A1))只是用于构建51行5列的数据框架,不参与日期的计算。
📌 | 以上就是2024年所有的工作日了,共计251天,累计算下来工作时间还不到8个月。 |
- 计算截至今天还剩下多少个工作日
这里使用的函数还是套用上面的计算2024年一共有多少个工作日的公式,只是将其中的=SEQUENCE(366,1,DATE(2024,1,1),1)全年日期换为从今天开始到2024年12月31日的日期列表。
这里面涉及到另外一个问题今天是2024年的第几天?
=TODAY()-DATE(YEAR(TODAY()),1,0)-1。
TODAY() 函数返回当前的日期。
YEAR(TODAY()) 从 TODAY() 返回的日期中提取年份。
DATE(YEAR(TODAY()), 1, 0) 则创建一个日期,这个日期是当前年份的1月0日,实际上等同于上一年的12月31日。
当从 TODAY() 函数返回的日期中减去 DATE(YEAR(TODAY()), 1, 0),得到的是从上一年的12月31日到今天的天数,即今年的第几天。
例如,今天是2024年4月4日,公式会计算出从2023年12月31日到2024年4月4日的天数,这就是2024年的第94天。
那么将=TODAY()-DATE(YEAR(TODAY()),1,0)-1代入上面的公式里替换=SEQUENCE(366,1,DATE(2024,1,1),1)即可得到截至今天剩余的工作日有哪些,最后对这个数组使用COUNTA计算非空单元格得到还剩272天。
这列数据很长有272行,也可以参照上例使用INDEX(数组,ROW,COLUMN)函数将这列数据构建到一个方便查看的数组框架中。
如果需要独立显示,可参考完整公式如下:
=COUNTA(FILTER(SEQUENCE(366-(TODAY()-DATE(YEAR(TODAY()),1,0))+1,1,TODAY()),(WEEKDAY(SEQUENCE(366-(TODAY()-DATE(YEAR(TODAY()),1,0))+1,1,TODAY()),2)<6)*(ISNA(MATCH(SEQUENCE(366-(TODAY()-DATE(YEAR(TODAY()),1,0))+1,1,TODAY()),D2:D29,0)))+(NOT(ISNA(MATCH(SEQUENCE(366-(TODAY()-DATE(YEAR(TODAY()),1,0))+1,1,TODAY()),E2:E9,0))))))
- 计算截至今天还剩下多少个周末、多少个法定节假日
由于前面计算了全年的周末A1:B52,并通过搜索网页得到了全年的节假日D2:D29,以及调休上班的周末E2:29,那么只需要结合COUNTIF函数和TODAY函数即可快速获得剩余的周末有多少,
剩余周六周日的数量(不含周末调休的工作日)
=COUNTIF(A1:B52,">"&TODAY())-COUNTIF(E2:E9,">"&TODAY())
剩余法定节假日
=COUNTIF(D2:D29,">"&TODAY())
👌 | 以上所有函数公式及示例均可以在金山文档中找到 https://kdocs.cn/l/co1iVhP1LWRc 由于金山文档对动态数组的支持不是太好,示例高清版链接如下 https://pan.baidu.com/s/1pDqk76tYXYjC5TjbDijwWA?pwd=6954 提取码: 6954 |
对于剩下这节假日、周末、工作日的计算到此告一段落
2024年剩下的节假日和周末,大家准备去哪玩儿?
2024年剩下的工作日,大家准备怎么熬?
创作者俱乐部成员
创作者俱乐部成员