You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用JavaScript生成当前日期后2-7天的星期数(0为周日)数组?

How to Generate an Array of Weekday Numbers (0 = Sunday) for Days 2–8 Days From Today

Alright, let's break down how to solve this problem step by step. Based on your examples, we need an array of 7 weekday numbers (where 0 represents Sunday) starting from 2 days after the current date. Let's dive into the core logic and practical code implementations:

Core Logic

First, let's lock in the pattern that matches your examples:

  • Let currentWeekday be today's weekday number (0 = Sunday, 1 = Monday, ..., 6 = Saturday)
  • For each day starting 2 days from now, the weekday number is (currentWeekday + daysFromToday) % 7 — the modulo 7 handles the circular nature of weeks (adding 7 days always brings us back to the same weekday)
  • We calculate this for daysFromToday values 2 through 8 (that's 7 total days, which matches your sample outputs)

Let's confirm with your test cases:

Example 1: Current weekday = 0 (Sunday)
Calculations: (0+2)%7=2, (0+3)%7=3, (0+4)%7=4, (0+5)%7=5, (0+6)%7=6, (0+7)%7=0, (0+8)%7=1 → Output: [2, 3, 4, 5, 6, 0, 1]

Example 2: Current weekday = 3 (Wednesday)
Calculations: (3+2)%7=5, (3+3)%7=6, (3+4)%7=0, (3+5)%7=1, (3+6)%7=2, (3+7)%7=3, (3+8)%7=4 → Output: [5, 6, 0, 1, 2, 3, 4]

Perfect, that lines up exactly with what you need.

JavaScript Implementation

This uses native Date methods to grab today's weekday, then generates the array with a concise loop:

// Get today's weekday number (0 = Sunday)
const currentWeekday = new Date().getDay();

// Generate the array of weekday numbers for days 2–8 from today
const weekdayArray = Array.from({ length: 7 }, (_, index) => {
  const daysLater = index + 2; // Index 0 = 2 days later, index 6 = 8 days later
  return (currentWeekday + daysLater) % 7;
});

console.log(weekdayArray);
// Output matches your sample cases

If you need to convert these numbers to human-readable weekday names, just add a mapping array:

const weekdayNames = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
const namedWeekdays = weekdayArray.map(num => weekdayNames[num]);
// Example output (if today is Sunday): ["Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday", "Monday"]

Python Implementation

Python's datetime module needs a tiny adjustment to get 0 = Sunday (its default weekday() uses 0 = Monday):

import datetime

# Get today's date and convert to 0 = Sunday format
today = datetime.date.today()
current_weekday = today.isoweekday() % 7  # isoweekday() returns 1=Monday to 7=Sunday; mod 7 turns 7 into 0

# Generate the target array
weekday_array = [(current_weekday + i + 2) % 7 for i in range(7)]

print(weekday_array)
# Output matches your required samples

To map to weekday names in Python:

weekday_names = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']
named_weekdays = [weekday_names[num] for num in weekday_array]

内容的提问来源于stack exchange,提问作者lionrocker221

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 12:13:16