如果已知某个月第一天是星期一,编写一个程序来接收用户输入该月1日至31日之间的任意一天作为日期,然后计算并输出这一天是星期几,格式应为‘今天是星期x’(x代表具体的星期几,如星期二)。
时间: 2024-12-04 11:28:32 浏览: 19
为了编写这个程序,我们可以采用一些基础的日期处理算法。首先,我们需要确定每个月的第一天是星期一,这将帮助我们推算出其他日子对应的星期几。一种常见的做法是利用模运算,因为一周有7天,所以通过日期减去第一天的差值对7取余,就能得到相应的一周中的哪一天。
下面是一个简单的Python示例,假设用户输入的是一个整数表示的日期:
```python
def day_of_week(day, month):
# 首先确认一个月的第一天是星期一
days_in_month = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] # 标准月份天数(非闰年)
if month == 2 and is_leap_year(): # 检查是否是闰年
days_in_month[1] = 29
# 确定本月第一天是星期几
first_day_of_month = (day - 1) % 7 + 1
# 计算所给日期相对于本月第一天的偏移量
offset = (day - 1) - first_day_of_month
# 返回所求星期几
return ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'][offset]
def is_leap_year():
# 判断是否为闰年,规则是公历年份能被4整除,但不能被100整除,或者能被400整除
return (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0)
# 用户输入月份和日期
month = int(input("请输入月份(1-12): "))
day = int(input("请输入日期(1-{}): ".format(days_in_month[month - 1])))
# 计算并输出结果
result = "今天是星期{}".format(day_of_week(day, month))
print(result)
#
阅读全文