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

如何从当前日期起获取未来4周内所有日期的星期名与日期数?

获取未来4周日期信息的实现方案

需求规则对齐

先明确计算规则,和示例保持一致:

  • 时间起点:当前日期的次日,不含当天
  • 时间终点:从起点往后数满28天(整4周),比如当前是6月23日周四,终点就是28天后的7月21日周四
  • 返回字段:每条日期数据包含当月日期号数、对应星期的英文缩写(如Fri、Thu)

通用实现逻辑

不管用什么编程语言,核心步骤都是这几步:

  1. 初始化当前日期为基准值,把时分秒、毫秒全部置为0,避免时间精度导致的日期计算偏差
  2. 连续循环28次,每次在基准日期上叠加对应天数(第一次叠加1天、最后一次叠加28天)
  3. 每次循环时提取两个值:当前日期是当月的几号、当前日期对应的星期缩写
  4. 按时间正序把所有结果组装成列表返回即可

常用语言代码示例

JavaScript 版本

function getNext4WeeksDates() {
  // 星期缩写映射,注意JS的getDay()返回0代表周日
  const weekMap = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];
  const dateList = [];
  // 初始化基准日期,清零时分秒
  const base = new Date();
  base.setHours(0, 0, 0, 0);

  for (let offset = 1; offset <= 28; offset++) {
    const curDate = new Date(base);
    curDate.setDate(base.getDate() + offset);
    dateList.push({
      day: curDate.getDate(),
      weekday: weekMap[curDate.getDay()]
    })
  }
  return dateList;
}

Python 版本

from datetime import datetime, timedelta

def get_next_4_weeks_dates():
    # 星期缩写映射,注意Python的weekday()返回0代表周一
    week_map = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
    date_list = []
    base_date = datetime.now().replace(hour=0, minute=0, second=0, microsecond=0)

    for offset in range(1, 29):
        cur_date = base_date + timedelta(days=offset)
        date_list.append({
            "day": cur_date.day,
            "weekday": week_map[cur_date.weekday()]
        })
    return date_list

避坑提示

不同编程语言的日期API对星期的索引起始值定义不一样,写映射表的时候一定要对应好API的返回规则,不然会出现星期名称匹配错误的问题。

按上面的逻辑实现,传入示例的基准日期6月23日周四,返回的第一条就是{day:24, weekday: 'Fri'},最后一条是{day:21, weekday: 'Thu'},完全符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 00:12:17