今天来搞搞这个 relativedate,听起来就是跟日期有点关系的玩意儿。琢磨一番,发现这东西主要是用来算日子的,算算今天之前或者之后多少天的日子。
一开始我还以为是啥高级玩意儿,网上搜一圈 "relative date",发现这词儿意思就是“相对日期”,挺直白的。有些地方也叫“相对年代”,不过我这回实践主要还是关注日期的计算。
开搞
我记得以前好像在哪里见过类似的功能,好像是在 Python 里面?查一下,果然,Python 里面有相关的库可以干这个。不过这回我主要想试试在别的环境里能不能也实现类似的功能。
我先试着用我熟悉的工具打开一个项目,然后在里面找,看看有没有自带的类似功能。翻半天,在一个角落里找到一个叫 "Relative Date" 的函数,看起来就是它!把它拖到我的代码里,大概长这样:
=RELATIVE(DATE(LEFT(A1,4),MID(A1,5,2)...
看着有点晕,不过大概意思就是,从一个日期(比如 A1 格子里的日期)里取出年、月,然后再进行计算。
然后我继续研究,发现这东西的用法还挺简单的,基本语法就是 relative date(date, n)
。这里的 date
就是一个基准日期,n
就是要加减的天数,正数就是往后算,负数就是往前算。返回值就是一个新的日期。
我又去翻翻其他资料,看到有人用 Swift 语言在 iOS 开发中也用到类似的功能,可以显示“今天”、“昨天”、“明天”之类的。挺有意思,不过我这回用不上。
实践出真知
光说不练假把式,我得实际跑跑看。我随便弄个日期,比如 "20231026",然后用刚才找到的函数,设定 n 为 5,看看结果是
跑一下,结果出来,是 "20231031"。没毛病,10 月 26 号往后数 5 天,确实是 10 月 31 号。
我又试试 n 为 -5,结果是 "20231021"。也没问题,往前数 5 天,就是 10 月 21 号。
总结
relativedate 这东西还挺实用的,尤其是在需要处理日期计算的时候。虽然不同环境下的具体实现方式可能不一样,但基本原理都是一样的,就是根据一个基准日期,加上或者减去一定的天数,得到一个新的日期。这回实践也算是把这个知识点给搞明白,以后再遇到类似的需求,就不怕!