- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我必须创建每个月运行两天的批处理作业。例如,它将在该月的第一个工作日第一次运行,然后应该在第一个工作日之后的第 14 个工作日运行,即 (1+14=15) 在同月的第 15 个工作日运行。这两天不应是周六和周日,仅应考虑工作日。
我知道第一个工作日 -> ( 0 0 8 1W * ?) 和第 15 个工作日 -> ( 0 0 8 15W * ?) 的 2 个单独的 cron 表达式。所以,我已经尝试过( 0 0 8 1W,15W * ?),但它不允许我在单个 cron 中拥有工作日列表。
我还没有参与编码部分,因为我首先需要的是 cron 表达式来在一个月的 2 个工作日运行我的内务任务。
0 0 8 1W,15W * ?使用这个 cron 表达式,我期望结果为 2019 年 7 月 1 日星期一和 2019 年 7 月 15 日星期一,但实际结果仅为 2019 年 7 月 1 日星期一。
最佳答案
当月份中的某一天具有工作日标志时,Quartz CronExpression
类在处理下一次触发时间时似乎存在错误。
也就是说,W
似乎并不像您上面描述的那样工作,因为它找到最近的工作日,而不是下一个工作日。因此,如果 15 日是星期六,则作业将在前一个星期五运行。
理论上,您可以通过编写自己的触发器或日历实现来解决此问题。或者,您可以每天早上 8 点触发作业,如果运行日期无效,则提前终止。例如,在工作的第一行,您可以有这样的行:
if (!shouldRunToday()) {
return;
};
使用 JodaTime 的 shouldRunToday
实现可能如下所示:
public static boolean shouldRunToday() {
LocalDate date = LocalDate.now();
Set<Integer> days = new HashSet<>();
days.add(1);
days.add(15);
DayOfWeek dayOfWeek = DayOfWeek.of(date.getDayOfWeek());
if (dayOfWeek == DayOfWeek.MONDAY) {
days.add(2);
days.add(3);
days.add(16);
days.add(17);
}
Set<DayOfWeek> weekend = EnumSet.of(DayOfWeek.SATURDAY, DayOfWeek.SUNDAY);
return days.contains(date.getDayOfMonth()) && !weekend.contains(dayOfWeek);
}
如果您想使用日历,等效代码如下所示
public static boolean shouldRunToday() {
Calendar date = Calendar.getInstance();
Set<Integer> days = new HashSet<>();
days.add(1);
days.add(15);
int dayOfWeek = date.get(Calendar.DAY_OF_WEEK);
if (dayOfWeek == Calendar.MONDAY) {
days.add(2);
days.add(3);
days.add(16);
days.add(17);
}
List<Integer> weekend = Arrays.asList(Calendar.SATURDAY, Calendar.SUNDAY);
return days.contains(date.get(Calendar.DAY_OF_MONTH)) && !weekend.contains(dayOfWeek);
}
关于java - 为每个月的第一个工作日和第15个工作日上午 8 点创建一个 cron 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57288619/
假设我有 2 个日期时间变量: var fromdt = "2013/05/29 12:30 PM"; var todt = "2013/05/29 01:30 AM"; 我想比较这两个日期时间。如何
我想实现 this 的逆过程,也就是说,我想将格式为 hh:mm tt 的 string 转换为秒数为零的 TimeSpan。 例如,09:45 pm 转换为 21:45:00。 最佳答案 最简单的方
我正在使用以下日期格式化程序: + (NSDateFormatter *)dateFormatter { static NSDateFormatter *_dateFormatter = ni
无需争论以这种方式存储日期时间的相对优点...... 如果您有一个存储 AM 或 PM 的列,您会怎么称呼该列? 编辑: 我应该想到会有一群人无法抗拒对这个想法嗤之以鼻......你没有看到我将要这样
12 AM被认为是第二天 timeone = "5/18/2017 01:00 AM" currenTime = "5/18/2017 05:55 AM" timetwo = "5/18/2017
我得到一个格式为:MM-dd-yy hhmma zzz 的日期。问题是我只得到 AM 的 A 或 PM 的 P。如何将具有该格式的字符串解析为日期对象? 亚历克斯 最佳答案 使用这个'a' 示例:MM
我需要获取日期对象中的字段 AM/PM。我怎样才能得到它? 这是我的代码。 String startTime ="01:05 PM"; SimpleDateFormat sdf = new Simp
我正在尝试解析一些日期,但 DateTimeParser 似乎不同意我对什么是有效的 import java.time.ZonedDateTime import java.time.format.Da
我有一个关于库 moment.js 的问题,我在 angularjs 中有一个应用程序,其中我有六个用于年、月、日、小时、分钟和上午/下午格式的选择元素。我正在使用以下格式时刻来构建 m.format
我用智能GWT制作了一个日历。禁用“日/周”选项卡并将默认值设置为“月”。我想从日历中删除上午/下午时间。我不需要上午/下午时间,因为我使用天作为最小时间单位。 有什么办法可以去掉吗?我可以使用以下方
我不想在 12 小时格式的 AM PM 时间选择器中使用 HTML 下拉菜单...任何人都可以给我有关此的链接。我想要基于 Jquery/Javascript/CSS 的 AM PM 选择器 最佳答案
我刚刚意识到 Rails(目前为 3.1.3)中的 l(或本地化)方法似乎无法根据当前设置的语言环境管理时钟格式。我只是假设是这种情况,并没有专门对此进行测试...我刚刚验证了日期已根据语言环境重新格
我想知道 Makefile.am 中 *_la_LDFLAGS 的可能值是多少? 如果我问这个问题,那是因为我想要以下内容: Actual shared library : libA.so (or w
我想在早上 9 点到 10 点之间运行 mysql 来查找所有结果。 无论今天是哪一天,我都希望它能找到所有结果。我可以找到某一天的结果,但不能找到所有结果 最佳答案 将 DateTime 对象作为列
我有两张图片,一张用于早上,我需要在早上 6 点之后显示,另一张用于晚上,我需要在下午 6 点之后在背景中显示。请帮助我在 6am-6pm 和 6pm-6am 自动更改显示。 NSDate *_cur
我遇到的问题是MySQL在考虑 2015-02-12 01:08:40 小于 2015-02-12 12:54:49 我的查询 SELECT DISTINCT(time) FROM `dcn_paym
我正在尝试将上午/下午格式时间转换为 24 小时格式时间 6:35 PM to 18:35 我在 Playground 上试过这段代码,但似乎没有如果我把时间放在一边工作 let dateAsStri
我正在使用 rails 3.2.13。我想在下拉列表中显示 12 小时的时钟和上午/下午。似乎很多人都在谈论这个,但没有内置的解决方案。 time_select("post", "written_on
这个问题在这里已经有了答案: Display current time in 12 hour format with AM/PM (15 个答案) 关闭 4 年前。 在这段代码中,在 12:01:0
我想将时间分成 hours,minutes,seconds,am/pm ,作为 1:00pm 以 starttime(varchar) 的名称存储在数据库中。 如何在 php 中将开始时间分为小时、分
我是一名优秀的程序员,十分优秀!