js获取某月包含几周,每周的周一到周日的日期

//根据年月获取该月有几周并且每周的日期
		function getWeeksAndDate(year, month) {
			var d = new Date();
			// 该月第一天
			d.setFullYear(year, month - 1, 1);
			var w1 = d.getDay();
			if (w1 == 0) w1 = 7;
			// 该月天数
			d.setFullYear(year, month, 0);
			var dd = d.getDate();
			// 第一个周一
			let d1;
			if (w1 != 1) d1 = 7 - w1 + 2;
			else d1 = 1;
			let week_count = Math.ceil((dd - d1 + 1) / 7); //每月有几周
			for(var weekday=1;weekday<=week_count;weekday++){
				var monday = d1 + (weekday - 1) * 7;
				var sunday = monday + 6;
				var from = year + "-" + month + "-" + monday;
				var to;
				if (sunday <= dd) {
					to = year + "-" + month + "-" + sunday;
				} else {
					d.setFullYear(year, month - 1, sunday);
					let days = d.getDate();
					to = d.getFullYear() + "-" + (d.getMonth() + 1) + "-" + days;
				}
				console.log(weekday + " 从" + from + " 到 " + to + "");
			}
		}

//获取每月有几周(注:从第一个周一开始算该月第一周)
		function getWeeks(year, month) {
			var d = new Date();
			// 该月第一天
			d.setFullYear(year, month - 1, 1);
			var w1 = d.getDay();
			if (w1 == 0) w1 = 7;
			// 该月天数
			d.setFullYear(year, month, 0);
			var dd = d.getDate();
			// 第一个周一
			let d1;
			if (w1 != 1) d1 = 7 - w1 + 2;
			else d1 = 1;
			let week_count = Math.ceil((dd - d1 + 1) / 7);
			return week_count;
		}
		//根据年月周获取该周从周一到周日的日期
		function getWeekTime(year, month, weekday) {
			var d = new Date();
			// 该月第一天
			d.setFullYear(year, month - 1, 1);
			var w1 = d.getDay();
			if (w1 == 0) w1 = 7;
			// 该月天数
			d.setFullYear(year, month, 0);
			var dd = d.getDate();
			// 第一个周一
			let d1;
			if (w1 != 1) d1 = 7 - w1 + 2;
			else d1 = 1;
			var monday = d1 + (weekday - 1) * 7;
			var sunday = monday + 6;
			var from = year + "-" + month + "-" + monday;
			var to;
			if (sunday <= dd) {
				to = year + "-" + month + "-" + sunday;
			} else {
				d.setFullYear(year, month - 1, sunday);
				let days = d.getDate();
				to = d.getFullYear() + "-" + (d.getMonth() + 1) + "-" + days;
			}
			console.log(weekday + " 从" + from + " 到 " + to + "");
		}
		

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值