写个日历,输入年份就可以打印当月的日历不要导包,自己写
时间: 2023-05-21 17:02:41 浏览: 145
以下是一个简单的 Python 代码,可以根据输入的年份和月份打印出当月的日历:
```
def is_leap_year(year):
return year % 4 == 0 and (year % 100 != 0 or year % 400 == 0)
def get_days_in_month(year, month):
if month in [1, 3, 5, 7, 8, 10, 12]:
return 31
elif month in [4, 6, 9, 11]:
return 30
elif month == 2:
return 29 if is_leap_year(year) else 28
else:
return None
def print_calendar(year, month):
days_in_month = get_days_in_month(year, month)
if days_in_month is None:
print("Invalid month:", month)
return
print(" Mon Tue Wed Thu Fri Sat Sun")
print("------------------------------------")
# 计算当月第一天是星期几
import datetime
first_day = datetime.date(year, month, 1)
first_weekday = first_day.weekday()
# 打印日历
row = " " * 4 * first_weekday
for day in range(1, days_in_month + 1):
row += "{:2d} ".format(day)
if (first_weekday + day) % 7 == 0:
print(row)
row = ""
if row:
print(row)
year = int(input("请输入年份:"))
month = int(input("请输入月份:"))
print_calendar(year, month)
```
这个代码中,我们首先定义了一个 `is_leap_year` 函数,用于判断一个年份是否为闰年。然后定义了一个 `get_days_in_month` 函数,用于根据年份和月份计算当月的天数。最后定义了一个 `print_calendar` 函数,用于打印当月的日历。
在 `print_calendar` 函数中,我们首先调用 `get_days_in_month` 函数计算当月的天数,如果月份无效则直接返回。然后打印日历的表头,接着计算当月第一天是星期几,然后按照星期一到星期日的顺序打印日历。如果一行打印完了,就换行继续打印下一行。
阅读全文