holidays.add(new TimePeriod(from, to)); holidays.add(new TimePeriod(from, to)); if (addNextYearHolidays) { tmpFrom = new GregorianCalendar(); holidays.add(new TimePeriod(from, to)); c.add(Calendar.DAY_OF_YEAR, 1); holidays.add(new TimePeriod(sdf.parse(fromTo[0]), c.getTime())); if (addNextYearHolidays) { Calendar tmp = Calendar.getInstance(); holidays.add(new TimePeriod(from, c.getTime()));
protected void handleHoliday(Calendar c, boolean resetTime) { if (!holidays.isEmpty()) { Date current = c.getTime(); for (TimePeriod holiday : holidays) { // check each holiday if it overlaps current date and break after first match if (current.after(holiday.getFrom()) && current.before(holiday.getTo())) { Calendar tmp = new GregorianCalendar(); tmp.setTime(holiday.getTo()); Calendar tmp2 = new GregorianCalendar(); tmp2.setTime(current); tmp2.set(Calendar.HOUR_OF_DAY, 0); tmp2.set(Calendar.MINUTE, 0); tmp2.set(Calendar.SECOND, 0); tmp2.set(Calendar.MILLISECOND, 0); long difference = tmp.getTimeInMillis() - tmp2.getTimeInMillis(); c.add(Calendar.HOUR_OF_DAY, (int) (difference/HOUR_IN_MILLIS)); handleWeekend(c, resetTime); break; } } } }
holidays.add(new TimePeriod(from, to)); holidays.add(new TimePeriod(from, to)); if (addNextYearHolidays) { tmpFrom = new GregorianCalendar(); holidays.add(new TimePeriod(from, to)); c.add(Calendar.DAY_OF_YEAR, 1); holidays.add(new TimePeriod(sdf.parse(fromTo[0]), c.getTime())); if (addNextYearHolidays) { Calendar tmp = Calendar.getInstance(); holidays.add(new TimePeriod(from, c.getTime()));
protected void handleHoliday(Calendar c, boolean resetTime) { if (!holidays.isEmpty()) { Date current = c.getTime(); for (TimePeriod holiday : holidays) { // check each holiday if it overlaps current date and break after first match if (current.after(holiday.getFrom()) && current.before(holiday.getTo())) { Calendar tmp = new GregorianCalendar(); tmp.setTime(holiday.getTo()); Calendar tmp2 = new GregorianCalendar(); tmp2.setTime(current); tmp2.set(Calendar.HOUR_OF_DAY, 0); tmp2.set(Calendar.MINUTE, 0); tmp2.set(Calendar.SECOND, 0); tmp2.set(Calendar.MILLISECOND, 0); long difference = tmp.getTimeInMillis() - tmp2.getTimeInMillis(); c.add(Calendar.HOUR_OF_DAY, (int) (difference/HOUR_IN_MILLIS)); handleWeekend(c, resetTime); break; } } } }