题解:P11002 [蓝桥杯 2024 省 Python B] 神奇闹钟
Norsuman371 · · 题解
没有实际难度,就是转换比较恶心人。
思路
分快处理,就按照输入的两大块。
首先不论怎样都要求出两块的和,“动”指代的是是否输出运算的结果还是直接输出输入的数。所以先动后者,看减去前者对
yyyy-MM-dd HH:mm:ss
yyyy-MM-dd (HH:mm:ss)
yyyy-MM-(dd HH:mm:ss)
yyyy-(MM-dd HH:mm:ss)
(yyyy-MM-dd HH:mm:ss)
核心代码
没有难点,放一下第一大块的计算吧,第二块相对简单很多,只需要乘起来就行了,不用考虑闰年,故略。
f = 60#分
s1 = 3600#时
d1 = 84600$天
#以m开头的是月,具体指代乘号后面的便是天数
m1 = d1 * 28
m2 = d1 * 29
m3 = d1 * 30
m4 = d1 * 31
#年和四年
y = 31536000
y4 = 126230400 # 四年(考虑闰年)
for i in range(1, d[1] + 1):
if i == 2:
if d[0] + 1 % 4 == 0 and (d[0] % 100 != 0 or d[0] % 400 == 0):
cnt += m1
else:
cnt += m2
elif i == 4 or i == 6 or i == 9 or i == 11:
cnt += m3
else:
cnt += m4