Cron expr为第5个工作日

时间:2011-04-06 06:23:38

标签: java-ee

一般来说cron我们可以通过使用“0 15 9 5 *?2011”来找到每个月的第5天这个表达式,但是为了找到第5个工作日我该如何继续,我想我们首先需要创建假期列表然后我们需要根据它编写条件,所以任何人都可以告诉我,如果我正确的轨道或任何其他方式请让我知道使用Java代码。

您好我想使用Java生成每个月的第5个工作日,如上面的表达式,即每个月的第5天

1 个答案:

答案 0 :(得分:0)

例如在Java中,这将在2011年每个月的第5天上午9:15生成Date

for (int i = 0; i < 12; i++) {
    Calendar cal = Calendar.getInstance();
    cal.set(Calendar.SECOND, 0);
    cal.set(Calendar.MINUTE, 15);
    cal.set(Calendar.HOUR_OF_DAY, 9);
    cal.set(Calendar.DAY_OF_MONTH, 5);
    cal.set(Calendar.MONTH, i);
    cal.set(Calendar.YEAR, 2011);
    Date date = cal.getTime();
    System.out.println(date);
}

这是输出:

Wed Jan 05 09:15:00 PST 2011
Sat Feb 05 09:15:00 PST 2011
Sat Mar 05 09:15:00 PST 2011
Tue Apr 05 09:15:00 PDT 2011
Thu May 05 09:15:00 PDT 2011
Sun Jun 05 09:15:00 PDT 2011
Tue Jul 05 09:15:00 PDT 2011
Fri Aug 05 09:15:00 PDT 2011
Mon Sep 05 09:15:00 PDT 2011
Wed Oct 05 09:15:00 PDT 2011
Sat Nov 05 09:15:00 PDT 2011
Mon Dec 05 09:15:00 PST 2011

您可能需要查看Java的Quartz Scheduler库。它支持用于在Java中触发作业的cron表达式。