模板列代码分享【新】

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

前几天分享了模板列代码,一是有网友 @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}
    
  • 思源笔记

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

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

    21291 引用 • 83994 回帖
3 操作
Liuzn 在 2024-01-10 20:16:40 更新了该帖
Liuzn 在 2024-01-10 18:56:47 更新了该帖
Liuzn 在 2024-01-10 18:54:59 更新了该帖

相关帖子

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...
  • HoollyFox 1 2 赞同

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

    .action{ $today := .日期 | toString | toDate "2006-01-02" | WeekdayCN}
    星期.action{ $today }
    
  • 其他回帖
  • JeffreyChen 1 2 评论
    1. 放在模板列:image.png
    2. 收藏在:
      image.png
    厉害,能不能做列和列计算?
    lv37
    @lv37 这就是列计算,你按照代码里的样子,把两个列的值分别赋给一个变量,然后按照相关的语法相加减就可以
    Liuzn
  • 775991884

    学到了,感谢大佬分享 😄

  • wobuzhidao 1 评论

    农历怎么弄的

    农历还不会哦
    Liuzn
  • 查看全部回帖

推荐标签 标签

  • 书籍

    宋真宗赵恒曾经说过:“书中自有黄金屋,书中自有颜如玉。”

    77 引用 • 390 回帖
  • 外包

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

    26 引用 • 232 回帖 • 2 关注
  • iOS

    iOS 是由苹果公司开发的移动操作系统,最早于 2007 年 1 月 9 日的 Macworld 大会上公布这个系统,最初是设计给 iPhone 使用的,后来陆续套用到 iPod touch、iPad 以及 Apple TV 等产品上。iOS 与苹果的 Mac OS X 操作系统一样,属于类 Unix 的商业操作系统。

    84 引用 • 139 回帖
  • Google

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

    49 引用 • 192 回帖
  • 数据库

    据说 99% 的性能瓶颈都在数据库。

    336 引用 • 669 回帖
  • 阿里云

    阿里云是阿里巴巴集团旗下公司,是全球领先的云计算及人工智能科技公司。提供云服务器、云数据库、云安全等云计算服务,以及大数据、人工智能服务、精准定制基于场景的行业解决方案。

    89 引用 • 345 回帖
  • 酷鸟浏览器

    安全 · 稳定 · 快速
    为跨境从业人员提供专业的跨境浏览器

    3 引用 • 59 回帖 • 35 关注
  • TextBundle

    TextBundle 文件格式旨在应用程序之间交换 Markdown 或 Fountain 之类的纯文本文件时,提供更无缝的用户体验。

    1 引用 • 2 回帖 • 47 关注
  • FreeMarker

    FreeMarker 是一款好用且功能强大的 Java 模版引擎。

    23 引用 • 20 回帖 • 454 关注
  • CAP

    CAP 指的是在一个分布式系统中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可兼得。

    11 引用 • 5 回帖 • 597 关注
  • 禅道

    禅道是一款国产的开源项目管理软件,她的核心管理思想基于敏捷方法 scrum,内置了产品管理和项目管理,同时又根据国内研发现状补充了测试管理、计划管理、发布管理、文档管理、事务管理等功能,在一个软件中就可以将软件研发中的需求、任务、bug、用例、计划、发布等要素有序的跟踪管理起来,完整地覆盖了项目管理的核心流程。

    6 引用 • 15 回帖 • 146 关注
  • OpenStack

    OpenStack 是一个云操作系统,通过数据中心可控制大型的计算、存储、网络等资源池。所有的管理通过前端界面管理员就可以完成,同样也可以通过 Web 接口让最终用户部署资源。

    10 引用 • 1 关注
  • jsDelivr

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

    5 引用 • 31 回帖 • 50 关注
  • 代码片段

    代码片段是一段 CSS 或 JS 的代码,这些代码会在思源笔记加载时自动执行,用于改善笔记的样式或功能。

    用户在分享内容时请在帖子标题前添加 [css][js] 作为标签

    15 引用 • 84 回帖 • 1 关注
  • Solo

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

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

    1433 引用 • 10052 回帖 • 486 关注
  • jQuery

    jQuery 是一套跨浏览器的 JavaScript 库,强化 HTML 与 JavaScript 之间的操作。由 John Resig 在 2006 年 1 月的 BarCamp NYC 上释出第一个版本。全球约有 28% 的网站使用 jQuery,是非常受欢迎的 JavaScript 库。

    63 引用 • 134 回帖 • 726 关注
  • 钉钉

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

    15 引用 • 67 回帖 • 346 关注
  • 域名

    域名(Domain Name),简称域名、网域,是由一串用点分隔的名字组成的 Internet 上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。

    43 引用 • 208 回帖
  • Vditor

    Vditor 是一款浏览器端的 Markdown 编辑器,支持所见即所得、即时渲染(类似 Typora)和分屏预览模式。它使用 TypeScript 实现,支持原生 JavaScript、Vue、React 和 Angular。

    345 引用 • 1778 回帖
  • Redis

    Redis 是一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API。从 2010 年 3 月 15 日起,Redis 的开发工作由 VMware 主持。从 2013 年 5 月开始,Redis 的开发由 Pivotal 赞助。

    286 引用 • 248 回帖 • 95 关注
  • FlowUs

    FlowUs.息流 个人及团队的新一代生产力工具。

    让复杂的信息管理更轻松、自由、充满创意。

    1 引用 • 3 关注
  • ngrok

    ngrok 是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道。

    7 引用 • 63 回帖 • 625 关注
  • 小说

    小说是以刻画人物形象为中心,通过完整的故事情节和环境描写来反映社会生活的文学体裁。

    28 引用 • 108 回帖
  • H2

    H2 是一个开源的嵌入式数据库引擎,采用 Java 语言编写,不受平台的限制,同时 H2 提供了一个十分方便的 web 控制台用于操作和管理数据库内容。H2 还提供兼容模式,可以兼容一些主流的数据库,因此采用 H2 作为开发期的数据库非常方便。

    11 引用 • 54 回帖 • 656 关注
  • Hibernate

    Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了非常轻量级的对象封装,使得 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。

    39 引用 • 103 回帖 • 714 关注
  • CSS

    CSS(Cascading Style Sheet)“层叠样式表”是用于控制网页样式并允许将样式信息与网页内容分离的一种标记性语言。

    196 引用 • 530 回帖
  • 创造

    你创造的作品可能会帮助到很多人,如果是开源项目的话就更赞了!

    175 引用 • 994 回帖