2023年4月25日是星期二,任意输入某年某月某日,输出这一天是星期几(不能使用与时间日期相关的内置库及第三方库函数) 【输入形式】2023 4 28 【输出形式】星期五
时间: 2023-06-23 13:09:27 浏览: 197
我们可以使用基姆拉尔森计算公式来计算某一天是星期几。这个公式的原理是将年月日拆分成相应的数字,然后带入公式进行计算。具体步骤如下:
1.将输入的年月日转换成数字,例如输入的2023年4月28日,对应数字分别为y=2023,m=4,d=28。
2.将月份换算成对应的数值,例如1月对应着13,2月对应着14,3月对应着3,4月对应着4,以此类推。如果是闰年的二月,则对应的数值为13,否则为14。例如输入的4月,对应着数值m=4。
3.将年份的后两位数和前两位数分别除以4,得到的商分别记为a和b,然后将a和b相加,再加上当年的年份数字y和月份对应的数值m,最后加上当天的日期数字d,得到的和记为x。
4.将x除以7,得到的余数对应的数字即为星期几。余数为0则表示是星期天,余数为1则表示是星期一,以此类推,余数为6则表示是星期六。
根据上述步骤,我们可以编写如下的Python程序来实现日期与星期的转换:
```python
year, month, day = map(int, input().split())
# 将月份转换为相应的值,闰年的2月对应的值为13,否则为14
if month == 1 or month == 2:
month += 12
year -= 1
if year % 4 == 0 and year % 100 != 0 or year % 400 == 0:
t = [0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4]
else:
t = [0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4]
# 计算基姆拉尔森公式中的值
x = (year + year // 4 - year // 100 + year // 400 + t[month - 1] + day) % 7
# 输出对应的星期
if x == 0:
print("星期天")
elif x == 1:
print("星期一")
elif x == 2:
print("星期二")
elif x == 3:
print("星期三")
elif x == 4:
print("星期四")
elif x == 5:
print("星期五")
else:
print("星期六")
```
例如,如果输入2023 4 28,则输出“星期五”。
阅读全文