如何使用Python calendar模块在指定日期插入对勾标记
Python calendar模块指定日期添加对勾标记实现方案
默认的calendar.month()方法会直接返回格式化好的整月日历字符串,无法直接插入自定义标记,我们可以通过拆分日历行、匹配目标日期后追加标记的方式实现需求,可直接运行的代码如下:
import calendar def marked_month_calendar(year, month, mark_dates): # 拆分原生日历为逐行文本 cal_lines = calendar.month(year, month).splitlines() # 前两行为年月标题、星期表头,无需修改直接保留 processed_lines = cal_lines[:2] # 逐行处理日期内容 for line in cal_lines[2:]: date_parts = line.split() # 匹配需要标记的日期 for target_date in mark_dates: target_str = str(target_date) if target_str in date_parts: pos = date_parts.index(target_str) date_parts[pos] = f"{target_date}✓" # 按原生日历的对齐规则重新拼接行 processed_line = "".join(f"{part:<4}" for part in date_parts) processed_lines.append(processed_line) return "\n".join(processed_lines) # 示例调用 yy = 2021 mm = 10 # 填入所有需要添加对勾的日期 mark_list = [4, 15, 21, 28] print(marked_month_calendar(yy, mm, mark_list))
使用说明
- 修改
mark_list列表的值即可自定义所有需要标记的日期 - 代码默认适配了原生calendar的输出对齐规则,不会出现排版错乱问题
- 可自行替换代码中的
✓为其他需要的标记符号
内容的提问来源于stack exchange,提问作者TFAM
相关产品推荐
相关产品推荐

