蓝桥杯 关于时间函数的考点也比较多,我们应该将这些例题总结起来
1.模拟日期 星期几
导入python中的datetime包,来处理时间,调用data方法写入从什么时间到什么时间,在这些时间里面进行循环,其中weekday==6 是代表星期天,默认0为星期一 month 代表月份,day代表天,timedelta(1)让天数加一
from datetime import *
a=date(1949,10,1)
b=date(2012,10,1)
cnt=0
while a<=b:
if a.weekday()==6 and a.month==10 and a.day==1:
cnt+=1
a+=timedelta(1) #天数加一
print(cnt)
2.含2的天数
基本方法和上面一样
from datetime import *
a=date(1900,1,1)
b=date(9999,12,31)
cnt=0
while a<b:
if '2' in str(a):
cnt+=1
a+=timedelta(1)
print(cnt+1)
3.回文日期
输入转换
同样也是先导入时间datatime的包,在进行将字符串放到时间函数data中将其转换位时间
from datetime import *
n=input()
a=date(int(n[:4]),int(n[4:6]),int(n[6:]))
b=date(9999,10,31)
循环遍历
在通过循环进行将其在合格的范围内进行遍历,同时用timedelta 方法进行天数的增加 在外面用一个flag 进行对回文日期进行判断使其挑选出来小的回文日期。
flag=0
while a<=b:
a+=timedelta(1)
date=str(a).replace('-','')[:8] #去掉“-”
if date==date[::-1]: #判断是否是回文日期
if flag==0:
print(date)
flag=1
if date[0]==date[-1]==date[2]==date[-3] and date[1]==date[-2]==date[3]==date[-4]:
print(date)
break
4.时间显示
n=int(input())
c=n%24*60*60*1000
hour=c//(60*60*1000)
minu=(c%(60*60*1000))//(60*1000)
sec=(c%(60*1000))//1000
print('%02d'%hour,end=':')
print('%02d'%minu,end=':')
print('%02d'%sec,end='')