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

如何获取指定年月中当月每一天的星期名称?

按年月输出当月每天的星期名称

问题分析

原代码报错是因为calendar.weekday()必须传入年、月、日三个参数,你只传了年和月,导致缺少必填的day参数。而且原代码仅尝试获取单天的星期,没有遍历当月所有日期,无法实现“输出当月每一天对应星期”的需求。

实现代码

1. 输出英文缩写(匹配预期格式)

import calendar

year = 2021
month = 4
# 获取当月的总天数
_, num_days = calendar.monthrange(year, month)
# 遍历每一天,获取星期缩写并收集
weekday_list = []
for day in range(1, num_days + 1):
    # weekday返回0=周一,6=周日,对应calendar.day_abbr的索引
    weekday_idx = calendar.weekday(year, month, day)
    weekday_list.append(calendar.day_abbr[weekday_idx])

print(weekday_list)

运行结果:

['Mon','Tue','Wed','Thu','Fri','Sat','Sun','Mon','Tue','Wed','Thu','Fri','Sat','Sun','Mon','Tue','Wed','Thu','Fri','Sat','Sun','Mon','Tue','Wed','Thu','Fri','Sat','Sun','Mon','Tue']

2. 输出中文星期名称

如果需要中文结果,可以自定义星期对应列表:

import calendar

year = 2021
month = 4
_, num_days = calendar.monthrange(year, month)
# 中文星期对应,索引0=周一,6=周日
cn_weekdays = ['周一', '周二', '周三', '周四', '周五', '周六', '周日']
weekday_list = []
for day in range(1, num_days + 1):
    weekday_idx = calendar.weekday(year, month, day)
    weekday_list.append(cn_weekdays[weekday_idx])

print(weekday_list)

运行结果:

['周一','周二','周三','周四','周五','周六','周日','周一','周二','周三','周四','周五','周六','周日','周一','周二','周三','周四','周五','周六','周日','周一','周二','周三','周四','周五','周六','周日','周一','周二']

代码说明

  • calendar.monthrange(year, month):返回一个元组,第一个元素是当月第一天的星期索引(0=周一,6=周日),第二个元素是当月的总天数。
  • calendar.weekday(year, month, day):返回指定日期的星期索引,配合calendar.day_abbr(英文缩写)或自定义中文列表,就能得到对应星期名称。
  • 循环遍历1到当月总天数,逐个获取每天的星期并收集到列表中,最终输出完整的当月星期序列。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 22:35:28