不允许使用calendar模块,请自行编写程序输出指定年月的日历(如下图所示),并输出你自己出生年月的日历。
时间: 2024-12-10 07:41:12 浏览: 11
为了输出指定年月的日历,我们可以手动模拟月份的天数、星期几的循环等逻辑。下面是一个简单的Python示例,用于打印一个通用的日历,并提供一个函数来打印用户输入的年份和月份:
```python
def print_month(year, month):
# 初始设定
days_in_month = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0): # 普通闰年处理
days_in_month[1] = 29
# 输出月份标题
print(f"{'':<3} {month:<3} {'Mon':<9} 'Tue' 'Wed' 'Thu' 'Fri' 'Sat' 'Sun'")
print('-' * 57)
for i in range(1, len(days_in_month[month - 1]) + 1):
day_num = f"{i:02}"
print(f'{day_num:<3}', end=' ')
if (i + (week_start := (month - 1) * 7)) % 7 == 0: # 星期换行
print()
else:
print(' ', end='') # 空格填充
# 用户输入出生年月
birth_year = int(input("请输入您的出生年份: "))
birth_month = int(input("请输入您的出生月份: "))
# 打印出生月份的日历
print_month(birth_year, birth_month)
# 指定年月的日历
year = int(input("请输入您想查看的日历年份: "))
month = int(input("请输入您想查看的月份: "))
print_month(year, month)
```
运行这个程序,先会提示输入用户的出生年月,然后让用户选择另一个年月来查看日历。请注意,因为没有使用`calendar`模块,所以这里计算的是非闰年的二月只有28天。如果你需要准确的闰年判断,可以引入更复杂的日期库。
阅读全文