1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
| //根据周数获取周的范围
function getFirstAndLastDayOfWeek(weekNumber, year) {
// 确保周数和年份是有效的
if (weekNumber < 1 || weekNumber > 54 || isNaN(year)) {
return "Invalid input";
}
// 获取指定年份的第一个星期的起始日期
var firstWeekStartDate = new Date(year, 0, 4); // 1 月 4 日所在的星期
var iW = firstWeekStartDate.getDay();
// 计算指定周的起始日期
var targetWeekStartDate = new Date(firstWeekStartDate);
// 计算指定周的结束日期
var targetWeekEndDate = new Date(targetWeekStartDate);
//直接向前推6天
if(iW == 0)
{
targetWeekStartDate.setDate(firstWeekStartDate.getDate() - 6);
}
//周四这天在开头或者中间
else
{
targetWeekStartDate.setDate(firstWeekStartDate.getDate() - (iW - 1));
targetWeekEndDate.setDate(firstWeekStartDate.getDate() + (7 - iW));
}
targetWeekStartDate.setDate(targetWeekStartDate.getDate() + (weekNumber - 1) * 7);
targetWeekEndDate.setDate(targetWeekEndDate.getDate() + (weekNumber - 1) * 7);
return {
firstDay: targetWeekStartDate.toDateString(),
lastDay: targetWeekEndDate.toDateString()
};
}
|