2023年第十四届蓝桥杯省赛真题Python研究生组.A:工作时长

问题描述

小蓝手里有一份 2022 年度自己的上班打卡记录文件,文件包含若干条打卡记录,每条记录的格式均为“yyyy-MM-dd HH:mm:ss”,即按照年-月-日 时:分:秒的形式记录着一个时间点(采用 24 小时进制)。由于某些原因,这份文件中的时间记录并不是按照打卡的时间顺序记录的,而是被打乱了。但我们保证小蓝每次上班和下班时都会正常打卡而且正好打卡一次,其它时候不会打卡。每一对相邻的上-下班打卡之间的时间就是小蓝本次的工作时长,例如文件内容如下的话:

2022-01-01 12:00:05
2022-01-02 00:20:05
2022-01-01 07:58:02
2022-01-01 16:01:35

表示文件中共包含了两段上下班记录,1)2022-01-01 07:58:02~2022-01-01 12:00:05,工作时长为 14523 秒;2)2022-01-01 16:01:35~ 2022-01-02 00:20:05,工作时长为 29910 秒;工作时长-共是 14523+29910 = 44433 秒。现在小蓝想知道在 2022 年度自己的工作时长一共是多少秒?

答案提交

这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

代码:

from datetime import datetime

time_str_list = []
with open('gongzuoshichang.txt', 'r') as f:  # 1.读入数据
    time_str_list = f.readlines()  # 读取每一行作为一个列表元素

# 因为读取的是列表,所以这里将每个元素(字符串)转换为 datetime 类型并放入 time_list 列表中
time_list = [datetime.strptime(t.strip(), '%Y-%m-%d %H:%M:%S') for t in time_str_list]

time_list.sort()  # 2.对数据进行排序
sum_seconds = 0
for i in range(0,len(time_list),2):    # 3.计算:上-下
    seconds = (time_list[i + 1] - time_list[i]).total_seconds()
    sum_seconds += seconds

print(int(sum_seconds))  # 4.打印总秒数```

你可能感兴趣的:(蓝桥杯,蓝桥杯,python,职场和发展)