`
lcywjvb
  • 浏览: 59179 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

使用javascript写一个小的程序,通过年月来显示当月中的星期

阅读更多
$(document).ready(function(){
	var start = statform.startTime.value;
	var end = statform.endTime.value;
	if(start!=""&&end!=""){
		var s1 = start.split("-");
		if(s1[1].indexOf("0")==0){
			s1[1] = s1[1].replace("0","");
		}
		var _year = parseInt(s1[0]);
		var _month = parseInt(s1[1]);
		var year = new Date().getYear();
		if(year<1900){
			year = year + 1900;
		}
		if(year <=_year){
			showMonthLink(year,new Date().getMonth());
		}else{
			showMonthLink(_year,11);
		}
	}else{
		var date = new Date();
		var year = date.getYear();
		if(year<1900){
			year = year + 1900;
		}
		var month = date.getMonth();
		showMonthLink(year,month);
	}
});


$(document).ready(function(){
	var start=statform.startTime.value;
	var end=statform.endTime.value;
	if(start!=""&&end!=""){
		var s1 = start.split("-");
		if(s1[1].indexOf("0")==0){
			s1[1] = s1[1].replace("0","");
		}
		if(s1[2].indexOf("0")==0){
			s1[2] = s1[2].replace("0","");
		}
		var _year = parseInt(s1[0]);
		var _month = parseInt(s1[1]);
		var year = new Date().getYear();
		var month = new Date().getMonth();
		if(year == _year && _month-1 == month){
			showWeeks(year,new Date().getMonth());
		}else{
			showWeeks(_year,_month-1);
		}
	}else{
		var date = new Date();
		var year = date.getYear();
		if(year<1900){
			year = year + 1900;
		}
		var month = date.getMonth();
		showWeeks(year,month);
	}
});

function showMonthLink(yea,mon)
{
	var year,month,start,end,back_begin_year,back_begin_month,back_end_year,back_end_month,_b;
	start=statform.startTime.value;
	end=statform.endTime.value;
	if(start!=""&&end!=""){
		var s1 = start.split("-");
		var s2 = end.split("-");
		if(s1[1].indexOf("0")==0){
			s1[1] = s1[1].replace("0","");
		}
		if(s1[2].indexOf("0")==0){
			s1[2] = s1[2].replace("0","");
		}
		if(s2[1].indexOf("0")==0){
			s2[1] = s2[1].replace("0","");
		}
		if(s2[2].indexOf("0")==0){
			s2[2] = s2[2].replace("0","");
		}
		back_begin_year = parseInt(s1[0]);
		back_begin_month = parseInt(s1[1]);
		back_begin_day = parseInt(s1[2]);
		back_end_year = parseInt(s2[0]);
		back_end_month = parseInt(s2[1]);
		back_end_day = parseInt(s2[2]);
	}
	year = parseInt(yea);
	month = parseInt(mon);
	if(month==0&&year==0||year==0)
	{
		var date = new Date();
		year = new Date().getYear();
		month = new Date().getMonth();
		if(year<1900){
			year = year + 1900;
		}
	}
	var str="<table class='weeklink'><tr><td>月份:</td>"
	var date = new Date();
	_year = date.getYear();
	if(_year<1900){
	_year += 1900;
	}
	if(year<_year){
		var difference_year=year-_year;
		if(difference_year==0){
			str=str+"<td><input type='button' onclick='showMonthLink("+_year+","+date.getMonth()+")' value='下一年'/></td>";
		}else if(difference_year<-1){
			str=str+"<td><input type='button' onclick='showMonthLink("+(parseInt(year)+1)+","+month+")' value='下一年' /></td>";
		}else{
			str=str+"<td><input type='button' onclick='showMonthLink("+_year+","+date.getMonth()+")' value='下一年'/></td>";
		}
		
	}
	if(year<2006){
		alert("查询时间不能早于您所设定的时间,必须晚于2005年");
		return;
	}
	realMonth=month+1;
	for(i=0;i<12;i++)
	{
		if(realMonth<=0)
		{
			realMonth=realMonth+12;
			month = month+12;
			year=year-1;
			break;
			if(year<0)
			{
				alert("错误!统计时间不能早于你设定的时间");
				showMonthLink(year+1,11)
			}
		}
		//if(i==2){
			
		//}
		if(year==back_begin_year&&realMonth==back_begin_month&&back_end_month<=realMonth+1)
		{	
			str=str+"<td style='width: 50px;' class='td_poineter' onclick='return showWeeks("+year+","+month+")'><b>"+year+"."+realMonth+"</b></td>";
		}
		else
		{
			str=str+"<td style='width: 50px;' class='td_poineter' onclick='return showWeeks("+year+","+month+")'>"+year+"."+realMonth+"</td>";
		}
		realMonth=realMonth-1;
		month=month-1;
		
	}
	if(month<0){
		month = 11;
		year = year-1;
	}
	str=str+"<td><input type='button' onclick='showMonthLink("+year+","+month+")' value='上一年'/></td></tr></table>";
	document.getElementById("year_month").innerHTML ="";
	document.getElementById("year_month").innerHTML =str;
}
function showWeeks(yea,mon)
{	
	var year,_year,month,str,start,end,back_begin_year,back_begin_month,back_begin_day,back_end_year,back_end_month,back_end_day;
	start=statform.startTime.value;
	end=statform.endTime.value;
	str="<table class='weeklink'><tr><td>星期:</td>";
	year = parseInt(yea);
	month = parseInt(mon);
	if(start!=""&&end!=""){
		var s1 = start.split("-");
		var s2 = end.split("-");
		if(s1[1].indexOf("0")==0){
			s1[1] = s1[1].replace("0","");
		}
		if(s1[2].indexOf("0")==0){
			s1[2] = s1[2].replace("0","");
		}
		if(s2[1].indexOf("0")==0){
			s2[1] = s2[1].replace("0","");
		}
		if(s2[2].indexOf("0")==0){
			s2[2] = s2[2].replace("0","");
		}
		back_begin_year=parseInt(s1[0]);
		back_begin_month=parseInt(s1[1]);
		back_begin_day=parseInt(s1[2]);
		back_end_year=parseInt(s2[0]);
		back_end_month=parseInt(s2[1]);
		back_end_day=parseInt(s2[2]);
	}
	var _year = new Date().getYear();
	if(_year<1900){
		_year = _year + 1900;
	}
	var date = new Date(year,month,1);
	var day_of_week = date.getDay();
	var day = date.getDate();
	month = month+1;
	var weekBeginYear,weekEndYear,weekBeginMonth,weekEndMonth,weekBeginDay,weekEndDay;
	var a=day-day_of_week;
		if(a<=0)
		{
			if(month==2||month==4||month==6||month==9||month==11)
			{
				weekBeginDay=day-day_of_week+31;
				weekEndDay=day+6-day_of_week;
				weekBeginMonth=month-1;
				weekEndMonth=month;
				weekBeginYear=year;
				weekEndYear=year;
				 
			}else if(month==5||month==7||month==8||month==10||month==12)
			{
				weekBeginDay=day-day_of_week+30;
				weekEndDay=day+6-day_of_week;
				weekBeginMonth=month-1;
				weekEndMonth=month;
				weekBeginYear=year;
				weekEndYear=year;
				if(weekBeginMonth<=0)
				{
					weekBeginMonth=weekBeginMonth+12;
					weekBeginYear=weekBeginYear-1;
					if(weekBeginYear<0)
					{
						alert("错误!");
					}
				} 
			}else if(month==1)
			{
				weekBeginDay=day-day_of_week+31;
				weekEndDay=day+6-day_of_week;
				weekBeginMonth=month-1;
				weekEndMonth=month;
				weekBeginYear=year;
				weekEndYear=year;
				if(weekBeginMonth<=0)
				{
					weekBeginMonth=weekBeginMonth+12;
					weekBeginYear=weekBeginYear-1;
					if(weekBeginYear<0)
					{
						alert("错误!");
					}
				} 
			}else
			{	
				if(year%4==0&&year%400!=0 ||year%400==0)
				{
					weekBeginDay=day-day_of_week+29;
					weekEndDay=day+6-day_of_week;
					weekBeginMonth=month-1;
					weekEndMonth=month;
					weekBeginYear=year;
					weekEndYear=year;
				}else
				{
					weekBeginDay=day-day_of_week+28;
					weekEndDay=day+6-day_of_week;
					weekBeginMonth=month-1;
					weekEndMonth=month;
					weekBeginYear=year;
					weekEndYear=year;
				}
			}
		}else
		{
			if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)
			{
				weekBeginDay=day-day_of_week;
				weekEndDay = day+6-day_of_week;
				weekBeginMonth=month;
				weekEndMonth=month;
				weekBeginYear=year;
				weekEndYear=year;
				if(weekEndDay>31)
				{
					weekEndDay=weekEndDay-31;
					weekEndMonth=month+1;
					if(weekEndMonth>12)
					{
						weekEndMonth=weekEndMonth-12;
						weekEndYear=year-1;
					}
					
				}
			}else if(month==4||month==6||month==9||month==11)
			{
				weekBeginDay=day-day_of_week;
				weekEndDay = day+6-day_of_week;
				weekBeginMonth=month;
				weekEndMonth=month;
				weekBeginYear=year;
				weekEndYear=year;
				if(weekEndDay>30)
				{
					weekEndDay=weekEndDay-30;
					weekEndMonth=month+1;
				}
			}else
			{
				if(year%4==0&&year%400!=0 ||year%400==0)
				{
					weekBeginDay=day-day_of_week;
					weekEndDay = day+6-day_of_week;
					weekBeginMonth=month;
					weekEndMonth=month;
					weekBeginYear=year;
					weekEndYear=year;
					if(weekEndDay>29)
					{
						weekEndDay=weekEndDay-29;
						weekEndMonth=month+1;
					}
				}else
				{
					weekBeginDay=day-day_of_week;
					weekEndDay = day+6-day_of_week;
					weekBeginMonth=month;
					weekEndMonth=month;
					weekBeginYear=year;
					weekEndYear=year;
					if(weekEndDay>28)
					{
						weekEndDay=weekEndDay-28;
						weekEndMonth=month+1;
					}
				}
			}
			
		}
		for(i=0;i<6;i++){
			if(weekEndDay>31&&(weekEndMonth==1||weekEndMonth==3||weekEndMonth==5||weekEndMonth==7||weekEndMonth==8||weekEndMonth==10||weekEndMonth==12)){
				weekEndMonth=weekEndMonth+1;
				weekEndDay = weekEndDay-31;
				if(weekEndMonth>12){
					weekEndMonth=weekEndMonth-12
					weekEndYear=weekEndYear+1;
				}
			}else if(weekEndDay>30&&(weekEndMonth==4||weekEndMonth==6||weekEndMonth==9||weekEndMonth==11)){
				weekEndMonth=weekEndMonth+1;
				weekEndDay=weekEndDay-30;
				if(weekEndMonth>12){
					weekEndMonth=weekEndMonth-12
					weekEndYear=weekEndYear+1;
				}
			}else if(weekEndDay>29&&weekEndMonth==2&&(weekBeginYear%4==0&&weekBeginYear%400!=0 ||weekBeginYear%400==0)){
				weekEndMonth=weekEndMonth+1;
				weekEndDay=weekEndDay-29;
				if(weekEndMonth>12){
					weekEndMonth=weekEndMonth-12
					weekEndYear=weekEndYear+1;
				}
			}else if(weekEndDay>28&&weekEndMonth==2){
				weekEndMonth=weekEndMonth+1;
				weekEndDay=weekEndDay-28;
				if(weekEndMonth>12){
					weekEndMonth=weekEndMonth-12
					weekEndYear=weekEndYear+1;
				}			
			}
			if(weekBeginDay>31&&(weekBeginMonth==1||weekBeginMonth==3||weekBeginMonth==5||weekBeginMonth==7||weekBeginMonth==8||weekBeginMonth==10||weekBeginMonth==12)){
				weekBeginDay = weekBeginDay - 31;
				weekBeginMonth = weekBeginMonth + 1;
				if(weekBeginMonth>12){
					weekBeginMonth=weekBeginMonth-12
					weekBeginYear=weekBeginYear+1;
				}
			}else if(weekBeginDay>30&&(weekBeginMonth==4||weekBeginMonth==6||weekBeginMonth==9||weekBeginMonth==11)){
				weekBeginDay = weekBeginDay - 30;
				weekBeginMonth = weekBeginMonth + 1;
				if(weekBeginMonth>12){
					weekBeginMonth=weekBeginMonth-12
					weekBeginYear=weekBeginYear+1;
				}
			}else if(weekBeginDay>29&&weekBeginMonth==2&&(weekBeginYear%4==0&&weekBeginYear%400!=0 ||weekBeginYear%400==0)){
				weekBeginDay = weekBeginDay - 29;
				weekBeginMonth = weekBeginMonth + 1;
				if(weekBeginMonth>12){
					weekBeginMonth=weekBeginMonth-12
					weekBeginYear=weekBeginYear+1;
				}
			}else if(weekBeginDay>28&&weekBeginMonth==2){
				weekBeginDay = weekBeginDay - 28;
				weekBeginMonth = weekBeginMonth + 1;
				if(weekBeginMonth>12){
					weekBeginMonth=weekBeginMonth-12
					weekBeginYear=weekBeginYear+1;
				}
			}
			/*if(i==3){
				alert(weekBeginYear+"!@#$%%"+back_begin_year+"!@#$%%"+weekEndYear+"!@#$%%"+back_end_year);
				alert(weekBeginMonth+"!@#$%%"+back_begin_month+"!@#$%%"+weekEndYear+"!@#$%%"+back_end_year);
				alert(weekBeginDay+"!@#$%%"+back_begin_day+"!@#$%%"+weekEndDay+"!@#$%%"+back_end_day);
			}*/
			if(weekBeginYear==_year&&weekEndYear==_year&&weekBeginMonth>(new Date().getMonth()+1)){
				break;
			}
			if(weekBeginYear==back_begin_year&&weekBeginMonth==back_begin_month&&weekBeginDay==back_begin_day&&weekEndYear==back_end_year&&weekEndMonth==back_end_month&&weekEndDay==back_end_day){
				str=str+"<td style='width: 80px;' class='td_poineter' onclick=' write_time("+"\""+weekBeginYear+"-"+weekBeginMonth+"-"+weekBeginDay+"@"+weekEndYear+"-"+weekEndMonth+"-"+weekEndDay+"\")'><b>"+weekBeginMonth+"."+weekBeginDay+"--"+weekEndMonth+"."+weekEndDay+"</b></td>";
			}else{
				str=str+"<td style='width: 80px;' class='td_poineter' onclick=' write_time("+"\""+weekBeginYear+"-"+weekBeginMonth+"-"+weekBeginDay+"@"+weekEndYear+"-"+weekEndMonth+"-"+weekEndDay+"\")'>"+weekBeginMonth+"."+weekBeginDay+"--"+weekEndMonth+"."+weekEndDay+"</td>";
			}
			weekBeginDay=weekEndDay+1;
			weekEndDay=weekEndDay+7;
			weekBeginMonth=weekEndMonth;
			weekBeginYear=weekEndYear;
		}
		str=str+"</tr></table>";
	document.getElementById("week_day").innerHTML =str;   
}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics