如何进行时间段统计

统计时长

希望能在待办任务中设一个开始时间,一个结束时间,用DATAVIEW统计出这一类任务共用了多长时间。
不明白的地方是:

  1. 在OB的正文中,用什么来表示时间。我知道在元数据中可以设时间,dataview能读取出来,不知道在正文中,或是待办任务中怎么设定时间(是需要像编程语言一样设定一个变量吗)。如果只写一个09:09,OB应该是把它当作字符串来处理的吧。

2.假如设定了时间变量,dataview是否就能读取出来,并进行计算,然后再按照任务分类,统计出这一类任务,在某一时间段一共用了多少时间?

1 个赞

看插件文档:

示例文本
- [ ] 任务 [created:: 2024-01-05T12:00]

```dataview
TABLE without ID file.tasks.completion, file.tasks.created
FROM "文件目录"
```
```dataview
TASK FROM "文件目录"
```
效果 GIF

是自动添加完成时间的,只是为了让它显示快点刷新了一下。

20240106_215808

相关设置

1 个赞

现在看到的例子多是关于日期的“2024-1-3”,类似这样的,没看到关于时间的更多的介绍,不太明白时间是怎么处理的。

旧帖存档,内容已合并至 #2

1 个赞

我出不来你动图的效果,请问:
1、我输入[created:: 2024-01-05 12:00],它就一直带着中括号而且是蓝色,你的动图中的completion闪了一下变成白色,没有了中括号,没有了两个冒号,是什么原因
2、我打开了Automatic Task Completion Tracking,但是点击任务完成后,它并不能自动出现completion。

我在“相关设置”第 2 个截图用红框表明了注意事项,请问是完全按照 GIF 操作,在 Dataview 插件汇总的 Task 点击任务完成的吗?

如果这是你输入的全部内容,而不是你放上来时渲染掉了什么,烦请看下我的示例文本。

1 个赞

按照你说的做可以了。
不过发现了自己思路上的问题,这种用结束时间减日期时间的做法,如果在一个笔记中出现多次同样的任务,还是没法统计。
改用持续时间dur来做了,dur可以多次出现,还可以求和,这样就能解决我的问题了。

多谢以上几位的回答。

请问最后是怎么实现的?

我之前也有这种诉求,没找到简单易用的,自己做了一个插件,可以看下我在这个帖子下面的回答,也可以关注下插件代码仓库看看实际效果,应该是你想要的
如何统计每天各种事情花费的时间
任务时间统计插件