根据年、月,获取某年某月的周数及每周对应的开始时间和结束时间js

根据年、月,获取某年某月的周数及每周对应的开始时间和结束时间。

代码如下:

/*-----获取某年某月每周的开始时间和结束时间-----*/

function getInfo(year, month) {

function formatDate(date) {

let myyear = Number(date.getFullYear());

let mymonth = Number(date.getMonth()+1);

let myweekday = Number( date.getDate());

if(mymonth < 10){

mymonth = "0" + mymonth;

}

if(myweekday < 10){

myweekday = "0" + myweekday;

}

return (myyear+"-"+mymonth + "-" + myweekday);

}

let nowMonth=month-1

let startMonth //本月的开始时间

let endMonth //本月的结束时间

//获得某月的天数

function getMonthDays(month){

let monthStartDate = new Date(year, nowMonth, 1);

let monthEndDate = new Date(year, month + 1, 1);

let days = (monthEndDate - monthStartDate)/(1000 * 60 * 60 * 24);

return days;

}

//获得本月的开始日期

function getMonthStartDate(){

let monthStartDate = new Date(year, nowMonth, 1);

return formatDate(monthStartDate);

}



//获得本月的结束日期

function getMonthEndDate(){

let monthEndDate = new Date(year, nowMonth, getMonthDays(nowMonth));

return formatDate(monthEndDate);

}

startMonth=getMonthStartDate()

endMonth=getMonthEndDate()

console.log("本月的开始时间:"+startMonth+"本月的结束时间: "+endMonth)

let d = new Date();//

// what day is first day

d.setFullYear(year, month-1, 1);

let w1 = d.getDay();//某月的第一天是星期几

if (w1 == 0){

w1 = 7;

}

console.log("某月的第一天是星期:" + w1);

let firtWeek_count = 7 - w1 + 1; //第一周有几天

console.log("第一周有几天:" + firtWeek_count);

// total day of month

d.setFullYear(year, month, 0);

let dd = d.getDate();//某月的总天数

console.log("某月的总天数:" + dd);

// let mydate=new Date(year,month-1,dd);

// let end1=mydate.getDay(); //某月的最后一天的星期

// console.log("某月的总天数:" + end1);

let d1

// first Monday

if (w1 != 1){//第一天不是星期一

d1 = 7 - w1 + 2;

}

else {

d1 = 1;

}

let week_count = Math.ceil((dd-d1+1)/7);

if(w1 == 1){

week_count= week_count;

}else{

week_count= week_count+1;

}



console.log(year + "年" + month + "月有" + week_count +"周");

for (let i = 0; i < week_count; i++) {

let monday = firtWeek_count + (i-1)*7+1;

// let monday =i*7-1;



let sunday = monday + 6;

let startTime = year+"/"+month+"/"+monday;

let endTime;



if(i==0){

startTime=startMonth;

endTime = year+"/"+month+"/"+firtWeek_count;

}

else if(i == week_count-1){

startTime=year+"/"+month+"/"+(firtWeek_count + (week_count - 2) * 7+1);

// startTime=year+"/"+month+"/"+(dd-end1+1);

endTime = endMonth;

}

else{

endTime = year+"/"+month+"/"+sunday;

}

console.log("第"+(i+1)+"周 从" + startTime + " 到 " + endTime + "");

}

}

getInfo(2020,3);

运行结果:

参考:js获取当前月有几周(附带一个小组件)_有蝉的博客-CSDN博客_js获取当月有几个完整周

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
获取一段时间内的周数每周的具体时间数据,可以使用JavaScript编程语言的Date对象和相应的方法来实现。 首先,我们需要定义两个日期变量,即开始日期和结束日期,可以使用日期字符串或者Date对象进行定义。然后,通过Date对象的getTime()方法,将日期转换为时间戳,方便计算。 接下来,我们使用getTime()方法得到的时间戳来计算开始日期和结束日期之间的时间差,然后将该时间差转换为周数,使用Math.floor()函数对结果进行向下取整,并加1,即为周数的总数。 在循环中,我们从开始日期开始,每次累加一周的时间戳,然后使用Date对象的getDay()方法获取每周的具体时间数据。getDay()返回的是一个表示星期几的数字,0表示星期日,1表示星期一,依此类推。 最后,我们可以将周数每周的具体时间数据输出到控制台或者其他位置,以满足具体需求。 以下是一个简单的示例代码: ```javascript var startDate = new Date("2021-01-01"); var endDate = new Date("2021-12-31"); var startTime = startDate.getTime(); var endTime = endDate.getTime(); var timeDiff = endTime - startTime; var totalWeeks = Math.floor(timeDiff / (7 * 24 * 60 * 60 * 1000)) + 1; for (var i = 0; i < totalWeeks; i++) { var weekStartTime = startTime + (i * 7 * 24 * 60 * 60 * 1000); var weekEndTime = weekStartTime + (6 * 24 * 60 * 60 * 1000); var startDateTime = new Date(weekStartTime); var endDateTime = new Date(weekEndTime); console.log("第" + (i + 1) + "周:"); console.log("开始时间:" + startDateTime.toLocaleString()); console.log("结束时间:" + endDateTime.toLocaleString()); } ``` 该代码可以输出从202111日至20211231日之间的周数每周的具体时间数据。注意,具体时间数据使用toLocaleString()方法来格式化输出,可以根据需要进行调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

susan花雨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值