如何统计每天各种事情花费的时间

06:06-07:29事件1
07:06-09:36事件2
11:05-13:59事件3
21:06-21:53事件4
22:09-01:36事件5
前面的为开始时间,后面的为结束时间,怎样在输入这两个时间后自动在后面生成所花费时间呢,就像06:06-07:29,1h23m,事件1这样,templaterjs?dataviewjs?

供参考:

计算可以在 Dataview 汇总时计算。或者再研究一下。

1 个赞

代码对我来说还是太复杂了,dataview好像不能搜索特定文本内容吧。但我找到了一个TimeDiff的插件,勉强够用了

1 个赞

你的这个诉求跟我的100%契合,关于这个功能我也找了很久,最后自己开发了一个插件实现了,由于是第一次开发插件,还不会发布到插件中心,现在介绍下插件

地址:

odayou/obsidian-task-processing-extension (github.com)

功能

  1. 命令插入计算事项花费时间的块(会查找当前文档的待办进行计算)
  2. 命令插入待办/已办事项
  3. 命令插入当前的时刻

使用方式

在编辑视图下,在具有任务(标准task格式)、花费时刻的文档中,调用命令time total, 即可在光标出插入任务的计算结果,分别列出每个任务的花费及总花费

演示

  • 计算既有任务的时间
    任务耗时统计演示
  • 几个快捷命令演示
    由于第一个回帖只能插入一条媒体,演示图可以看代码仓库 screen文件夹下的

局限及注意

  • 无法自动实时计算,一方面我没研究出来怎么做,另一方面我觉得时间统计无非就是在想知道的时候触发一下统计,自动计算这些可能属于过渡设计,或者性价比不高的特性
  • 第一次开发插件,我目前知道命令只能在编辑视图下插文档内容,预览模式下我还没研究过
  • 我设计的功能是:从文档中匹配出待办并计算汇总时间,也就是只能匹配 - [ ] - [X] - [x]这种开头的任务,计算指定格式的时刻,包括任务的位置,花费的位置请按照我演示图中进行,你可以按照自己的诉求的匹配格式改下匹配部分的代码,不难
  • 如果未来有业余时间改造方向有两点:1. 功能1多次执行会重复插入,将来做成替换 2. 可能交互形式重新设计,比如做成菜单后者自动实时计算的功能 3.可以计算跨日期的时间插
  • 注意:如果不改动代码一定要按照我预设的格式记录时间否则会出现计算错误的情况,如 任务名中间不要有空格、任务名和时间中间要有空格、时间格式必须是时刻等,我在下面贴出我的待办数据,自己细品下格式
- [ ] task1 10:21-10:30
	- [ ] task1-1 09:00-10:00  13:00-14:00
	- [ ] task1-2  15:00-16:10  17:00-18:20
- [x] task2 16:10-17:00
	- [ ] tast2-2 10:00-13:00 19:00-20:20

厉害了大佬 :+1:,感谢你的插件,应该会很好用

还行,我已经用起来了,至少能满足诉求,还利用commander添加了右键菜单
image

目前插件已经发布到应用中心,搜索TimeSaver即可安装(obsidian://show-plugin?id=time-saver)