如何用js计算工作日(去掉周六周日)

JavaScript06

如何用js计算工作日(去掉周六周日),第1张

近期做项目时 客户提出一个新需求,计划的工期要去掉双休日节假日,因为节假日的特殊性(由国家规定,非固定的不好计算,无法预测)不做考虑。 下面我们探讨下如何将两个时间段之间的周末去掉 首先一种比较笨的方法是 一天一天去判断是否是周六或周天,该方法简单粗暴 主要用 getDay() 去判断获得的星期数是否等于 0 或 6 是的话则在周末的天数累加 最后去开始与结束日期的差值 扣除 周末总和 就等于工作日啦(PS: 最后日期得加1),以下为实现的方法 以上的方法简单粗暴,但是有个大缺点就是 如果时间跨度比较大,这边计算的工作量就比较大了相差一年就得循环365次了。所以改进了下方法,我们都知道一周7天,其中两天为周末5天为工作日,那么 一个时间段就可以看成是0-6的循环即2017-08-01为周二 2017-08-12为周六那么就可以看成2、3、4、5、6、0、1、2、3、4、5、6这样就跟我们以前做数学题一个道理了先算出这个至少有几组完整的,然后在算剩下的有几天 实现如下: 以上就是如何计算工作日的两种方法。

喜欢的人自然喜欢,不喜欢的人主要是对css和事件讨厌。

js这种不严格的语言也可以用严格的语法,相对比较轻松上手,写其他语言的人也可以轻松入门。

但是js在深层次当中,会涉及css,html和事件、原型链等,所以有些人遇到这些的时候会不喜欢。