0059 模糊周期事件-多插件

生活中有一些事情的周期是比较模糊的,比如我喜欢电费不足 50 元了就充 100,但是多久需要充下次是不确定的,一般是一个月左右。那大概一个月的时候我就应该查询一下余额,做到心里有数。

又比如换桶装水,一般不足七天。这个倒不是提醒我换水,只是想做个统计。

网费我一次缴一百,够用一个半月的,这时间不太规整,不利于记忆。

煤气费的情况和电费差不多。

……

反正就这类吧,有点周期性,但时间长度又比较模糊的记录。

我就弄了个文件,里面按着如下格式进行记录:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
## 电费

- 2022-10-24
- 2022-09-28

## 网费

- 2022-11-06

## 燃气费

- 2022-11-06

## 手机费

- 2022-10-31

## 桶装水

- 2022-11-16

我就是举例,你们理解就行。然后用 QuickAdd 设置更新时间的动作,就是在列表顶端插入一个新的日期。也挺简单的,就不讲了吧。

然后,在笔记入口中写了个查询,效果如下:

  • 电费: ==38 天前==
  • 网费: 25 天前
  • 燃气费: 25 天前
  • 手机费: ==31 天前==
  • 桶装水: 15 天前

可以很方便的看出上一次是什么时间。然后如果这个时间间隔超过了 30 天会高亮显示。

查询代码如下(dataviewjs 代码块):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
const itemsDate = {}
dv.page("Inbox/List/生活打卡日志").file.lists.forEach(l=>{
const section = l.section.subpath
if(itemsDate[section]) return
itemsDate[section] = dv.date('now')-dv.date(l.text)
})
const items = []
for(const section in itemsDate){
const days = Math.round(itemsDate[section] /864e5)
const durStr = days ? (
days>=30
? '=='+days+' 天前=='
: days+' 天前'
) : '一天内'
items.push(`**${section}**: ${durStr}`)
}
dv.list(items)

你是用的话,也只需要修改一下第二行的笔记路径。

因为文件里记录的是每一次的时间,所以日后想要进行复杂的查询也是完全可能的。

以及,我只是展示一种使用的可能性,没必要你也非得用来记录电费网费,记录女盆友发脾气的周期什么的也是可以的。