前言

[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(星期)的日期选择控件(三)的更多相关文章

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

    前言 Ext JS 3 和 Ext JS 4中都有提供日期选择的组件(当然早期版本也有). 但是有一些日期选择的需求是要看到星期,就是日期中的哪一天是这一年的第几周. 遗憾的是Ext js 并没有提供 ...

  2. js 跨域的问题 (同一个主域名不同的二级域名下的跨域问题) 解决 WdatePicker.js my97日期选择控件

    例如域名是  a.xx.com  和 b.xx.com    如果一个页面中引入多个iframe,要想能够操作所有iframe,必须都得设置相同domain. 如果iframe的时候  a包含b  为 ...

  3. Android自定义View(RollWeekView-炫酷的星期日期选择控件)

    转载请标明出处: http://blog.csdn.net/xmxkf/article/details/53420889 本文出自:[openXu的博客] 目录: 1分析 2定义控件布局 3定义Cus ...

  4. js日期选择控件

    // 日期选择 // By Ziyue(http://www.web-v.com/) // 使用方法: // <script type="text/javascript" s ...

  5. angularjs之ui-bootstrap的Datepicker Popup不使用JS实现双日期选择控件

    最开始使用ui-bootstrap的Datepicker Popup日期选择插件实现双日期选择时间范围时,在网上搜了一些通过JS去实现的方法,不过后来发现可以不必通过JS去处理,只需要使用其自身的属性 ...

  6. jquery 带农历天干地支的日期选择控件

    效果图:

  7. Ionic实战六:日期选择控件

    onic日期选择控件,用于ionic项目开发中的日期选择以及日期插件   

  8. [Ext JS 4] 实战之 Picker 和 Picker Field

    前言 所谓的picker , 就是弹出一个选择框,让你选择一些信息.比如选择日期, 选择颜色等: 选择的结果总是要放在一个地方的,Picker Field 就是用来放置选择结果的一个文本框. 在Ext ...

  9. 自己封装的一个js方法用于获取显示的星期和日期时间

    自己封装的一个js方法用于获取显示的星期和日期时间 /** * 获取用于显示的星期和日期时间 * @param date * @returns {string} */ function getWeek ...

随机推荐

  1. WPF如何在同一个区域依次叠加显示多张图片呢?

    正如标题的问题,有时需要在已显示的图片的右上角(或其他区域)显示小图标,譬如下图的患者头像右上角显示病情图标:(这里不采用事先用PS编排成一个图片文件的方式,因为此方式普适性不好) 解决方案:绘制该复 ...

  2. Oracle 存储过程的创建,及触发器调用存储过程

    一.创建存储过程 1.存储过程写法 create or replace procedure HVM_BYQ_TJ --变压器统计信息--->入库 (id in number) as begin ...

  3. [Papers]NSE, $u_3$, Lebesgue space [NNP, QM, 2002; Zhou, JMPA, 2005]

    $$\bex u_3\in L^p(0,T;L^q(\bbR^3)),\quad \frac{2}{p}+\frac{3}{q}=\frac{1}{2},\quad 6< q\leq \inft ...

  4. Brackets sequence

    题意: 给你一个括号序列(有中小括号),求出以给定序列为子序列的最小合法括号序列. 分析: 非常经典,以前做过相似一道题,用区间dp,但怎么把这个序列求出来没想出来. dp[i][j]表示区间i-j是 ...

  5. 使用IP欺骗Loadrunner并发测试小结

    测试要求:   在本次测试中,我需要并发50个User,每一个User占用一个独立的IP,并且只执行一次脚本.脚本中发起两个请求,其中第一次请求返回200后才执行第二个请求.使用win7 OS.   ...

  6. Selenium IDE验证点

    Selenium IDE验证点 我们还开发了测试用例需要检查一个Web页面的属性.这需要维护和验证命令.有两种方法可以验证点到任何脚本 插入记录模式中的任何验证点单击“右键”元素,并选择“Show a ...

  7. 【跟我一起学Python吧】python学习摘要

    开始靖,怒推一篇文章:码农平时应该注意的办公室礼节 学习一门脚本语言是很有必要的,当我们在开发一些简单,快速程序时,脚本语言便有了用武之地,而且还很給力.根据python的介绍,python是一门很简 ...

  8. ACM1995

    /* 汉诺塔V Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Sub ...

  9. [Hive - LanguageManual] VirtualColumns

    Virtual Columns Simple Examples Virtual Columns Hive 0.8.0 provides support for two virtual columns: ...

  10. [HIve - LanguageManual] Join Optimization (不懂)

    Join Optimization Join Optimization Improvements to the Hive Optimizer Star Join Optimization Star S ...