Notion的ToDo已经有很多模板了,但如何合理地安排任务池中ToDoList的优先级,让工作自动按轻重缓急进行排序并推送,似乎还不够理想。
依照我们大多数人的工作习惯,简单任务提前一两天提醒,就可以了;重要的或者工作量较大的任务提前一两周,就比较合适;远期任务如年度计划什么的,拆分为多个小目标会更好。所以,更贴近实际工作习惯的提醒时间点为紧急任务的deadline当天或者前后两三天,重要任务提前一周或者大半个月,两个月之后的远期工作规划基本上是暂时不需要提醒的,超过deadline的工作如何老板仍在催要的,紧急程度肯定是要更上层楼的。
deadline剩余天数的计算很容易实现,Notion的dateBetween()函数可以轻松实现——
dateBetween(prop("Deadline"), now(), "days")
比较了多种函数之后,最终选择的是ln函数。我们已知:
ln(1)=0
ln(2)=0.6
ln(3)=1.1
ln(8)=2.1
ln(21)=3.0
ln(55)=4.0
ln(149)=5.0
……
通过自然对数的模拟,可以较好地拟合按工作紧急程度进行提醒的需求。
但测试中发现由于“ln(0)=∞”,所以会出现deadline当天报错的情形,因此特别地“+0.5”天,避免ln(0)的情形出现,令函数不再报错。最终任务随日期变化紧急程度的函数设置为——
if(prop("Deadline") < now(), 7, floor(5 - ln(abs(dateBetween(prop("Deadline"), now(), "days") + 0.5))))
引入ln函数后,根据deadline的逼近设计任务紧急程度基本可以拟合需求,然后再根据个人对任务的重视程度对任务的重要性进行赋值,就可以根据任务的重要性和紧迫程度进行优先级排序了。