![](https://video.ask-data.xyz/img.php?b=https://iknow-pic.cdn.bcebos.com/ae51f3deb48f8c54e1ecfcb628292df5e0fe7f6f?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto)
![](https://video.ask-data.xyz/img.php?b=https://iknow-pic.cdn.bcebos.com/95eef01f3a292df599fc958cae315c6034a8736f?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto)
![](https://video.ask-data.xyz/img.php?b=https://iknow-pic.cdn.bcebos.com/f11f3a292df5e0fee327b0984e6034a85edf726f?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto)
计算星期几的简单公式是蔡勒公式(Zeller's Congruence),公式如下:h = (q + [(13*(m+1))/5] + K + [K/4] + [J/4] - 2J) mod 7其中,h代表星期几(0为星期六,1为星期天,2为星期一,依此类推),q是日期(1到31的值),m是月份(3为3月,4为4月,依此类推,1月和2月看作上一年的13月和14月),K是年份的最后两位数,J是年份除以100后的整数部分。请注意,以上公式是基于格里高利历的,对于每月都有28天的情况(比如二月),需要特别处理。以下是Python示例代码:```pythondef calculate_weekday(day, month, year): if month == 1 or month == 2: month += 12 year -= 1 K = year % 100 J = year // 100 h = (day + ((13*(month+1))//5) + K + (K//4) + (J//4) - 2*J) % 7 # 星期几编号转换为实际星期几名称 weekdays = [\"Saturday\", \"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\"] return weekdays[h]# 示例使用day = 25month = 3year = 2022weekday = calculate_weekday(day, month, year)print(\"The date {}-{}-{} is {}\".format(year, month, day, weekday))```你可以根据需要自定义输入日期的`day`、`month`和`year`值,运行代码后即可得到日期的星期几。