您的位置:首页 > Web前端 > HTML

从下拉框中选择年份和该年的周数,计算出该周的开始日期和结束日期

2011-09-15 09:22 405 查看
 

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">   <html xmlns="http://www.w3.org/1999/xhtml">  

<head>    

<title>js.Date.convertWeekNumberToFirstDate.html </title>    

<meta name="generator" content="editplus" />    

<meta name="author" content="yixianggao@126.com" />    

<meta name="keywords" content="" />    

<meta name="description" content="" />  

</head>     

<body>    

<select id="sltYear"> </select>    

<select id="sltWeek"> </select>    

<span id="spnDate"></span>—<span id="lpnDate"></span>

<script type="text/javascript">    

<!-- 

$ = document.getElementById; 

var oYear = $("sltYear");  //从循环中获取年份

var oWeek = $("sltWeek");  //从循环中获取周数

var oDate = $("spnDate"); //周数对应的周一的日期

var lDate = $("lpnDate"); //周数对应的周五的日期

/*

*先获取当前年份,然后当年分小于2020年时,循环获取

*从2011年到2020年的一个数组

*/

for (var i=(new Date()).getFullYear(); 2000<= i <=2020; i++){   

oYear.add(new Option(i+"年", i)); 



/*

*循环获取从第一周到第52周的一个数组

*/

for (var i=1; i <=52; i++)  {   

oW
4000
eek.add(new Option(i+"周", i)); 



/*  

* sYear: string, 年份;  

* sWeek: string, 周数;  

* startFromFirstMonday: boolean, 是否从每年第一天开始计算周数,  

* true: 从每年第一天开始计算周数;false: 从每年第一个周一开始计算周数。  

*/ 

function convertWeekNumberToFirstDate(sYear, sWeek, startFromFirstMonday)  {   

if (startFromFirstMonday == undefined)

 startFromFirstMonday = true;     

var weekIndex = 1;     

var year = parseInt(sYear);   

var week = parseInt(sWeek);     

var i = 1;   

var dFirstDate = new Date(year, 0, i);     

if (!startFromFirstMonday){    

   if (weekIndex  < week){     

      weekIndex++;    

   }else     

   return dFirstDate;   

   }     

   if (dFirstDate.getDay() != 1){    

   i += 7 - dFirstDate.getDay() + 1;    

   dFirstDate.setFullYear(year, 0, i);   

   }     

   if (weekIndex  < week){    

   i += 7*(week-weekIndex);    

   dFirstDate.setFullYear(year, 0, i);   

   }   

    return dFirstDate; 

}   

function displayDate()  {   

var dFirstDate = convertWeekNumberToFirstDate(oYear.value, oWeek.value);   

oDate.innerHTML = dFirstDate.getFullYear()+"-"+(dFirstDate.getMonth()+1)+"-"+dFirstDate.getDate(); 

lDate.innerHTML = dFirstDate.getFullYear()+"-"+(dFirstDate.getMonth()+1)+"-"+(dFirstDate.getDate()+4); 

}   

displayDate(); 

oYear.onchange = oWeek.onchange = displayDate;     

//-->   

</script>   

</body>  

</html>

运行结果如图:

当选择年份和周数的时候,后面的日期段会随着对应变化

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐