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

如何获取当前周的全部日期及判断日期是否属于当前周

周度故障统计日期处理方案

1. 获取当前周的全部日期

首先需要明确周起始规则:国内默认周一为一周第一天,欧美地区默认周日为一周第一天,可根据业务规则调整。
以下为Python实现示例:

import datetime

def get_current_week_dates(week_start=0):
    # week_start=0 代表周一为周首,week_start=6代表周日为周首
    today = datetime.date.today()
    # 计算周首日期
    start_date = today - datetime.timedelta(days=today.weekday() - week_start)
    # 生成一周7天的日期列表
    week_dates = [start_date + datetime.timedelta(days=i) for i in range(7)]
    # 统一转为%Y-%m-%d格式字符串,方便和文件中存储的日期比对
    return [d.strftime("%Y-%m-%d") for d in week_dates]

# 调用示例(周一为周首)
current_week = get_current_week_dates()

如果是其他编程语言,核心逻辑一致:先取当前日期,计算距离周首的天数差得到周首日,再累加7天得到整周日期。

2. 判断任意日期是否属于当前周

推荐用「年份+周数匹配」的方案,自动处理跨年周的边界问题,逻辑更稳定。
Python实现示例:

import datetime

def is_date_in_current_week(target_date_str, date_format="%Y-%m-%d"):
    # 解析目标日期
    target_date = datetime.datetime.strptime(target_date_str, date_format).date()
    today = datetime.date.today()
    # 获取当前日期的年、周数
    current_year, current_week, _ = today.isocalendar()
    # 获取目标日期的年、周数
    target_year, target_week, _ = target_date.isocalendar()
    # 年和周数同时匹配则属于当前周
    return current_year == target_year and current_week == target_week

# 调用示例
print(is_date_in_current_week("2024-05-20"))

如果需要自定义周首规则,可以替换为范围判断逻辑:先获取当前周的起始、结束日期,再判断目标日期是否在[start_date, end_date]闭区间内即可。

注意事项

  • 处理跨年周时,不要直接用月份/自然日判断,避免出现12月31日属于下一年第一周、1月1日属于上一年最后一周的统计错误
  • 要和故障数据文件里的日期格式保持一致,避免字符串比对不匹配的问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 10:54:02