我正在尝试使用taskwarrior跟踪时间以进行结算。
为此,我试图生成一份报告,显示每个任务花费的时间。标准的已完成报告提供了创建日期和完成日期,但未提供时间,因此我看不到该任务花费了多少小时。
$ task completed project:test
ID UUID Created Completed Age Project Description
- fed3daca 2019-09-29 2019-09-29 10min test test1
- 31a8f13e 2019-09-29 2019-09-29 1min test test2
2 tasks
这是任务战士可以做的吗? 谢谢
答案 0 :(得分:2)
我不认为taskwarrior可以自己创建那些报告,但是您可以使用timewarrior来完成。
设置时间战士后,将跟踪在任务上花费的时间。 示例:
➜ ~ task add reply on stack overflow
Created task 341.
➜ ~ task start 341
Starting task 81b73133 'reply on stack overflow'.
Started 1 task.
Tracking "reply on stack overflow"
Started 2020-04-10T12:07:58
Current 59
Total 0:00:01
➜ ~ task 341 done
Completed task 81b73133 'reply on stack overflow'.
Completed 1 task.
Recorded "reply on stack overflow"
Started 2020-04-10T12:07:58
Ended 09:12
Total 0:01:14
默认情况下,您会看到您在任务上花费了多少时间。如果您多次启动和停止任务,或者想查看花费在项目或带有特定标签的任务上的时间,则可以直接查询timewarrior:
➜ ~ timew summary 'reply on stack overflow'
Wk Date Day Tags Start End Time Total
W15 2020-04-10 Fri reply on stack overflow 12:07:58 12:09:12 0:01:14 0:01:14
0:01:14
这显示了您今天在该任务上花费的时间。您还可以指定一个时间间隔,以查看要花费在任务/项目/标签上的总时间。 示例:
➜ ~ timew summary 2020-01-01 - tomorrow 'reply on stack overflow'
Wk Date Day Tags Start End Time Total
W15 2020-04-10 Fri reply on stack overflow 12:07:58 12:09:12 0:01:14 0:01:14
0:01:14
要查看您在项目test
上花费了多少时间,可以运行:
timew summary 2018-01-01 - tomorrow test
这还将包括名为“ test”的任务和带有标签test
的任务。
答案 1 :(得分:0)
正如 Tom Dörr 所提到的,使用 timewarrior 来按标签进行总结。
这是我的做法:
timew tags :week
timew tags :week | tail -n+4
timew tags :week | tail -n+4 | awk 'BEGIN {FS="-"}; {print $1}'
这会生成所选日期范围的标签列表,每个标签在一行中。现在您可以使用脚本(例如 summarize.sh
)来循环遍历这些标签以进行总结:
#!/bin/bash
while read TAG; do
[ "${TAG}" = "" ] && continue
timew summary :week "${TAG}"
done < <(timew tags :week | tail -n+4 | awk 'BEGIN {FS="-"}; {print $1}')
这样您也可以处理包含空格的标签。
至少,在 shell/bash 中运行一个循环来永久更新,例如每秒更新一次:
while :; do clear; date; ./summarize.sh; sleep 1; done