编写函数,如果公元1800年1月1日是星期三,输入任意一日期(年月日),返回该日是星期几?(提示:要先统计出输入的日期距离1800年1月1日的总天数,再对7求余)
时间: 2023-05-12 15:02:41 浏览: 55
以下是函数的代码:
```python
def get_weekday(year, month, day):
days = 0
for y in range(1800, year):
if y % 4 == 0 and (y % 100 != 0 or y % 400 == 0):
days += 366
else:
days += 365
for m in range(1, month):
if m in [1, 3, 5, 7, 8, 10, 12]:
days += 31
elif m in [4, 6, 9, 11]:
days += 30
elif year % 4 == 0 and (year % 100 != 0 or year % 400 == 0):
days += 29
else:
days += 28
days += day - 1
return ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"][days % 7]
```
你可以将年、月、日作为参数传入该函数,它将返回该日期是星期几。
相关问题
编写python函数如果公元1800年为一月一号为星期三,那么任意一个日期的年月日输出这天是星期几
可以使用datetime模块中的weekday()方法来实现。
代码如下:
```python
import datetime
def get_weekday(year, month, day):
# 获取这一天的日期对象
date = datetime.date(year, month, day)
# 返回星期几(0表示星期一,6表示星期日)
return date.weekday() + 1 if date.weekday() != 6 else 0
```
函数接收三个参数:年、月、日。返回值为一个整数,表示这一天是星期几。其中,weekday()方法返回的是一个整数,表示星期几,0表示星期一,6表示星期日。因此,需要将这个值加1,并对7取余(如果是星期日,则返回0)。
编写函数,如果公元 1800 年 1 月 1 日是星期三,那么,传入任意一个日期的年、月、日,输出此 日期是星期几?
```python
def day_of_week(year, month, day):
# 计算公元1800年1月1日到传入日期的总天数
days = (year - 1800) * 365 + (year - 1801) // 4 - (year - 1701) // 100 + (year - 1601) // 400
days += sum([0,31,59,90,120,151,181,212,243,273,304,334][:month-1])
if month > 2 and ((year % 4 == 0 and year % 100 != 0) or year % 400 == 0):
days += 1
days += day - 1
# 计算星期几
return (days + 3) % 7
# 测试
print(day_of_week(2022, 11, 11)) # 输出 5,即星期五
```
解释:
公元1800年1月1日是星期三,所以我们可以根据传入日期与公元1800年1月1日的相差天数,来计算传入日期是星期几。
计算两个日期间相差的天数的公式为:
```
(days1 - days2) % 7
```
其中,days1是传入日期的天数,days2是公元1800年1月1日的天数(即3)。
具体计算相差天数的公式如下:
```
days = (year - 1800) * 365 + (year - 1801) // 4 - (year - 1701) // 100 + (year - 1601) // 400
days += sum([0,31,59,90,120,151,181,212,243,273,304,334][:month-1])
if month > 2 and ((year % 4 == 0 and year % 100 != 0) or year % 400 == 0):
days += 1
days += day - 1
```
其中,第一行计算了年份间的天数,第二行计算了月份间的天数,第三行判断了闰年的情况,最后一行加上了当月的天数。
相关推荐
![](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://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://csdnimg.cn/download_wenku/file_type_ask_c1.png)