Trigger that Executes on the Fifth "Working Day" of Every Month
For this example, assume that a "working day" is defined as any weekday that is not a business holiday.
The first thing we must do is define a calendar that excludes days which are not working days. For example:
HolidayCalendar workdayCalendar = new HolidayCalendar(wCal);
java.util.Calendar holidayCalendar =
java.util.Calendar.getInstance();
holidayCalendar.set(2006, java.util.Calendar.JANUARY, 2);
workdayCalendar.addExcludedDate(holidayCalendar.getTime());
sched.addCalendar("workingDayCalendar", wCal, false, false);
We then need to create the trigger:
NthIncludedDayTrigger testTrigger =
new NthIncludedDayTrigger("testTrigger", "TEST");
testTrigger.setJobName("TestJob");
testTrigger.setJobGroup("TEST");
testTrigger.setCalendarName("workingDayCalendar");
testTrigger.setN(5);
testTrigger.setFireAtTime("17:00");
sched.scheduleJob(testTrigger);
If the current month was January, 2006, this trigger would fire at 5:00 PM on January 9, 2006, the fifth day not excluded by the associated calendar.
|