读书人

[Ext JS 四] 实战之 带week(星期)的日

发布时间: 2013-09-05 16:02:06 作者: rapoo

[Ext JS 4] 实战之 带week(星期)的日期选择控件(三)

前言

在 [Ext JS 4] 实战之 带week(星期)的日期选择控件(二)

的最后,有提到一个解决方案。

不过这方案有一个条件 ==》 “2. 每年的周数从(1-52), 如果超过52 周,算到下一年的第一周”

这个条件有一个漏洞就是: 像 2011 年, 全年53 周, 第 53周整周都是2011年的天数,所以算成2012年的第一周就不对了。

综合: 还是两套标准之间的换算还是会有一些问题。

既然这样就不去混合使用两套标准的方法。 对于每个星期一周日开始的标准来说, 可以有更简单的方法。


解决方案

算法思想:

1. 每年的第一天(01/01) 是这一年的第一周。

2. 年中的某一天减去第一天的天数 再加上 第一天是这一年的第几天 后 除以7; 往上取整得到的整数就应该是这天的周数。

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;}

以上经过严格验证,没有问题。





读书人网 >JavaScript

热点推荐