以下是计算星期日期的代码,
//Gets the week dayNumber date against the year,week number
var getWeekDate = function (year, weekNumber, dayNumber) {
var date = new Date(year, 0, 10, 0, 0, 0),
day = new Date(year, 0, 4, 0, 0, 0),
month = day.getTime() - date.getDay() * 86400000;
return new Date(month + ((weekNumber - 1) * 7 + dayNumber) * 86400000);
};
如果我给出以下值,代码工作正常,
输入:
year = 2012
weekNumber = 1
dayNumber = 0 //我的一周从星期一开始,所以我给它 0。
输出:
2012 年 1 月 2 日 //没错。
输入:
year = 2013
weekNumber = 1
dayNumber = 0 //我的一周从星期一开始,所以我给它 0。
输出:
2012 年 12 月 31 日 //这是不正确的。
2013 年的第一周将从 2013 年 1 月 7 日即星期一开始,但上面的代码计算不正确。