有啥东西可以代表像“每个月的第一个星期一”这样的时期吗?
Posted
技术标签:
【中文标题】有啥东西可以代表像“每个月的第一个星期一”这样的时期吗?【英文标题】:Is there something to represent a period like"first monday of every month" like cron?有什么东西可以代表像“每个月的第一个星期一”这样的时期吗? 【发布时间】:2021-11-30 21:38:25 【问题描述】:我有一个应用程序,用户可以在其中创建重复性任务,例如“每 2 周”或“每个月的第一个星期一”
我尝试使用 CRON 格式表示这些时间段并计算下一次执行时间,但我搜索了它们,如果没有更多脚本,它们无法用 CRON 表示。
我不知道是不是因为我不是英语母语,也不知道合适的关键字,但我找不到现有的解决方案。
这个“句号”应该存储一个字符串,如果可能的话,有现有的 js 和 java 库来创建它并生成下一个日期时间。
如果什么都不存在.. 好吧,我将创建自己的解决方案/格式。
谢谢
【问题讨论】:
这可能会有所帮助:freeformatter.com/cron-expression-generator-quartz.html 或这个:cronmaker.com - 每月第一个星期一的表达式为0 0 0 ? * 2#1 *
【参考方案1】:
正如 Thomas 所说,Quartz 使用的格式允许更多用例,并且适用于大多数矿山。 谢谢
http://www.quartz-scheduler.org/documentation/quartz-2.3.0/tutorials/crontrigger.html https://www.freeformatter.com/cron-expression-generator-quartz.html
【讨论】:
【参考方案2】:每个月的第一个星期一是指:
星期几 = 1 月份中的第几天 = 1-7作为一个 cron 表达式是:
0 0 1-7 * 1
│ │ │ │ └─ Day of week 1 (Monday)
│ │ │ └─── Every month
│ │ └────── Day of month 1-7
│ └───────── Hour 0
└─────────── Minute 0
或更具可读性:
0 0 1-7 * MON
【讨论】:
以上是关于有啥东西可以代表像“每个月的第一个星期一”这样的时期吗?的主要内容,如果未能解决你的问题,请参考以下文章