[Ext JS 4] 实战之 带week(星期)的日期选择控件(三)
前言
在 [Ext JS 4] 实战之 带week(星期)的日期选择控件(二)
的最后,有提到一个解决方案。
不过这方案有一个条件 ==》 “2. 每年的周数从(1-52), 如果超过52 周,算到下一年的第一周”
这个条件有一个漏洞就是: 像 2011 年, 全年53 周, 第 53周整周都是2011年的天数,所以算成2012年的第一周就不对了。
综合: 还是两套标准之间的换算还是会有一些问题。
既然这样就不去混合使用两套标准的方法。 对于每个星期一周日开始的标准来说, 可以有更简单的方法。
解决方案
算法思想:
1. 每年的第一天(01/01) 是这一年的第一周。
2. 年中的某一天减去第一天的天数 再加上 第一天是这一年的第几天 后 除以7; 往上取整得到的整数就应该是这天的周数。
function getWeekNumber(date)
{
var onejan = new Date(date.getFullYear(),0,1);
return Math.ceil((((date - onejan) / 86400000) + onejan.getDay()+1)/7);
}
说明:
1. 两个日期相减得到的是这两个日期之间的距离的毫秒数
2. 86400000的由来 是 24*3600*1000 (1000ms = 1s ; 1h = 3600s; 1d = 24h)
3. getDay() 取值是从 0 到 6, getDay()+1 是得到是第几天
这样得到 W1335 这样的周的方式就很简单了:
function getWeekStrOfDate(date)
{
var weekStr = null;
if(date!=null)
{
weekStr = "W";
var dateYear = date.getFullYear();
var yearStr = dateYear.toString();
yearStr = yearStr.substring(2,4);
var dateWeek = getWeekNumber(date);
var dateWeekStr = dateWeek.toString();
if(dateWeekStr.length<2)
{
dateWeekStr = "0" + dateWeekStr;
}
weekStr += yearStr;
weekStr += dateWeekStr;
}
return weekStr;
}
以上经过严格验证,没有问题。
[Ext JS 4] 实战之 带week(星期)的日期选择控件(三)的更多相关文章
- [Ext JS 4] 实战之 带week(星期)的日期选择控件
		前言 Ext JS 3 和 Ext JS 4中都有提供日期选择的组件(当然早期版本也有). 但是有一些日期选择的需求是要看到星期,就是日期中的哪一天是这一年的第几周. 遗憾的是Ext js 并没有提供 ... 
- js 跨域的问题  (同一个主域名不同的二级域名下的跨域问题) 解决 WdatePicker.js my97日期选择控件
		例如域名是 a.xx.com 和 b.xx.com 如果一个页面中引入多个iframe,要想能够操作所有iframe,必须都得设置相同domain. 如果iframe的时候 a包含b 为 ... 
- Android自定义View(RollWeekView-炫酷的星期日期选择控件)
		转载请标明出处: http://blog.csdn.net/xmxkf/article/details/53420889 本文出自:[openXu的博客] 目录: 1分析 2定义控件布局 3定义Cus ... 
- js日期选择控件
		// 日期选择 // By Ziyue(http://www.web-v.com/) // 使用方法: // <script type="text/javascript" s ... 
- angularjs之ui-bootstrap的Datepicker Popup不使用JS实现双日期选择控件
		最开始使用ui-bootstrap的Datepicker Popup日期选择插件实现双日期选择时间范围时,在网上搜了一些通过JS去实现的方法,不过后来发现可以不必通过JS去处理,只需要使用其自身的属性 ... 
- jquery 带农历天干地支的日期选择控件
		效果图: 
- Ionic实战六:日期选择控件
		onic日期选择控件,用于ionic项目开发中的日期选择以及日期插件    
- [Ext JS 4] 实战之 Picker 和 Picker Field
		前言 所谓的picker , 就是弹出一个选择框,让你选择一些信息.比如选择日期, 选择颜色等: 选择的结果总是要放在一个地方的,Picker Field 就是用来放置选择结果的一个文本框. 在Ext ... 
- 自己封装的一个js方法用于获取显示的星期和日期时间
		自己封装的一个js方法用于获取显示的星期和日期时间 /** * 获取用于显示的星期和日期时间 * @param date * @returns {string} */ function getWeek ... 
随机推荐
- ArcMap自定义脚本工具制作
			原文 ArcMap自定义脚本工具制作 在制图的前期,一般需要做一些数据的整理,如图层合并.裁剪等工作.虽然在ArcMap中也有提供对应的工具,但使用起来需要点技巧.如批量裁剪,虽然可以实现,但出来的结 ... 
- IT版孔乙己(转)
			[不要做学究]回忆孔先生IT版 我关于本文评价:看到这篇文章很多人会生出这样的疑问“这明明是在诋毁钻研技术的人嘛?是不是在宣扬技术无用论?”. 初看这篇文章的时候我也是这样的想法,但是逐步才明白这篇文 ... 
- 《Python 学习手册4th》 第十八章 参数
			''' 时间: 9月5日 - 9月30日 要求: 1. 书本内容总结归纳,整理在博客园笔记上传 2. 完成所有课后习题 注:“#” 后加的是备注内容 (每天看42页内容,可以保证月底看完此书) “重点 ... 
- Ubuntu14.04下Python3.4启动IDLE
			1.在Ubuntu14.04 LTS版本中,已经自行安装了python,可以在Terminal(CTRL+ALT+T)中输入:ls /usr/bin | grep python 进行查看. 如果想运行 ... 
- (三)相遇射线的3D碰撞盒
			序 在2D游戏中,我们知道处理碰撞时,需要设置精灵遮罩图.同样,进入3D,处理碰撞时需要3D模型作为“遮罩图”. 索尼克 飞檐走壁 目的 (1)处理模型间的碰撞问题 (2)获取鼠标 ... 
- Android相关图书推荐
			疯狂Android讲义(第3版 附光盘) 作 者 李刚 著 出 版 社 电子工业出版社 出版时间 2015-06-01 版 次 3 页 数 780 印刷时间 2015-0 ... 
- (四面体)CCPC网络赛 HDU5839 Special Tetrahedron
			CCPC网络赛 HDU5839 Special Tetrahedron 题意:n个点,选四个出来组成四面体,要符合四面体至少四条边相等,若四条边相等则剩下两条边不相邻,求个数 思路:枚举四面体上一条线 ... 
- sys.default_constraints
			作为默认定义且 sys.objects.type = D 的每个对象在表中各对应一行, 该默认定义是作为 CREATE TABLE 或 ALTER TABLE 语句的一部分创建的, 而不是作为 CRE ... 
- 32位和64位dll判断
			如何判断一个dll文件是32位还是64位? 1. 开发中经常会使用到VC的一个工具 Dependency Walker用depends.exe打开dll,文件名前有64标示的即为64位. 但是这个方式 ... 
- android - python 自动化测试 移动互联网 - SegmentFault
			android - python 自动化测试 移动互联网 - SegmentFault splinter 
