Date.prototype.getWeek = function(flag)
{
var first = new Date(this.getFullYear(), 0, 1);
var n = parseInt("1065432".charAt(first.getDay()));
n = this.getTime()-first.getTime()-n*24*60*60*1000;
n = Math.ceil(n/(7*24*60*60*1000));
return (flag==true&&first.getDay()!=1)?(n+1):n;
};
function getFirstDate(year){
var first = new Date(year, 0, 1);
return first;
}
function getLastDate(year){
var last = new Date(year, 11, 31);
return last;
}
Date.prototype.format = function(format)
{
var o = {
"M+" : this.getMonth()+1, //month
"d+" : this.getDate(), //day
"h+" : this.getHours(), //hour
"m+" : this.getMinutes(), //minute
"s+" : this.getSeconds(), // cond
"q+" : Math.floor((this.getMonth()+3)/3), //quarter
"S" : this.getMilliseconds() //millisecond
}
if(/(y+)/.test(format)) format=format.replace(RegExp.$1,
(this.getFullYear()+"").substr(4 - RegExp.$1.length));
for(var k in o)if(new RegExp("("+ k +")").test(format))
format = format.replace(RegExp.$1,
RegExp.$1.length==1 ? o[k] :
("00"+ o[k]).substr((""+ o[k]).length));
return format;
};
function getFirstAndEnd(d)
{
var w = d.getDay(), n = 24*60*60*1000;
var first = new Date(d.getTime() - parseInt("6012345".charAt(w))*n);
var end = new Date(d.getTime() + parseInt("0654321".charAt(w))*n);
return {first: first, end: end};
}
function addWeekOption(con,year){
var weekCount = getLastDate(year).getWeek(false)+1;
var firstAndEnd = getFirstAndEnd(getFirstDate(year));
con.add(new Option('请选择',''));
for(var i=0;i<weekCount;i++){
var index = i+1;
var str = frmWithZero(index);
var value='第'+str+'周('+firstAndEnd.first.format("yyyy-MM-dd")+'到'+firstAndEnd.end.format("yyyy-MM-dd")+')';
con.add(new Option(value,str));
var n = 24*60*60*1000;
var newDate = new Date(firstAndEnd.end.getTime()+n);
firstAndEnd = getFirstAndEnd(newDate);
}
}
function frmWithZero(num){
if( num<10)
return "0"+num;
else return num;
}
function addOption(con,year,type){
var value = con.value;
removeAll(con);
if(year==''){
return;
}
if(type==2){
con.add(new Option('请选择',''));
con.add(new Option('第一季度','01'));
con.add(new Option('第二季度','02'));
con.add(new Option('第三季度','03'));
con.add(new Option('第四季度','04'));
con.value=value;
con.id='combobox';//允许为空
}else if(type==3){
con.add(new Option('请选择',''));
con.add(new Option('一月','01'));
con.add(new Option('一月','01'));
con.add(new Option('二月','02'));
con.add(new Option('三月','03'));
con.add(new Option('四月','04'));
con.add(new Option('五月','05'));
con.add(new Option('六月','06'));
con.add(new Option('七月','07'));
con.add(new Option('八月','08'));
con.add(new Option('九月','09'));
con.add(new Option('十月','10'));
con.add(new Option('十一月','11'));
con.add(new Option('十二月','12'));
con.value=value;
con.id='combobox';//允许为空
}else if(type==4){
addWeekOption(con,year);
con.value=value;
con.id='combobox';//允许为空
}else{
con.disabled=true;
}
}
function removeAll(sel){
for(i=0;i<sel.length;i++)
{
sel.options.remove(i);
i--;
}
}
function initValues_post(){
initvalue();
addOption(document.tableForm.week,document.tableForm.year.value,4);
}
initValues_post();
{
var first = new Date(this.getFullYear(), 0, 1);
var n = parseInt("1065432".charAt(first.getDay()));
n = this.getTime()-first.getTime()-n*24*60*60*1000;
n = Math.ceil(n/(7*24*60*60*1000));
return (flag==true&&first.getDay()!=1)?(n+1):n;
};
function getFirstDate(year){
var first = new Date(year, 0, 1);
return first;
}
function getLastDate(year){
var last = new Date(year, 11, 31);
return last;
}
Date.prototype.format = function(format)
{
var o = {
"M+" : this.getMonth()+1, //month
"d+" : this.getDate(), //day
"h+" : this.getHours(), //hour
"m+" : this.getMinutes(), //minute
"s+" : this.getSeconds(), // cond
"q+" : Math.floor((this.getMonth()+3)/3), //quarter
"S" : this.getMilliseconds() //millisecond
}
if(/(y+)/.test(format)) format=format.replace(RegExp.$1,
(this.getFullYear()+"").substr(4 - RegExp.$1.length));
for(var k in o)if(new RegExp("("+ k +")").test(format))
format = format.replace(RegExp.$1,
RegExp.$1.length==1 ? o[k] :
("00"+ o[k]).substr((""+ o[k]).length));
return format;
};
function getFirstAndEnd(d)
{
var w = d.getDay(), n = 24*60*60*1000;
var first = new Date(d.getTime() - parseInt("6012345".charAt(w))*n);
var end = new Date(d.getTime() + parseInt("0654321".charAt(w))*n);
return {first: first, end: end};
}
function addWeekOption(con,year){
var weekCount = getLastDate(year).getWeek(false)+1;
var firstAndEnd = getFirstAndEnd(getFirstDate(year));
con.add(new Option('请选择',''));
for(var i=0;i<weekCount;i++){
var index = i+1;
var str = frmWithZero(index);
var value='第'+str+'周('+firstAndEnd.first.format("yyyy-MM-dd")+'到'+firstAndEnd.end.format("yyyy-MM-dd")+')';
con.add(new Option(value,str));
var n = 24*60*60*1000;
var newDate = new Date(firstAndEnd.end.getTime()+n);
firstAndEnd = getFirstAndEnd(newDate);
}
}
function frmWithZero(num){
if( num<10)
return "0"+num;
else return num;
}
function addOption(con,year,type){
var value = con.value;
removeAll(con);
if(year==''){
return;
}
if(type==2){
con.add(new Option('请选择',''));
con.add(new Option('第一季度','01'));
con.add(new Option('第二季度','02'));
con.add(new Option('第三季度','03'));
con.add(new Option('第四季度','04'));
con.value=value;
con.id='combobox';//允许为空
}else if(type==3){
con.add(new Option('请选择',''));
con.add(new Option('一月','01'));
con.add(new Option('一月','01'));
con.add(new Option('二月','02'));
con.add(new Option('三月','03'));
con.add(new Option('四月','04'));
con.add(new Option('五月','05'));
con.add(new Option('六月','06'));
con.add(new Option('七月','07'));
con.add(new Option('八月','08'));
con.add(new Option('九月','09'));
con.add(new Option('十月','10'));
con.add(new Option('十一月','11'));
con.add(new Option('十二月','12'));
con.value=value;
con.id='combobox';//允许为空
}else if(type==4){
addWeekOption(con,year);
con.value=value;
con.id='combobox';//允许为空
}else{
con.disabled=true;
}
}
function removeAll(sel){
for(i=0;i<sel.length;i++)
{
sel.options.remove(i);
i--;
}
}
function initValues_post(){
initvalue();
addOption(document.tableForm.week,document.tableForm.year.value,4);
}
initValues_post();