给我一个基于python的代码,使得输入年份以及第一天的星期,可以输出当年的日历
时间: 2024-05-10 22:20:33 浏览: 48
以下是一个基于Python的代码,可以输出给定年份的日历。
```python
# 定义一个函数,用于输出给定年份的日历
def print_calendar(year, first_day):
# 定义每个月的天数
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
# 定义星期几的字符串列表
weekdays = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa']
# 输出日历的标题
print(year)
# 输出星期几的标题
for weekday in weekdays:
print(weekday, end=' ')
print()
# 定义当前月份和日期
month = 0
day = 1
# 循环输出每个月的日历
while month < 12:
# 输出月份的标题
print('{:2d}'.format(month + 1), end=' ')
# 输出每个月的日历
for i in range(7):
if i < first_day or day > days_in_month[month]:
print(' ', end=' ')
else:
print('{:2d}'.format(day), end=' ')
day += 1
# 输出换行符
print()
# 更新星期几的索引和月份
first_day = (first_day + days_in_month[month]) % 7
month += 1
# 示例调用
print_calendar(2022, 5) # 输出2022年的日历,第一天为星期三
```
输出结果如下:
```
2022
Su Mo Tu We Th Fr Sa
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
```
阅读全文