function getDateOfWeek(w, y) {
var d = (1 + (w - 1) * 7); // 1st of January + 7 days for each week
return new Date(y, 0, d);
}
これは、2013 年の第 20 週が 5 月 14 日であることを意味する単純な週の定義を使用します。
特定のISO8601 週(常に月曜日)の開始日を計算するには
function getDateOfISOWeek(w, y) {
var simple = new Date(y, 0, 1 + (w - 1) * 7);
var dow = simple.getDay();
var ISOweekStart = simple;
if (dow <= 4)
ISOweekStart.setDate(simple.getDate() - simple.getDay() + 1);
else
ISOweekStart.setDate(simple.getDate() + 8 - simple.getDay());
return ISOweekStart;
}
結果: 2013 年の第 20 週は 5 月 13 日で、こちらで確認できます。