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

 

 <!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++)  {   
oWeek.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>

运行结果如图:

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值