已知公元 1 年 1 月 1 日是星期一。编写一个程序,只要输入年月日,就能回答那天是星期几。
时间: 2024-02-28 16:52:52 浏览: 78
可以使用公式来计算某一天是星期几,具体步骤如下:
1. 计算该年到公元 1 年的天数,记为 yearDays。
2. 计算该月到 1 月的天数,记为 monthDays。
3. 计算该日是该年的第几天,记为 dayOfYear。
4. 计算星期几,公式为:(yearDays + monthDays + dayOfYear) % 7。
以下是一个 Python 的实现:
```python
def is_leap_year(year):
# 判断是否为闰年
return year % 4 == 0 and (year % 100 != 0 or year % 400 == 0)
def get_weekday(year, month, day):
# 计算该年到公元 1 年的天数
yearDays = (year - 1) * 365 + sum(is_leap_year(y) for y in range(1, year))
# 计算该月到 1 月的天数
monthDays = sum([31, 29 if is_leap_year(year) else 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][:month - 1])
# 计算该日是该年的第几天
dayOfYear = day
if month > 2 and is_leap_year(year):
dayOfYear += 1
# 计算星期几
weekday = (yearDays + monthDays + dayOfYear - 1) % 7 + 1
return weekday
# 测试
print(get_weekday(2021, 8, 12)) # 输出 4,即星期四
```
这个程序中,is_leap_year 函数用来判断是否为闰年,get_weekday 函数接受三个参数 year、month 和 day,返回对应的星期几。我们可以将输入的年月日作为参数传入 get_weekday 函数,得到对应的星期几。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://img-home.csdnimg.cn/images/20210720083327.png)
![-](https://img-home.csdnimg.cn/images/20210720083327.png)
![-](https://img-home.csdnimg.cn/images/20210720083327.png)
![-](https://img-home.csdnimg.cn/images/20210720083327.png)
![-](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![-](https://img-home.csdnimg.cn/images/20210720083327.png)
![-](https://img-home.csdnimg.cn/images/20210720083327.png)
![-](https://img-home.csdnimg.cn/images/20210720083327.png)
![-](https://img-home.csdnimg.cn/images/20210720083327.png)