You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Emacs Org Mode中创建覆盖每月首日至首个周日的日记SEXP

实现Org Mode日记条目在每月1号到第一个周日显示

要实现这个需求,你需要自定义一个Elisp函数来判断日期是否处于目标区间,然后在日记里调用这个函数。具体步骤如下:

1. 定义日期判断函数

把下面的Elisp函数添加到你的Emacs配置文件(比如~/.emacs或~/.emacs.d/init.el)中:

(defun my-diary-first-day-to-first-sunday (year month day)
  "判断当前日期是否在当月1号到当月第一个周日之间(包含两端)。"
  (let* ((first-day-weekday (calendar-day-of-week (list month 1 year)))
         ;; calendar-day-of-week返回值:0=周日,1=周一,…,6=周六
         (first-sunday-day (if (= first-day-weekday 0)
                               1
                             (+ 1 (- 7 first-day-weekday)))))
    (<= 1 day first-sunday-day)))

函数逻辑说明:

  • 先获取当月1号对应的星期数
  • 如果1号本身就是周日,第一个周日就是1号;否则计算出当月第一个周日的日期(比如1号是周一,第一个周日就是7号)
  • 判断当前日期的日数是否落在1到第一个周日的日数范围内

2. 在Org日记中调用函数

在你的Org Mode日记文件里,添加这样的条目:

%%(my-diary-first-day-to-first-sunday) 这里写你要显示的内容,比如「月初第一周任务梳理」

添加完函数后,记得重启Emacs或者用M-x eval-buffer加载配置文件,让函数生效。

内容的提问来源于stack exchange,提问作者Clara Pastore

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 12:34:56