众所周知,蓝桥杯有两道填空题,还特别喜欢考日期问题
什么?你还在使用计算器手算?
那你将会考虑闰年、大小月等等细节到头昏眼花
最后还比答案大或小1
寄!
接下来我来告诉你正确的做法
基础知识
python自带datetime库帮你解决所有问题
python
from datetime import date, timedelta
t1 = date(2025, 3, 30)
t2 = date(2025, 3, 31)
print(t2 - t1) # 1 day, 0:00:00
print((t2 - t1).days) # 1
dt = timedelta(1)
print(t1 + dt) # 2025-03-31
print(t1.weekday()) # 0-6对应周一到周日
注意:python的datetime模块支持的日期范围是0001-01-01到9999-12-31
话不多说,直接上三道真题
实战演练
python
from datetime import date, timedelta
t1 = date(2000, 1, 1)
t2 = date(2000, 5, 4)
print((t2 - t1).days + 1)
python
from datetime import date, timedelta
t1 = date(1901, 1, 1)
t2 = date(2000, 12, 31)
dt = timedelta(1)
ans = 0
while t1 <= t2:
if t1.weekday() == 0:
ans += 1
t1 += dt
print(ans)
注意:python的datetime模块支持的日期范围是0001-01-01到9999-12-31
python
from datetime import date, timedelta
t1 = date(1900, 1, 1)
t2 = date(9999, 12, 31)
dt = timedelta(1)
ans = 1 # 9999-12-31 符合条件
while t1 < t2:
res = str(t1.year) + str(t1.month) + str(t1.day)
if '2' in res:
ans += 1
t1 += dt
print(ans)
END
*如果有更多问题或需要进一步的帮助,可以在评论区留言讨论哦!
如果喜欢的话,请给博主点个关注 谢