有啥东西可以代表像“每个月的第一个星期一”这样的时期吗?

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

【讨论】:

以上是关于有啥东西可以代表像“每个月的第一个星期一”这样的时期吗?的主要内容,如果未能解决你的问题,请参考以下文章

AIX 7.1 中的 Cron 作业在错误的时间运行

有没有像 Perabyte 这样的东西? [关闭]

您将如何存储可能的重复时间?

有啥方法可以使用 TCP 隧道连接到像 Visual Fox pro 这样的文档数据库

有啥办法可以改变 MKMapView 的外观吗?

我想在我的winapi C程序中画图,有啥控件吗?