技术解析

cron 表达式中,有办法表达每月最后两天吗?
0
2021-06-29 09:02:38
idczone

我知道每月最后一天是用 L 表示,例如:* * * L * ? 但每月最后两天,有没有办法用 cron 表达呢?搜索了一下没找到结果? 请大家指教。


不能分两条吗

L-1? 2L?

一共有 28/30/31 天三种情况,按月分开: https://stackoverflow.com/questions/23467466/run-first-and-last-3-days-of-the-every-month

Workaround: 设置成每天执行,然后在脚本上判断当前时间是不是这个月的最后两天。

还要考虑闰年吧。

倒数第二天 0 0 0 L-1 * ? *

分成两条,
倒数第一天:0 0 18 L * ?
倒数第二天:0 0 18 L-1 * ?

第一反应也是每天执行用脚本判断,还是别为难 crontab 比较好,

0 0 0 L-2 * ? *
https://www.freeformatter.com/cron-expression-generator-quartz.html
这么好用的工具安利一下

还不如每天执行一次,然脚本自己判断日期来做。

0 0 0 L-2 * ? *

这货就跟正则表达式一样,老是有刁民想一句代码搞定
数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服