【发布时间】:2010-12-08 09:44:23
【问题描述】:
这是一个及时的问题。北美*的时间变化规则是:
- 11 月的第一个星期日,抵消对标准的更改(-1 小时)
- 3 月的第二个星期日,日光偏移变化(与 GMT 的正常偏移)
考虑 JavaScript 中的一个函数,它接受一个 Date 参数,并且应该确定该参数是标准还是夏令时。
问题的根源是:
- 您将如何构造下一次更改的日期?
算法/伪代码目前如下所示:
如果 argDate == "三月" { var firstOfMonth = new Date(); firstOfMonth.setFullYear(year,3,1); //星期几(0=星期日,6=星期六) var firstOfMonthDayOfWeek = firstOfMonth.getDay(); var firstSunday; if (firstOfMonthDayOfWeek != 0) //星期天! { //需要想办法确定哪个日期是第二个星期天 } }这里的限制是使用标准的 JavaScript 函数,而不是抓取任何 JavaScript 引擎对 Date 对象的解析。这段代码不会在浏览器中运行,所以那些不错的解决方案将不适用。
**并非北美的所有地方/地区都会更改时间。*
【问题讨论】:
标签: javascript algorithm datetime