用js计算本周日期

JavaScript029

用js计算本周日期,第1张

<html>

<head>

<script type="text/javascript">

function showdate()

{

var now=new Date()

var start=new Date()

var end=new Date()

var n=now.getDay()

start.setDate(now.getDate()-n+1)

end.setDate(now.getDate()-n+7)

start = start.getFullYear() + "-" + (start.getMonth()+1) + "-" + start.getDate()

end = end.getFullYear() + "-" + (end.getMonth()+1) + "-" + end.getDate()

alert("本周开始于:"+start+",结束于"+end)

}

</script>

</head>

<body>

<input type="button" onclick="showdate()" value="本周按钮" name="本周按钮">

</body>

</html>

// 定义变量d为当年的1月1日0点

var d = new Date()

d.setFullYear(d.getFullYear(),0,1)

// 定义day为当年1月1日的星期数(0为星期天,1为星期1,6为星期6)

var day = d.getDay()

// 定义fistweekleft为第一周剩余的天数,此处认为星期一是一周的第一天,如果将星期天定义为一周的第一天,请写成fistweekleft = (6-day)%6

var fistweekleft = (7-day)%7

// 将d赋值为第二周的第一天,1+fistweekleft号为第一周最后天,1+fistweekleft+1为第二周第一天

d.setFullYear(d.getFullYear(),0,1+fistweekleft+1)

// 定义变量d1为当天

var d1 = new Date()

// 当前时间与当年第二周第一天的毫秒数之差除以一周的毫秒数并取整即为当前日期距本的第二周已过的周数

// 结果加上2即为当天为本年的第几周(如果在一周的第一天的0点运行此程序,结果会比实际值大1,此种情况请自行处理)

alert(2+parseInt((d1.getTime()-d.getTime())/1000/60/60/24/7))

【代码】

// 获取当前星期的星期一的日期,返回的是一个Date对象。

function getMonDate()

{

var d=new Date(),

day=d.getDay(),

date=d.getDate()

if(day==1)

return d

if(day==0)

d.setDate(date-6)

else

d.setDate(date-day+1)

return d

}

// 0-6转换成中文名称

function getDayName(day)

{

var day=parseInt(day)

if(isNaN(day) || day<0 || day>6)

return false

var weekday=["星期天","星期一","星期二","星期三","星期四","星期五","星期六"]

return weekday[day]

}

// d是当前星期一的日期对象

var d=getMonDate()

var arr=[]

for(var i=0i<7i++)

{

arr.push(d.getFullYear()+'年'+(d.getMonth()+1)+'月'+d.getDate()+'日 ('+getDayName(d.getDay())+')')

d.setDate(d.getDate()+1)

}

【显示】

2013年3月18日 (星期一)

2013年3月19日 (星期二)

2013年3月20日 (星期三)

2013年3月21日 (星期四)

2013年3月22日 (星期五)

2013年3月23日 (星期六)

2013年3月24日 (星期天)