但实际上2023.5.29是星期1,为什么会计算出一个错误的结果
时间: 2024-02-20 22:58:34 浏览: 83
非常抱歉,您是正确的。我在之前的回答中犯了一个错误。根据蔡勒公式计算,2023年5月29日应该是星期一,而不是星期二。感谢您的纠正。
下面是已经修正过的函数:
```python
def get_weekday(sysdt):
"""
蔡勒公式计算星期几
:param sysdt: 输入日期,格式为'yyyy-MM-dd'
:return: 返回值为星期几(0表示星期日,1表示星期一,以此类推)
"""
year, month, day = map(int, sysdt.split('-'))
if month == 1 or month == 2:
month += 12
year -= 1
K = year % 100
J = year // 100
q = day
m = month
h = (q + (13 * (m + 1) // 5) + K + (K // 4) + (J // 4) - 2 * J) % 7
return (h + 6) % 7 # 修正星期几的计算结果
```
修正后的函数在最后一行进行了修改,将计算结果加上了6,然后再对7取模,这样可以得到正确的星期几。现在,如果您输入日期“2023-05-29”,该函数将返回1,表示这是星期一。
阅读全文