模板列代码分享【新】

本贴最后更新于 662 天前,其中的信息可能已经时异事殊

前几天分享了模板列代码,一是有网友 @83453 提了新的需求,二是上次的代码本身有点小 bug(比如天数少 1 那个),所以重新发一下。
如果遇到 bug 随时和我说,我再改进。
另外有其他需求的话也可以和我说~

总体效果如下:

image.png

  1. 建立 1 个“日期”类型的列,命名为“截止日期”。1 个“勾选框”类型的列,命名为“状态”。4 个“模板”类型的列,分别命名为“分组”,“周”,“距今”和“图标”。

  2. “分组”列代码

    .action{$deadline:= index . "截止日期" } .action{$state := index . "状态"} .action{$today:= (now | date "2006-01-02")} .action{$nowdate:=(toDate "2006-01-02" $today)} .action{$delta :=(div ($deadline.Sub $nowdate).Hours 24)} .action{$thisweek := (sub 7 (mod (div ($nowdate.Sub (toDate "2006-01-02" "2021-06-28")).Hours 24) 7) )} .action{$nextweek := (sub 14 (mod (div ($nowdate.Sub (toDate "2006-01-02" "2021-06-28")).Hours 24) 7) )} .action{$deltayear:=(sub ($deadline | date "2006") (now | date "2006"))} .action{$deltamonth:= (sub ($deadline | date "01") (now | date "01"))} .action{if eq $state "√"} 🥳完成 .action{else} .action{if empty $deadline} O 待定 .action{else if lt $delta 0} ❗过期 .action{else if eq $delta 0} ❤今天 .action{else if eq $delta 1} 🔴明天 .action{else if lt $delta $thisweek} 🟠本周 .action{else if lt $delta $nextweek} 🟡下周 .action{else if and (eq $deltayear 0) (eq $deltamonth 0)} 🟣本月 .action{else if and (eq $deltayear 0) (eq $deltamonth 1)} 🟢下月 .action{else} ⚪以后 .action{end} .action{end}
  3. “周”列代码

    .action{$deadline:= index . "截止日期" } .action{$ng_week := (mod (div ($deadline.Sub (toDate "2006-01-02" "2021-06-28")).Hours 24) 7) } .action{if empty $deadline} .action{else if eq $ng_week 0} 周一 .action{else if eq $ng_week 1} 周二 .action{else if eq $ng_week 2} 周三 .action{else if eq $ng_week 3} 周四 .action{else if eq $ng_week 4} 周五 .action{else if eq $ng_week 5} 周六 .action{else if eq $ng_week 6} 周日 .action{end}
  4. “距今”列代码

    .action{$state := index . "状态"} .action{$deadline:= index . "截止日期" } .action{$today:= (now | date "2006-01-02")} .action{$nowdate:=(toDate "2006-01-02" $today)} .action{$delta :=(div ($deadline.Sub $nowdate).Hours 24)} .action{if eq $state "√"} 完成 .action{else} .action{if empty $deadline} .action{else if lt $delta 8} .action{$delta} 天 .action{else if lt $delta 32} .action{$delta_week :=(div ($deadline.Sub $nowdate).Hours 168)} .action{$delta_day :=div (sub ($deadline.Sub $nowdate).Hours (mul $delta_week 168) ) 24} .action{$delta_week} 周 .action{$delta_day} 天 .action{else if lt $delta 365} .action{$delta_month :=(div ($deadline.Sub $nowdate).Hours 720)} .action{$delta_day :=div (sub ($deadline.Sub $nowdate).Hours (mul $delta_month 720) ) 24} .action{$delta_month} 月 .action{$delta_day} 天 .action{else} .action{$delta_year :=(div ($deadline.Sub $nowdate).Hours 8760)} .action{$delta_month :=div (sub ($deadline.Sub $nowdate).Hours (mul $delta_year 8760) ) 720} .action{$delta_year} 年 .action{$delta_month} 月 .action{end} .action{end}
  5. “图标”列代码

    .action{$deadline:= index . "截止日期" } .action{$now_date := now} .action{$delta :=(div ($deadline.Sub $now_date).Hours 24)} .action{$state := index . "状态"} .action{if eq $state "√"} 🥳 .action{else} .action{if empty $deadline} .action{else if lt $delta 0} 🤡 .action{else if lt $delta 7} ❤ .action{else if lt $delta 28} 🔔 .action{else} 🟢 .action{end} .action{end}
  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    27804 引用 • 116584 回帖 • 1 关注
3 操作
Liuzn 在 2024-01-10 20:16:40 更新了该帖
Liuzn 在 2024-01-10 18:56:47 更新了该帖
Liuzn 在 2024-01-10 18:54:59 更新了该帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • pakeh2866

    感谢分享

  • sweesalt

    好用 👍

  • snsmqing

    请问,这代码填在数据库哪儿?没发现编辑代码的地方。还有,这教学帖子能收藏吗,找一圈没找着。

    1 回复
    1. 放在模板列:image.png
    2. 收藏在:
      image.png
    厉害,能不能做列和列计算?
    lv37
    @lv37 这就是列计算,你按照代码里的样子,把两个列的值分别赋给一个变量,然后按照相关的语法相加减就可以
    Liuzn
  • 感谢大佬分享,顶一顶

  • 建议抄送一份到知乎

  • HoollyFox 1 2 赞同 via macOS

    关于显示星期几 可以用思源笔记内置函数

    .action{ $today := .日期 | toString | toDate "2006-01-02" | WeekdayCN} 星期.action{ $today }
  • colapy

    这是真有用

  • museum 1 评论 via macOS

    大佬能否帮忙看一下我这个问题呢?

    v3.0.9 数据库获取列数据的问题

    给你回复了,按照回复那样改一下就可以
    Liuzn
  • 感谢分享

  • wobuzhidao 1 评论

    农历怎么弄的

    农历还不会哦
    Liuzn
  • Lunawan via macOS

    好用

    image.png

  • 775991884

    学到了,感谢大佬分享 😄

  • sweesalt

    下面这里应该显示为“下月”,为什么显示“以后”了,帮看看代码有什么问题吗?谢谢!

    image.png

    模板列代码:

    .action{$state := index . "状态"} .action{$today:= (now | date "2006-01-02")} .action{$nowdate:=(toDate "2006-01-02" $today)} .action{$delta :=(div ($deadline.Sub $nowdate).Hours 24)} .action{$thisweek := (sub 7 (mod (div ($nowdate.Sub (toDate "2006-01-02" "2021-06-28")).Hours 24) 7) )} .action{$nextweek := (sub 14 (mod (div ($nowdate.Sub (toDate "2006-01-02" "2021-06-28")).Hours 24) 7) )} .action{$deltayear:=(sub ($deadline | date "2006") (now | date "2006"))} .action{$deltamonth:= (sub ($deadline | date "01") (now | date "01"))} .action{if eq $state "√"} 😀 完成 .action{else} .action{if empty $deadline} 🔘 待定 .action{else if lt $delta 0} ❗❗ 过期 .action{else if eq $delta 0} ❤ 今天 .action{else if eq $delta 1} 🔴 明天 .action{else if lt $delta $thisweek} 🟠 本周 .action{else if lt $delta $nextweek} 🟡 下周 .action{else if and (eq $deltayear 0) (eq $deltamonth 0)} 🟣 本月 .action{else if and (eq $deltayear 0) (eq $deltamonth 1)} 🟢 下月 .action{else} 🔵 以后 .action{end} .action{end}

    @Liuzn

    1 回复
  • Liuzn via macOS
    作者

    代码貌似没问题,估计是 bug?向作者问一下

    1 回复
  • sweesalt

    用的就是你这个帖子上的代码,你不是作者吗?

    1 回复
  • Liuzn
    作者

    我是说思源笔记的作者。。。

    模板列计算错误反馈 - 88250 的回帖 - 链滴

    是有点问题,需要把字符转变成数字才可以,明天有空再说吧

    1 回复
  • sweesalt

    好的,麻烦抽空帮看看

请输入回帖内容 ...

推荐标签 标签

  • Caddy

    Caddy 是一款默认自动启用 HTTPS 的 HTTP/2 Web 服务器。

    10 引用 • 54 回帖 • 174 关注
  • 反馈

    Communication channel for makers and users.

    120 引用 • 906 回帖 • 295 关注
  • 锤子科技

    锤子科技(Smartisan)成立于 2012 年 5 月,是一家制造移动互联网终端设备的公司,公司的使命是用完美主义的工匠精神,打造用户体验一流的数码消费类产品(智能手机为主),改善人们的生活质量。

    4 引用 • 31 回帖
  • ReactiveX

    ReactiveX 是一个专注于异步编程与控制可观察数据(或者事件)流的 API。它组合了观察者模式,迭代器模式和函数式编程的优秀思想。

    1 引用 • 2 回帖 • 191 关注
  • 代码片段

    代码片段分为 CSS 与 JS 两种代码,添加在 [设置 - 外观 - 代码片段] 中,这些代码会在思源笔记加载时自动执行,用于改善笔记的样式或功能。

    用户在该标签下分享代码片段时需在帖子标题前添加 [css] [js] 用于区分代码片段类型。

    268 引用 • 1941 回帖 • 1 关注
  • OpenResty

    OpenResty 是一个基于 NGINX 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。

    17 引用 • 52 关注
  • API

    应用程序编程接口(Application Programming Interface)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。

    79 引用 • 431 回帖
  • jsDelivr

    jsDelivr 是一个开源的 CDN 服务,可为 npm 包、GitHub 仓库提供免费、快速并且可靠的全球 CDN 加速服务。

    5 引用 • 31 回帖 • 119 关注
  • wolai

    我来 wolai:不仅仅是未来的云端笔记!

    2 引用 • 14 回帖
  • WebSocket

    WebSocket 是 HTML5 中定义的一种新协议,它实现了浏览器与服务器之间的全双工通信(full-duplex)。

    48 引用 • 206 回帖 • 284 关注
  • 星云链

    星云链是一个开源公链,业内简单的将其称为区块链上的谷歌。其实它不仅仅是区块链搜索引擎,一个公链的所有功能,它基本都有,比如你可以用它来开发部署你的去中心化的 APP,你可以在上面编写智能合约,发送交易等等。3 分钟快速接入星云链 (NAS) 测试网

    3 引用 • 16 回帖 • 4 关注
  • Solo

    Solo 是一款小而美的开源博客系统,专为程序员设计。Solo 有着非常活跃的社区,可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动(具体细节请浏览 B3log 构思 - 分布式社区网络)。

    这是一种全新的网络社区体验,让热爱记录和分享的你不再感到孤单!

    1447 引用 • 10086 回帖 • 492 关注
  • Telegram

    Telegram 是一个非盈利性、基于云端的即时消息服务。它提供了支持各大操作系统平台的开源的客户端,也提供了很多强大的 APIs 给开发者创建自己的客户端和机器人。

    5 引用 • 35 回帖
  • 房星科技

    房星网,我们不和没有钱的程序员谈理想,我们要让程序员又有理想又有钱。我们有雄厚的房地产行业线下资源,遍布昆明全城的 100 家门店、四千地产经纪人是我们坚实的后盾。

    6 引用 • 141 回帖 • 620 关注
  • Markdown

    Markdown 是一种轻量级标记语言,用户可使用纯文本编辑器来排版文档,最终通过 Markdown 引擎将文档转换为所需格式(比如 HTML、PDF 等)。

    173 引用 • 1558 回帖
  • 招聘

    哪里都缺人,哪里都不缺人。

    188 引用 • 1057 回帖
  • Google

    Google(Google Inc.,NASDAQ:GOOG)是一家美国上市公司(公有股份公司),于 1998 年 9 月 7 日以私有股份公司的形式创立,设计并管理一个互联网搜索引擎。Google 公司的总部称作“Googleplex”,它位于加利福尼亚山景城。Google 目前被公认为是全球规模最大的搜索引擎,它提供了简单易用的免费服务。不作恶(Don't be evil)是谷歌公司的一项非正式的公司口号。

    51 引用 • 200 回帖
  • 微信

    腾讯公司 2011 年 1 月 21 日推出的一款手机通讯软件。用户可以通过摇一摇、搜索号码、扫描二维码等添加好友和关注公众平台,同时可以将自己看到的精彩内容分享到微信朋友圈。

    135 引用 • 798 回帖
  • PHP

    PHP(Hypertext Preprocessor)是一种开源脚本语言。语法吸收了 C 语言、 Java 和 Perl 的特点,主要适用于 Web 开发领域,据说是世界上最好的编程语言。

    167 引用 • 408 回帖 • 490 关注
  • Flume

    Flume 是一套分布式的、可靠的,可用于有效地收集、聚合和搬运大量日志数据的服务架构。

    9 引用 • 6 回帖 • 674 关注
  • 外包

    有空闲时间是接外包好呢还是学习好呢?

    26 引用 • 234 回帖
  • ActiveMQ

    ActiveMQ 是 Apache 旗下的一款开源消息总线系统,它完整实现了 JMS 规范,是一个企业级的消息中间件。

    19 引用 • 13 回帖 • 703 关注
  • SMTP

    SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP 协议属于 TCP/IP 协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。

    4 引用 • 18 回帖 • 657 关注
  • OpenCV
    15 引用 • 36 回帖 • 5 关注
  • 服务

    提供一个服务绝不仅仅是简单的把硬件和软件累加在一起,它包括了服务的可靠性、服务的标准化、以及对服务的监控、维护、技术支持等。

    41 引用 • 24 回帖
  • 钉钉

    钉钉,专为中国企业打造的免费沟通协同多端平台, 阿里巴巴出品。

    15 引用 • 67 回帖 • 247 关注
  • Elasticsearch

    Elasticsearch 是一个基于 Lucene 的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful 接口。Elasticsearch 是用 Java 开发的,并作为 Apache 许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

    117 引用 • 99 回帖 • 201 关注