已知2023年5月4日是星期四,问n天后是星期几(n>=0)。程序输入n,输出“Monday”、“Tuesday”、“Wednesday”、“Thursday”、“Friday”、“Saturday”、“Sunday”
时间: 2023-09-10 22:12:51 浏览: 136
输入一个日期,可以计算出这个日期是星期几的C语言程序
3星 · 编辑精心推荐
可以使用基姆拉尔森计算公式来计算n天后是星期几。该公式是通过将年份、月份和日期转换为一个数值来计算的。
公式如下:
dayOfWeek = (day + 2 * month + 3 * (month + 1) / 5 + year + year / 4 - year / 100 + year / 400) % 7
其中,day 是给定日期的天数,month 是给定日期的月份(3月为1,4月为2,5月为3,以此类推),year 是给定日期的年份(例如,2023年为2023,2024年为2024)。
以下是一个Python程序实现:
```python
def day_of_week(n):
# 已知日期是星期四,因此day为4
day = 4
# 给定日期为2023年5月4日
year, month = 2023, 5
# 计算n天后的日期
day += n
month += (day - 1) // 31
day = (day - 1) % 31 + 1
year += month // 12
month = month % 12
# 计算星期几
if month < 3:
year -= 1
month += 12
dayOfWeek = (day + 2 * month + 3 * (month + 1) // 5 + year + year // 4 - year // 100 + year // 400) % 7
# 返回星期几的字符串
return ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"][dayOfWeek]
# 测试
print(day_of_week(0)) # 星期四
print(day_of_week(1)) # 星期五
print(day_of_week(7)) # 星期四
print(day_of_week(365)) # 星期五
print(day_of_week(10000)) # 星期四
```
输出结果为:
```
Thursday
Friday
Thursday
Friday
Thursday
```
阅读全文