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);
//Create a holiday for New Year's Day (observed) and add it to the
// calendar.
java.util.Calendar holidayCalendar =
java.util.Calendar.getInstance();
holidayCalendar.set(2006, java.util.Calendar.JANUARY, 2);
workdayCalendar.addExcludedDate(holidayCalendar.getTime());
//continue adding working holidays ...
sched.addCalendar("workingDayCalendar", wCal, false, false);
We then need to create the trigger:
// Define a Trigger (fires on the fifth working day of every month at 5:00 PM)
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.