根据周次获取周次的日期范围

根据周次获取周次的日期范围

		/**
		 *	返回某年某月周次范围
		 *	@param year  年份
		 *	@param weeks 周次
		 *	@return  返回周次的日期范围
		 */
		function getXDate(year,weeks){
				var date = new Date(year,"0","1");
				var time = date.getTime();
				// 获取当前星期几,0:星期一 。。。。
				var _week = date.getDay();
				//当这一年的1月1日为周日时则本年有54周,否则没有54周,没有则去除第54周的提示
				if(_week!=0){//一年53周情况
							if(weeks==54){
								return '今年没有54周';
							}
							var cnt=0;// 获取距离周末的天数
							if(_week==0){
								cnt = 7;
							}else if(_week==1){
								cnt = 6;
							}else if(_week==2){
								cnt = 5;
							}else if(_week==3){
								cnt = 4;
							}else if(_week==4){
								cnt = 3;
							}else if(_week==5){
								cnt = 2;
							}else if(_week==6){
								cnt = 1;
							}
							cnt += 1;//加1表示以星期一为一周的第一天
							// 将这个长整形时间加上第N周的时间偏移
							time += cnt*24*3600000; //第2周开始时间

							var nextYear = new Date(parseInt(year,10)+1,"0","1");
							var nextWeek = nextYear.getDay();
							var lastcnt = 0;//获取最后一周开始时间到周末的天数
							if(nextWeek==0){
								lastcnt = 6;
							}else if(nextWeek==1){
								lastcnt = 0;
							}else if(nextWeek==2){
								lastcnt = 1;
							}else if(nextWeek==3){
								lastcnt = 2;
							}else if(nextWeek==4){
								lastcnt = 3;
							}else if(nextWeek==5){
								lastcnt = 4;
							}else if(nextWeek==6){
								lastcnt = 5;
							}
							if(weeks==1){//第1周特殊处理
								// 为日期对象 date 重新设置成时间 time
								var start = date.format("yyyy年MM月dd日");
								date.setTime(time-24*3600000);
								return start +'--'+ date.format("yyyy年MM月dd日");
							}else if(weeks==53){//第53周特殊处理
								var start = time+(weeks-2)*7*24*3600000; //第53周开始时间
								var end = time+(weeks-2)*7*24*3600000 + lastcnt*24*3600000 - 24*3600000; //第53周结束时间
								// 为日期对象 date 重新设置成时间 time
								date.setTime(start);
								var _start = date.format("yyyy年MM月dd日");
								date.setTime(end);
								var _end = date.format("yyyy年MM月dd日");
								return _start +'--'+ _end;
							}else{
								var start = time+(weeks-2)*7*24*3600000; //第n周开始时间
								var end = time+(weeks-1)*7*24*3600000 - 24*3600000; //第n周结束时间
								// 为日期对象 date 重新设置成时间 time
								date.setTime(start);
								var _start = date.format("yyyy年MM月dd日");
								date.setTime(end);
								var _end = date.format("yyyy年MM月dd日");
								return _start +'--'+ _end;
							}
				}else{//一年54周情况
							var cnt=0;// 获取距离周末的天数
							if(_week==0 && weeks==1){//第一周
								cnt = 0;
							}else if(_week==0){
								cnt = 7;
							}else if(_week==1){
								cnt = 6;
							}else if(_week==2){
								cnt = 5;
							}else if(_week==3){
								cnt = 4;
							}else if(_week==4){
								cnt = 3;
							}else if(_week==5){
								cnt = 2;
							}else if(_week==6){
								cnt = 1;
							}
							cnt += 1;//加1表示以星期一为一周的第一天
							// 将这个长整形时间加上第N周的时间偏移
							time += 24*3600000; //第2周开始时间

							var nextYear = new Date(parseInt(year,10)+1,"0","1");
							var nextWeek = nextYear.getDay();
							var lastcnt = 0;//获取最后一周开始时间到周末的天数
							if(nextWeek==0){
								lastcnt = 6;
							}else if(nextWeek==1){
								lastcnt = 0;
							}else if(nextWeek==2){
								lastcnt = 1;
							}else if(nextWeek==3){
								lastcnt = 2;
							}else if(nextWeek==4){
								lastcnt = 3;
							}else if(nextWeek==5){
								lastcnt = 4;
							}else if(nextWeek==6){
								lastcnt = 5;
							}

							if(weeks==1){//第1周特殊处理
								// 为日期对象 date 重新设置成时间 time
								var start = date.format("yyyy年MM月dd日");
								date.setTime(time-24*3600000);
								return start +'--'+ date.format("yyyy年MM月dd日");
							}else if(weeks==54){//第54周特殊处理
								var start = time+(weeks-2)*7*24*3600000; //第54周开始时间
								var end = time+(weeks-2)*7*24*3600000 + lastcnt*24*3600000 - 24*3600000; //第53周结束时间
								// 为日期对象 date 重新设置成时间 time
								date.setTime(start);
								var _start = date.format("yyyy年MM月dd日");
								date.setTime(end);
								var _end = date.format("yyyy年MM月dd日");
								return _start +'--'+ _end;
							}else{
								var start = time+(weeks-2)*7*24*3600000; //第n周开始时间
								var end = time+(weeks-1)*7*24*3600000 - 24*3600000; //第n周结束时间
								// 为日期对象 date 重新设置成时间 time
								date.setTime(start);
								var _start = date.format("yyyy年MM月dd日");
								date.setTime(end);
								var _end = date.format("yyyy年MM月dd日");
								return _start +'--'+ _end;
							}
				}

		} 

效果图:

jsp部分:

<div id="watch_date" class="menu-content watch_date" style="width:355px;height:360px;display:none;">
		  			<div style="width:355px;height:30px;line-height:27px;text-align:center;background-color:#E0ECFF;">
		  			<input id="year" class="easyui-numberspinner" required="required" value="${nf['MAXNF'] }" data-options="max:${nf['MAXNF'] },min:${nf['MINNF'] }" style="width:60px;line-height: 0px;">
		  			</div>
		  			<div id="week">
		  				<c:forEach begin="1" end="54" var="v" step="1">
			  				<div class="nodata" data="${v}">${v}</div>
		  				</c:forEach>
		  			</div>
			    </div>

屏蔽无数据的周次点击事件:

思路:其实很简单,只是控制样式而已,首先把周次都设置为不可点击的样式,然后根据有数据的周次再循环添加可以点击的样式,在点击实践中判断屏蔽就可以了

自定义空间示例图:

时间: 2024-08-06 11:57:41

根据周次获取周次的日期范围的相关文章

js日期计算及快速获取周、月、季度起止日,获取指定日期周数以及星期几的小例子

JS获取日期时遇到如下需求,根据某年某周获取一周的日期.如开始日期规定为星期四到下一周的星期五为一周. 格式化日期: function getNowFormatDate(theDate) { var day = theDate; var Year = 0; var Month = 0; var Day = 0; var CurrentDate = ""; // 初始化时间 Year= day.getFullYear();// ie火狐下都可以 Month= day.getMonth()

获取周 星期 的第一天 最后一天 或者 月的 日期(字符串转日期,日期转字符串,日期加减)

获取周的第一天,最后一天 System.out.println(getStartEndDate("2016-05-01", 1)); 获取星期的第一天和最后一天 System.out.println(getStartEndDate("2016-05-01", 0)); public static String getStartEndDate(String aDay, int type) { SimpleDateFormat df = new SimpleDateFo

16、根据年月日获取周几 以及整理的日期常用的工具类

1 /** 2 * @param year 3 * @param month 4 * @param day 5 * @return 6 */ 7 public static String CaculateWeekDay(int y,int m,int d) 8 { 9 10 String strDate = y+"-"+m+"-"+d;// 定义日期字符串 11 SimpleDateFormat format = new SimpleDateFormat("

获取周的日期范围

/** * 获取周的日期范围 * @param string $week * @param string $year * @return array */ public static function getWeekDate($week = '',$year = '') { /** * 2007年 第一周 是 01-01 到 01 - 07 因为第一天就是星期一 6 * 2008年 第一周 是 01-01 到 01 - 06 因为第一天就是星期二 5 (闰年多一天) * 2009年 第一周 是

Java各种日期格式的获取和设置指定日期

因为近期在做一个项目,发现项目中日期设置的bug,于是查阅了多方资料后.最终攻克了,为此写篇总结.方便日后的查阅. 多的不说了.直接上代码 package com.example.testdate; import java.text.DateFormat; import java.text.ParsePosition; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; impo

第4周~第12周周记

因为之前没注意到有周记这回事,所以在这里一并补上,本周是第12周,也一并写在这里,请老师见谅 第四周:入学的第四周,整个人的重心才刚刚开始往学习上转,开始逐渐摆脱了放假回来的那种感觉,逐渐步入学习状态了,但是心还是定不下来,没办法全身心的投入打代码当中去. 第五周:状态相对于上一周会好一些了,但是由于系队又开始组织训练了,耽误了不少时间,一周下来也没学多少东西进去,完全不知道重心该放在什么地方了. 第六周:因为临近球赛了,所以我决定暂时先配合球队训练,落下来的学习内容之后几周慢慢补上. 第七周:

js中使用eval()方法将字符串转换成日期格式、并获取指定时间的日期

1.在js中eval()方法将字符串格式数据转换成日期格式 function getDate(strDate) {         //strDate为需要转换成日期格式的字符串         var date = eval('new Date(' + strDate.replace(/\d+(?=-[^-]+$)/,                 function (a) { return parseInt(a, 10) - 1; }).match(/\d+/g) + ')');    

Swift教程_基础技术_获取当前日期时间、日期时间格式化及转换

Swift教程_基础技术_类型转换(父子类转换:Int.Double.String转换) Swift教程_基础技术_获取当前日期时间.日期时间格式化及转换 1.获取当前日期时间 var nowDate = NSDate() var formatter = NSDateFormatter() formatter.dateFormat = "yyyy-MM-dd HH:mm:ss" var dateString = formatter.stringFromDate(nowDate) pri

js获取当前日期及获取当前日期的前一天日期函数

function getcurrentdate(){ //获取系统时间var LSTR_ndate=new Date();var LSTR_Year=LSTR_ndate.getFullYear();var LSTR_Month=LSTR_ndate.getMonth();var LSTR_Date=LSTR_ndate.getDate();//处理var uom = new Date(LSTR_Year,LSTR_Month,LSTR_Date);uom.setDate(uom.getDate