基于Python实现一个打印特色日历的功能,程序输入为年份,月份,程序输出为指定月份的日历,日历内容有:从当月第一天至最后一天分别属于星期几。日历中需要融合假期,包括但不限于国庆节,劳动节,建军节,建党纪念日等。与现实日历相同。需注意日期要对齐
时间: 2024-10-24 15:19:07 浏览: 33
Python实现简易日历无限年份
要基于 Python 实现一个打印特色日历的功能,你可以使用 `calendar` 模块结合一些节假日数据来完成。首先确保已安装了 `calendar` 库,如果没有可以运行 `pip install calendar` 来安装。
以下是一个简单的示例,展示如何编写这样的程序:
```python
import calendar
import datetime
# 定义中国的法定节假日
holidays = {
'国庆节': (10, 1),
'劳动节': (5, 1),
'建军节': (8, 1),
'建党纪念日': (7, 1) # 这里假设6月30日作为建党纪念日前夕
}
def get_holiday_dates(year, month):
holiday_date = [datetime.date(year, m, h[0]) for m, h in holidays.items() if m == month]
return holiday_date
def print_special_calendar(year, month):
# 获取该月的日历
cal = calendar.monthcalendar(year, month)
# 获取本月的节假日日期
holiday_dates = get_holiday_dates(year, month)
# 打印日历,并在节假日处添加特殊标记
for week in cal:
line = []
for i, day in enumerate(week):
if day != 0:
date = datetime.date(year, month, i + 1)
if date in holiday_dates:
line.append(f"{date.day}({calendar.day_name[date.weekday()]}) - {date.strftime('%A')}")
else:
line.append(f"{date.day}({calendar.day_name[date.weekday()]})")
print(' '.join(line))
# 用户输入年份和月份
year = int(input("请输入年份: "))
month = int(input("请输入月份(1-12): "))
print_special_calendar(year, month)
```
这个程序会根据用户输入的年份和月份打印出指定月份的日历,同时在日历上标注节假日。节假日前面会有 `(国庆节)`、`(劳动节)` 等标识,并注明是周几。
阅读全文