题目

跑步锻炼

标签:填空题 2020 省赛

每天跑1km,逢周一或月初每天跑2km,若既是周一又是月初也只跑2km。计算从2000-1-1(含)到2020-10-1(含)共跑了多少千米。

代码

import datetime

start = datetime.date(2000, 1, 1)
end = datetime.date(2020, 10, 1)
days = datetime.timedelta(days=1)
ans = 0

while end >= start:
    if start.day == 1 or start.weekday() == 0:
        ans += 2
    else:
        ans += 1
    start += days
print(ans)

笔记

datetime.date(y, m, d) 可将日期转换为 datetime 对象。

print(datetime.date(2000, 1, 1))

# 输出结果
2000-01-01

datetime.timedelta() 表示时间间隔,该对象可用于 datetime 对象的和差运算(具体使用方法请查阅参考资料)。

start = datetime.date(2000, 1, 1)
delta = datetime.timedelta(days=2)
print(start - delta)

# 输出结果
1999-12-30

date.day 返回该日期中的日; date.weekday() 返回该日期是星期几,如果是星期一,返回 0 ,以此类推。

参考资料

Python datetime详解

datetime.timedelta()

datetime.timedelta类介绍