编写程序显示单月的日历。用户指定这个月的天数和该月起始日是星期几: 31 3 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 输入 1、输入这个月的天数。 2、输入该月起始日是星期几(1=Sun,7=Stat)。 输出 输出单月的日历,日与日之间间隔一个空格,上下行日期右对齐。 样例查看模式 正常显示 查看格式 输入样例1 <-复制 31 3 输出样例1 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 提示
时间: 2023-12-10 08:38:14 浏览: 115
如何用汇编语言编写月历显示程序
3星 · 编辑精心推荐
下面是一个Python的实现:
```python
days = int(input("请输入这个月的天数:"))
start = int(input("请输入该月起始日是星期几(1=Sun,7=Sat):"))
# 输出表头
print(" Mo Tu We Th Fr Sa Su")
# 计算第一行前面的空格数
first_row_spaces = (start - 1) * 3
# 输出第一行
row = " " * first_row_spaces
for day in range(1, 8 - start + 1):
row += f"{day:2d} "
print(row)
# 输出中间的完整行
for week in range(2, (days - 1) // 7 + 2):
row = ""
for day in range(1 + (week - 2) * 7 + 8 - start, week * 7 + 1 - start):
row += f"{day:2d} "
print(row)
# 输出最后一行
if days % 7 >= start:
row = ""
for day in range(days - days % 7 + 1 + start, days + 1):
row += f"{day:2d} "
print(row)
```
需要注意的是,输出时需要右对齐,所以需要使用`str.format()`或者f-string来进行格式化输出。另外需要注意的是,如果一个月的最后一行不满一周,那么不应该输出下一行。
阅读全文