javascript 判断是否为工作日

原理:

      由于调休日不稳定(国家规定), 不能直接自动判断某天是否为工作日。 需要手动记录大的节假日和调休日。

1.手动找出(1)节假日 (2)调休日

2.首先判断是否为调休日, 调休日一定是工作日。

3.然后判断是否为节假日, 节假日一定休息。

4.判断是否为周六周天, 排除调休日的周六周天一定放假。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>


<script>

	/**
     * 周六周天 自己计算
     * 大放假或者调休
     * 2月4日至10
     * 4月5日至7 4月29日至5月1日
	 * @type {Array}
     *
     * 主要是调休不好弄, 不确定调休的时间
	 */
	bigWeekDay = ['20180101', '20180215', '20180216', '20180217', '20180218', '20180219', '20180220', '20180221',
                  '20180405', '20180406', '20180407', '20180429', '20180430', '20180501', '20180618', '20180924',
                  '20181001', '20181002', '20181003', '20181004', '20181005', '20181006', '20181007', '20181231',

                  '20190101', '20190204', '20190205', '20190206', '20190207', '20190208', '20190209', '20190210',
		          '20190405', '20190406', '20190407', '20190429', '20190430', '20190501', '20190617', '20190913',
		          '20191001', '20191002', '20191003', '20191004', '20191005', '20191006', '20191007',
	];

	/**
     * 2月11日(星期日)、2月24  4月8日(星期日)上班 4月28日(星期六)上  9月29日(星期六)、9月30
	 * @type {[string]}
	 */
	tiaoxiu    = ['20180211', '20180224', '20180408', '20180428', '20180929', '20180930', '20181229',

		          '20190202', '20190203', '20190427', '20190428',

    ];


	/**
     *
	 * @param timeStamp  输入一个时间对象, 判断该天是否为工作日
	 * @returns {boolean}  false 休息   true 工作
	 */
    function judgeNextWeekCanGet(timeStamp='') {
    	console.log(timeStamp);
        if ( timeStamp == 'undefine' || timeStamp == '') {
        	timeStamp = new Date();
        }

        var isWeek = timeStamp.getDay(); //0 周日  6周六

	    var y = timeStamp.getFullYear();
	    var m = timeStamp.getMonth()+1;
	    m = m < 10 ? '0' + m : '' + m;
	    var d = timeStamp.getDate() <10 ? '0'+timeStamp.getDate():''+timeStamp.getDate();

	    var ymd = y+m+d;

	    //判断是否为调休日 必定是工作日
	    if (tiaoxiu.indexOf(ymd) > -1) {
		    return true;
	    }
        //判断是否为假期 必定休息
        if (bigWeekDay.indexOf(ymd) > -1) {
        	return false;
        }
        //判断是否为周六周天
        if (isWeek == 0 || isWeek == 6) {
	    	return false
        }
        return true;
    }

	console.log(judgeNextWeekCanGet(new Date('2018-01-01')));


</script>
</body>
</html>





猜你喜欢

转载自blog.csdn.net/just_for_your_smile/article/details/79137513