以下は、週の日付を計算するコードです。
//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);
};
次の値を指定すると、コードは正常に機能します。
Input:
year = 2012
weekNumber = 1
dayNumber = 0 //私の週は月曜日から始まるので、0 を指定します。
出力:
2nd, Jan 2012 //その通りです。
Input:
year = 2013
weekNumber = 1
dayNumber = 0 //私の週は月曜日から始まるので、0 を指定します。
出力:
2012 年 12 月 31 日 //それは不正解です。
2013 年の最初の週は 2013 年 1 月 7 日 ieMonday から始まりますが、上記のコードは正しく計算していません。