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