【发布时间】:2020-12-02 15:25:47
【问题描述】:
我正在通过timew-report python 库计算存储在timewarrior 中的时间。
我正在计算时间,这是我能够做到的。而且我试图让总数在几个小时:分钟:秒内显示出来,而不是几天。
我的脚本....
#!/usr/bin/python
import sys
import datetime
from datetime import timedelta
from timewreport.parser import TimeWarriorParser #https://github.com/lauft/timew-report
parser = TimeWarriorParser(sys.stdin)
total = datetime.datetime(1, 1, 1, 0, 0)
for interval in parser.get_intervals():
duration = interval.get_duration()
print(duration)
total = total + duration
print(total)
...正常工作,返回:
0:01:09
0:06:03
7:00:00
0:12:52
20:00:00
0001-01-02 03:20:04
...但我不想显示0001-01-02 03:20:04,而是说27:20:04。
我如何让它变成这样的格式?
我是否采取了错误的方法来初始化 datetime.datetime(1, 1, 1, 0, 0) 这样的总数?
【问题讨论】:
-
我不熟悉
timewarrior,但您对持续时间而不是完整时间戳感兴趣,您可能希望使用datetime.timedelta对象而不是datetime.datetime。看起来您从时间戳开始并添加了一堆时间增量;为什么不直接将 timedeltas 相加得到一个 timedelta,然后获取total_seconds()并自己转换为 HH:MM:SS(进行算术运算)。 -
太棒了!你说得对,
datetime.timedelta就是我想要的!你能提供答案吗? -
好的,我已经完成了。
-
你是否有一个链接到(a git o)你实现的完整代码?我会感兴趣的。
-
@a.t.查看我刚刚发布的完整脚本的答案,享受:)
标签: python taskwarrior