设计一个万年历 日历程序可以打印出任何一年的日历,程序运行后输入一个年份,如2019年,打印出全年12个月的日历,图所示是2019年1月的日历部分
时间: 2024-02-29 13:53:02 浏览: 95
好的,万年历程序的设计可以分为以下几个步骤:
1. 输入年份:用户输入一个年份,比如2019年。
2. 判断闰年:根据公历规定,能被4整除但不能被100整除的年份为闰年,或者能被400整除的年份也是闰年。
3. 计算每个月的天数:根据公历规定,每个月的天数不同。其中,1、3、5、7、8、10、12月有31天,4、6、9、11月有30天,2月平年有28天,闰年有29天。
4. 计算每个月第一天星期几:公历中,1900年1月1日是星期一,因此可以根据这个星期来推算每个月第一天的星期几。
5. 打印日历:根据每个月的天数和第一天星期几,打印出该月的日历。
以下是Python代码实现:
```python
# 输入年份
year = int(input("请输入年份:"))
# 判断闰年
if year % 4 == 0 and year % 100 != 0 or year % 400 == 0:
leap_year = True
else:
leap_year = False
# 计算每个月的天数
month_days = [31, 28 + leap_year, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
# 计算每个月第一天星期几
first_day = (1 + 365 * (year - 1) + (year - 1) // 4 - (year - 1) // 100 + (year - 1) // 400) % 7
# 打印日历
month_names = ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"]
for i in range(12):
print("\n" + month_names[i] + " " + str(year))
print("日 一 二 三 四 五 六")
# 打印第一天前的空格
for j in range(first_day):
print(" ", end="")
# 打印日期
for k in range(1, month_days[i] + 1):
print("{:2d} ".format(k), end="")
first_day += 1
if first_day == 7:
first_day = 0
print()
if first_day != 0:
print()
```
运行程序后,输入年份2019,即可得到2019年的日历。
阅读全文