设计一个程序实现月历的显示,要求: (1)输入年月信息,在屏幕上输出该月的日历。 (2)输出日历时,以月份和星期做表头。 (3)系统以菜单方式工作。
时间: 2025-06-23 17:25:17 浏览: 7
### 实现基于菜单驱动的日历生成器
为了创建一个能够根据指定年份和月份生成并打印相应月历的应用程序,可以采用Python作为开发工具。此方案不仅实现了基本功能需求——即依据用户输入展示特定时间范围内的日程安排;还提供了友好的交互界面来增强用户体验。
#### 1. 导入必要的库函数
首先需要导入`calendar`模块中的方法用于处理日期计算工作,同时引入`datetime`辅助获取当前系统的默认时间和格式化输出字符串。
```python
import calendar
from datetime import datetime
```
#### 2. 定义主逻辑框架
构建一个循环结构让用户可以在退出之前反复执行查看不同时间段的任务计划操作。每次迭代都会提示使用者选择下一步动作直至其决定终止会话为止。
```python
def main_menu():
while True:
print("\n--- 日历生成器 ---")
print("请选择一项:")
print("[1] 查看某个月的日历")
print("[0] 退出")
choice = input("您的选项 (0 或者 1): ")
if choice == '0':
break
elif choice == '1':
show_month_calendar()
else:
print("无效的选择,请重新尝试.")
```
#### 3. 获取有效的时间参数
定义专门的功能用来收集来自用户的期望查询区间数据,并确保这些值处于合理的范围内再传递给后续步骤继续加工处理。
```python
def get_valid_year_and_month():
try:
year = int(input("请输入年份(YYYY): "))
month = int(input("请输入月份(MM): "))
if not (1 <= month <= 12 and 1900 <= year <= 2100):
raise ValueError()
return year, month
except Exception as e:
print(f"错误: 输入的数据不符合要求 {e}")
return None, None
```
#### 4. 展示选定期间的具体情况
利用内置于`calendar.TextCalendar()`类里的成员函数快速渲染出目标区域内的每一天分布状况图表形式呈现出来供查阅参考之用[^1]。
```python
def show_month_calendar():
year, month = get_valid_year_and_month()
if all([year, month]):
cal = calendar.TextCalendar(calendar.SUNDAY)
formatted_cal = cal.formatmonth(year, month)
print(formatted_cal)
```
上述代码片段展示了如何使用Python标准库轻松完成任务的同时保持良好的可读性和维护性特点。通过这种方式编写的脚本既满足了原始请求又具备一定的灵活性适应未来可能的变化调整需求。
阅读全文
相关推荐


















