请问这里需要生成 年份-第几周 的效果,例如:2023-26,该如何填写代码呢?
相关帖子
-
JeffreyChen • • 1
我花了几天时间查了各种文档、翻了链滴里的各种帖子,终于整明白了。
现在你只需要到
新建文档存放位置
后面这个框 1.把原来的代码都删掉,然后 2.把我在后面给的那段代码去掉小尾巴后完整复制粘贴到里面:{{ $before := (div (now.Sub (toDate "2006-01-02" "2023-01-01")).Hours 24)}} {{ $weekNumber := div $before 7 }} 2023-{{$weekNumber}}
(“2023”是固定的,到 2024 年需要手动修改一下)
如果复制的内容有小尾巴请手动删掉:(可以粘贴到代码块里改)
使用过程中有任何问题随时问我;
我只测试了今天,而今天使用没有问题,但如果周数计算有 BUG,随时找我改;
你看见回帖了及时回复我一下,好让我收到反馈。
(我现在差不多每天看一次链滴,如果有问题要找我得等一段时间才有回复)
1 回复 - 其他回帖
-
5Z4Uo6oGvKPB7o • • 1 评论
这个问题困扰了我好久,非常感谢你的帮助!
使用这串代码可以实现我的大部分需求。经过测试发现其中还有一点小问题,辛苦您看一下。
测试方向 实际时间、周数、第几周 显示结果 备注 当前的前一天 20230826,周六,35 2023-33 当前日期 20230827,周日,36 2023-34 当前后一天 20230828,周一,36 2023-34 今年头两天 20230101,周日,1 2023-0 20230102,周一,2 2023-0 今年第一周与第二周交接点 20230107,周六,2 2023-0 20230108,周日,2 2023-1 20230109,周一,3 2023-1 今年走最后一天 20231231,周日,53 2023-52 备注:第 2 列中的第几周,是以今年第一天(1 月 1 日)为第一周。如以第一个完整周为第一周,则周数往后推一位。例如:表中 20230826 为第 35 周,以完整周逻辑计算,则为第 34 周。
目前发现的问题:
- 今年前 7 天都是第 0 周,导致后面的周数出现错位。
- 代码展示结果以周日为每周的第一天。可能是因为今年第一天就是周日。一般逻辑上以周一为每周第一天(这个问题不大)
2 回复补充:另外测试中发现标题前面有两个空格。把 }} {{ 中间的空格删掉后,测试正常。 -
JeffreyChen • • 1 • 3 评论
好的,我小幅修改了代码,请你再测试一下。
{{ $before := (div (now.Sub (toDate "2006-01-02" "2023-01-02")).Hours 24)}}{{ $weekNumber := addf (div $before 7) 3 }}2023-{{$weekNumber}}
在这段代码中有以下改动:1.我将计算的第一天设为“2023-01-02”(即今年的第一个周一,算作第一周);2.纯手动增加了周数(3)我还没有想到怎么一劳永逸,因此每年都需要手动修改一次代码另外,日期为 20230101 时代码无效(因为时间已经过去了所以我觉得不需要管这一天),但如果你需要日期为 20230101 时代码仍然生效,我再发另一个代码给你 -
JeffreyChen • • 2 评论
这是日期为 20230101 时仍然生效的代码:
{{ $before := (div (now.Sub (toDate "2006-01-02" "2022-12-26")).Hours 24)}}{{ $weekNumber := addf (div $before 7) 2 }}2023-{{$weekNumber}}
在这段代码中有以下改动:1.我将计算的第一天设为“2022-12-26”(即去年的最后一个周一,算作第一周);2.纯手动增加了周数(2)通过对比这两段代码,你应该能理解到 2024 年时应该如何修改代码参数