Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 计算给定日期列表的时间跨度_Python_Python 3.x - Fatal编程技术网

Python 计算给定日期列表的时间跨度

Python 计算给定日期列表的时间跨度,python,python-3.x,Python,Python 3.x,假设我有下面的列表,其中每个条目代表连续几天中的特定时间 time = ["09:17:28", "17:47:45", "01:43:12", "23:18:22", "05:34:34"] 假设我想计算从第一个事件到最后一个事件的时间跨度,或者如果我们想从时间[I]到时间[j]再概括一点,我如何才能有效地做到这一点 我尝试了蛮力方法,用split分割时间的每个元素:然后试图找出一种方法,在哪里添加必要的24/48/。。。几个小时,但我就是想不出一个像样的方法。我找到了一个类似问题的解决方案

假设我有下面的列表,其中每个条目代表连续几天中的特定时间

time = ["09:17:28", "17:47:45", "01:43:12", "23:18:22", "05:34:34"]
假设我想计算从第一个事件到最后一个事件的时间跨度,或者如果我们想从时间[I]到时间[j]再概括一点,我如何才能有效地做到这一点

我尝试了蛮力方法,用split分割时间的每个元素:然后试图找出一种方法,在哪里添加必要的24/48/。。。几个小时,但我就是想不出一个像样的方法。我找到了一个类似问题的解决方案,但我很难理解到底发生了什么

关于如何处理这个问题有什么建议吗

关于上面发布的解决方案:我确实理解函数to_time和diff_time的作用,但我不知道如果给出这两个时间的日期不同,人们会如何概括这一点

到目前为止,我所尝试的:

time = ["09:17:28", "17:47:45", '01:43:12', "23:18:22", "05:34:34"]
time_2 = []
for k in range(len(time)):
    time_2.append(time[k].split(":"))
    for j in range(len(time[k].split(":"))):
        time_2[k][j] = float(time_2[k][j])
time_2 = np.array(time_2) 

这给了我一个矩阵,其中time_2[:,0]是列表元素的不同小时数。。。我找不到一个算法,能够捕捉到哪个时间代表哪一天

如果您想检查经过的总时间,假设您的数据正在向前移动,您可以使用以下方法:

import datetime

times = ["09:17:28", "17:47:45", "01:43:12", "23:18:22", "05:34:34"]
converted = [datetime.datetime.strptime(i, '%H:%M:%S') for i in times]

a = [(k - j) if j < k else (k - j) + datetime.timedelta(1) for j, k in zip(converted, converted[1:])]

print(sum(a, datetime.timedelta()))
#1 day, 20:17:06

发布你尝试过的内容&它是如何失败的;解释您对链接到解决方案的理解。完成datetime软件包的教程。这让你可以用任何合理的格式计算时间,对时间做简单的算术运算,当然也包括了你在这篇文章中要做的事情。然后张贴你的具体问题。我遇到的困难对于堆栈溢出来说不够具体。@ScottHunter我编辑了问题并试图解释我的问题。@Prune谢谢你的建议。我将尝试看看我是否可以对datetime包做些什么。@Goyo我计算时间跨度的唯一想法是“更正”小时值。我的意思是在需要的地方添加24/48/…小时,然后将第一个和最后一个时间元素的子动作导入itertools