// create or get the Holidays final Set<LocalDate> holidays = new HashSet<LocalDate>(); holidays.add(LocalDate.parse("2006-08-28")); //... keep adding all holidays for 2006 // create the HolidayCalendar ASSUMING that the set covers 2006! final HolidayCalendar<LocalDate> calendar = new DefaultHolidayCalendar<LocalDate> (holidays, LocalDate.parse("2006-01-01"), LocalDate.parse("2006-12-31")); // register the holidays, any calculator with name "UK" // asked from now on will receive an IMMUTABLE reference to this calendar LocalDateKitCalculatorsFactory.getDefaultInstance().registerHolidays("UK", calendar); // ask for a LocalDate calculator for "UK" // (even if a new set of holidays is registered, this one calculator is not affected DateCalculator<LocalDate> cal = LocalDateKitCalculatorsFactory.forwardCalculator("UK"); // set startDate, this will also set the current business date. cal.setStartDate(LocalDate.parse("2006-08-28")); // startDate stays 28 Aug 06 BUT the currentDate has moved, // according to Forward handler to 29 Aug 2006. LocalDate start = cal.getStartDate(); // 28 Aug 06 LocalDate current = cal.getCurrentBusinessDate(); // 29 Aug 06 LocalDate newCurrent = cal.moveByDays(4).getCurrentBusinessDate(); // 4 Sept 06 due to weekend! // Example with Tenor, 1W with a 2 day spot lag LocalDate date1WeekFromSpot = cal.moveByTenor(StandardTenor.T_1W, 2).getCurrentBusinessDate();