编程序实现:输入任意一个年份、月份,输出该月份的公历日历(要求用循环控制打印)。 提示: 1.先求出从公元1年1月1日到这个月的1日总共有多少天,并求出这个月的1日是星期几。 2.可以将每个月的天数存入一个数组中,但是不需要将一个月的每一天存入数组中。 常见问题: 1.如何控制某个月1日的打印位置? 答:先由程序计算出来该月份的1日是星期几,然后控制在打印“1”之前打印相应个数的空格。 2.如何控制每周和每月的打印换行? 答:可以根据当前这一天的打印位置控制每周的打印换行,并根据该月份的总天数控制每月的打印换行。 输入格式: 输入年份、月份,数据之间以空格分隔。 输出格式: 每项数据占4个字符宽度,右对齐。 输入样例: 2019 10 输出样例: Sun Mon Tue Wed Thu Fri Sat 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
时间: 2024-03-09 14:46:16 浏览: 100
好的,以下是 Python 代码实现:
```python
# 定义每个月的天数
month_days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
# 获取用户输入的年份和月份
year, month = map(int, input().split())
# 计算该月份的1日是星期几
total_days = 0
for i in range(1, month):
total_days += month_days[i-1]
total_days += 1 # 加上该月的1日
week_day = (total_days + (year - 1)*365 + (year - 1)//4 - (year - 1)//100 + (year - 1)//400) % 7
# 打印日历表格
print("Sun Mon Tue Wed Thu Fri Sat")
print(" " * week_day, end="") # 打印该月的1日前面的空格
for day in range(1, month_days[month-1]+1):
print(f"{day:4d}", end="")
week_day += 1
if week_day == 7: # 每周打印换行
print()
week_day = 0
print() # 最后一行打印换行
```
该代码首先定义了一个列表 `month_days` 存储每个月的天数,然后获取用户输入的年份和月份。接着通过循环计算该月份的1日是星期几。最后按照格式打印出日历表格,其中需要注意控制每个月的1日的打印位置和每周和每月的打印换行。
阅读全文