从下拉框中选择年份和该年的周数,计算出该周的开始日期和结束日期
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>
运行结果如图:
当选择年份和周数的时候,后面的日期段会随着对应变化
相关文章推荐
- Calendar根据输入的年份和周数计算该周的开始日期和结束日期
- java8 利用java7的date 做一个开始日期到结束日期 计算中间一共隔了多少日期
- Javascript: 在下拉列表中选择年份和月份,然后判断是瑞年还是平年,在日日期得下拉列表中显示瑞年二月对应多少天,平年对应多少天。
- js 日期选择判断结束时间大于开始时间
- Oracle日期周详解以及周开始结束时间计算
- Android 选择日期时间对话框(可选择开始结束时间,已解决弹出键盘问题)
- 日期时间段选择 js判断开始日期是否在结束日期之前,且开始日期和结束日期都不能超过当日的日期
- easyui datebox日期控制扩展选择日期小于等于当前日期,开始日期小于等于结束日期
- java 使用Calendar类计算每月有多少自然周,并输出每周的开始和结束日期
- 计算两日期相差天数(用字符串格式的时间形式来比较)、将时间戳转为字符串,开始到结束的时间差(用时间戳来比较)
- PHP计算一年多少个星期和每周的开始和结束日期
- 选择开始结束日期的view
- WdatePicker日期空间,结束时间不能选择比开始时间早
- 已知开始工作时间和工作日期计算工作日结束时间
- datetimebox输入开始结束日期,JS计算天数并赋值
- php计算给定日期所在周的开始日期和结束日期示例
- Oracle日期周详解以及周开始结束时间计算
- PHP计算指定日期所在周的开始和结束日期的方法
- PHP计算一年有多少周,每周开始日期和结束日期
- 获取开始及结束日期间隔月份或年份列表