1.整个 2020 世纪(1901 年 11 月 11 日至 2000 年 12 月 31 日之间),一共有多少个星期一?
from datetime import *
dt1 = datetime(1901, 1, 1)
dt2 = datetime(2000, 12, 31)
'''周一是0,周日是6'''
print(dt1.weekday()) #1 周二
print(dt2.weekday()) #6 周日
td = dt2 - dt1
print(td) #36524 days, 0:00:00
print(td.days // 7) #5217
去掉首尾两周是完整的5216周,其中包含一个星期一,所以是5217。
2.小明特别喜欢顺子。顺子指的就是连续的三个数字:123、456 等。顺子日期指的就是在日期的 yyyymmdd 表示法中,存在任意连续的三位数是一个顺子的日期。例如 20220123 就是一个顺子日期,因为它出现了一个顺子:123; 而 20221023 则不是一个顺子日期,它一个顺子也没有。小明想知道在整个 2022 年份中,一共有多少个顺子日期?
from datetime import *
dt1 = datetime(2022, 1, 1)
cnt = 0
for i in range(366):
'''%02d是将数字按宽度为2,采用右对齐方式输出,若数据位数不到2位,则左边补0'''
s = "%02d%02d%02d" % (dt1.year, dt1.month, dt1.day)
dt1 += timedelta(days=1)
if "012" in s or "123" in s or "234" in s or "345" in s or "456" in s or "567" in s or "678" in s or "789" in s:
cnt += 1
print(cnt)