马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
众所周知,蓝桥杯有两道填空题,还特别喜欢考日期问题
什么?你还在使用计算器手算?
那你将会思量闰年、大小月等等细节到头昏眼花
最后还比答案大或小1
寄!
接下来我来告诉你正确的做法
根本知识
python自带datetime库帮你办理所有问题
- 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
话不多说,直接上三道真题
实战演练
2018 蓝桥杯省赛
- from datetime import date, timedelta
- t1 = date(2000, 1, 1)
- t2 = date(2000, 5, 4)
- print((t2 - t1).days + 1)
复制代码
2018 蓝桥杯省赛
- 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)
复制代码
2020 蓝桥杯国赛
注意:python的datetime模块支持的日期范围是0001-01-01到9999-12-31
- 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
*如果有更多问题或需要进一步的资助,可以在评论区留言讨论哦!
如果喜欢的话,请给博主点个关注 谢
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |