List of usage examples for org.joda.time YearMonthDay plusMonths
public YearMonthDay plusMonths(int months)
From source file:net.sourceforge.fenixedu.domain.accounting.Event.java
License:Open Source License
protected YearMonthDay calculateNextEndDate(final YearMonthDay yearMonthDay) { final YearMonthDay nextMonth = yearMonthDay.plusMonths(1); return new YearMonthDay(nextMonth.getYear(), nextMonth.getMonthOfYear(), 1).minusDays(1); }
From source file:net.sourceforge.fenixedu.domain.GratuitySituation.java
License:Open Source License
private int calculateMonthsToChargePenalty(final YearMonthDay when) { final YearMonthDay endPaymentDate = getEndPaymentDate(); final YearMonthDay endOfMonth = endPaymentDate.plusMonths(1).withDayOfMonth(1).minusDays(1); final int numberOfDaysLeftInMonth = new Period(endPaymentDate, endOfMonth).getDays(); int monthsToChargePenalty = 0; if (numberOfDaysLeftInMonth > 0) { monthsToChargePenalty += 1;/* w w w . j a v a2 s . c o m*/ } final Period period = new Period(endPaymentDate.plusMonths(1).withDayOfMonth(1), when); monthsToChargePenalty += period.getMonths() + 1; return monthsToChargePenalty; }
From source file:net.sourceforge.fenixedu.domain.student.Student.java
License:Open Source License
private YearMonthDay calculateMasterDegreeInsurancePaymentCodeEndDate(final ExecutionYear executionYear) { final YearMonthDay insuranceEndDate = executionYear.getInsuranceValue().getEndDateYearMonthDay(); final YearMonthDay now = new YearMonthDay(); if (now.isAfter(insuranceEndDate)) { final YearMonthDay nextMonth = now.plusMonths(1); return new YearMonthDay(nextMonth.getYear(), nextMonth.getMonthOfYear(), 1).minusDays(1); } else {//from w w w . j av a 2s.c om return insuranceEndDate; } }
From source file:net.sourceforge.fenixedu.presentationTier.Action.academicAdministration.AcademicCalendarsManagementDA.java
License:Open Source License
private ActionForward generateGanttDiagram(ActionMapping mapping, HttpServletRequest request, CalendarEntryBean bean) {/*from ww w .j a v a 2 s. c o m*/ YearMonthDay beginDate = bean.getBeginDateToDisplayInYearMonthDayFormat(); YearMonthDay endDate = bean.getEndDateToDisplayInYearMonthDayFormat(); endDate = endDate.plusMonths(1).withDayOfMonth(1).minusDays(1); List<GanttDiagramEvent> newEntries = generateEntriesTree(request, bean.getRootEntry(), beginDate, endDate); GanttDiagram diagram = GanttDiagram.getNewTotalGanttDiagram(newEntries, beginDate, endDate); request.setAttribute("entryBean", bean); request.setAttribute("ganttDiagram", diagram); return mapping.findForward("viewAcademicCalendar"); }
From source file:net.sourceforge.fenixedu.presentationTier.TagLib.GanttDiagramTagLib.java
License:Open Source License
private StringBuilder generateGanttDiagramInTimeMode(BigDecimal tableWidth) throws JspException { StringBuilder builder = new StringBuilder(); if (!getEvents().isEmpty()) { if (isShowPeriod() && isShowObservations()) { builder.append("<table style=\"width:") .append(tableWidth.add(BigDecimal.valueOf(FIXED_COLUMNS_SIZE_EM))) .append("em;\" class=\"tcalendar thlight\">"); } else {//from w ww. j ava 2s. c o m builder.append("<table class=\"tcalendar thlight\">"); } generateHeaders(builder); int numberOfUnits = getNumberOfUnits(); String selectedEvent = getRequest().getParameter(getEventParameter()); Object selectedEventObject = getRequest().getAttribute(getEventParameter()); for (GanttDiagramEvent event : getEvents()) { String eventUrl = getRequest().getContextPath() + getEventUrl() + "&" + getEventParameter() + "=" + event.getGanttDiagramEventIdentifier(); if (event.getGanttDiagramEventUrlAddOns() != null) { eventUrl = eventUrl.concat(event.getGanttDiagramEventUrlAddOns()); } final MultiLanguageString diagramEventName = event.getGanttDiagramEventName(); String eventName = diagramEventName == null ? "" : diagramEventName.getContent(); String paddingStyle = "padding-left:" + event.getGanttDiagramEventOffset() * PADDING_LEFT_MULTIPLIER + "px"; if (event.getGanttDiagramEventIdentifier().equals(selectedEvent) || (selectedEventObject != null && event.getGanttDiagramEventIdentifier().equals(selectedEventObject.toString()))) { builder.append("<tr class=\"selected\">"); } else { builder.append("<tr>"); } if (getViewTypeEnum() == ViewType.YEAR_DAILY) { builder.append("<td class=\"padded\">").append("<div class=\"nowrap\">"); builder.append("<span style=\"").append(paddingStyle).append("\" title=\"").append(eventName) .append("\">"); builder.append("<a href=\"").append(eventUrl).append("&month=") .append(Month.values()[event.getGanttDiagramEventMonth() - 1].toString()).append("\">") .append(eventName); } else { builder.append("<td class=\"padded\">") .append("<div style=\"overflow:hidden; width: 14.5em;\" class=\"nowrap\">"); builder.append("<span style=\"").append(paddingStyle).append("\" title=\"").append(eventName) .append("\">"); builder.append("<a href=\"").append(eventUrl).append("\">").append(eventName); } builder.append("</a></span></div></td>"); for (DateTime day : getGanttDiagramObject().getDays()) { int startIndex = 0, endIndex = 0; int dayOfMonth = day.getDayOfMonth(); int monthOfYear = day.getMonthOfYear(); if (getViewTypeEnum() == ViewType.YEAR_DAILY) { monthOfYear = event.getGanttDiagramEventMonth(); } int year = day.getYear(); YearMonthDay yearMonthDay = new YearMonthDay(year, monthOfYear, 1); isEventToMarkWeekendsAndHolidays = event.isGanttDiagramEventToMarkWeekendsAndHolidays(); if (!isEventToMarkWeekendsAndHolidays) { builder.append("<td style=\"width: ").append(convertToEm(numberOfUnits)) .append("em;\"><div style=\"position: relative;\">"); } if (getViewTypeEnum() == ViewType.YEAR_DAILY) { if (dayOfMonth > yearMonthDay.plusMonths(1).minusDays(1).getDayOfMonth()) { addEmptyDiv(builder); builder.append("</div></td>"); continue; } } specialDiv = false; for (Interval interval : event.getGanttDiagramEventSortedIntervals()) { toWrite = null; toMark = true; LocalDate localDate = yearMonthDay.withDayOfMonth(dayOfMonth).toLocalDate(); if ((event.getGanttDiagramEventDayType(interval) == DayType.SPECIFIC_DAYS) || (event.getGanttDiagramEventDayType(interval) == DayType.WORKDAY)) { if ((localDate.getDayOfWeek() == SATURDAY_IN_JODA_TIME) || (localDate.getDayOfWeek() == SUNDAY_IN_JODA_TIME) || (Holiday.isHoliday(localDate))) { toMark = false; } } if (isEventToMarkWeekendsAndHolidays) { if (Holiday.isHoliday(localDate)) { toWrite = F; } else if (localDate.getDayOfWeek() == SATURDAY_IN_JODA_TIME) { toWrite = S; } else if (localDate.getDayOfWeek() == SUNDAY_IN_JODA_TIME) { toWrite = D; } } if (interval.getStart().getYear() <= year && interval.getEnd().getYear() >= year) { if (interval.getStart().getYear() < year && interval.getEnd().getYear() > year) { addSpecialDiv(builder, convertToEm(numberOfUnits), EMPTY_UNIT); } // Started in same year and Ended after else if (interval.getStart().getYear() == year && interval.getEnd().getYear() > year) { if (interval.getStart().getMonthOfYear() < monthOfYear) { addSpecialDiv(builder, convertToEm(numberOfUnits), EMPTY_UNIT); } else if (interval.getStart().getMonthOfYear() == monthOfYear) { if (interval.getStart().getDayOfMonth() == dayOfMonth) { startIndex = calculateTimeOfDay(interval.getStart()); addSpecialDiv(builder, convertToEm(numberOfUnits - (startIndex - 1)), convertToEm(startIndex - 1)); } else if (interval.getStart().getDayOfMonth() < dayOfMonth) { addSpecialDiv(builder, convertToEm(numberOfUnits), EMPTY_UNIT); } } } // Ended in same year and started before else if (interval.getStart().getYear() < year && interval.getEnd().getYear() == year) { if (interval.getEnd().getMonthOfYear() > monthOfYear) { addSpecialDiv(builder, convertToEm(numberOfUnits), EMPTY_UNIT); } else if (interval.getEnd().getMonthOfYear() == monthOfYear) { if (interval.getEnd().getDayOfMonth() > dayOfMonth) { addSpecialDiv(builder, convertToEm(numberOfUnits), EMPTY_UNIT); } else if (interval.getEnd().getDayOfMonth() == dayOfMonth) { endIndex = calculateTimeOfDay(interval.getEnd()); addSpecialDiv(builder, convertToEm(endIndex), EMPTY_UNIT); } } } // Ended and Started In Same Year else if (interval.getStart().getYear() == year && interval.getEnd().getYear() == year) { if (interval.getStart().getMonthOfYear() <= monthOfYear && interval.getEnd().getMonthOfYear() >= monthOfYear) { if (interval.getStart().getMonthOfYear() == monthOfYear && interval.getEnd().getMonthOfYear() > monthOfYear) { if (interval.getStart().getDayOfMonth() == dayOfMonth) { startIndex = calculateTimeOfDay(interval.getStart()); addSpecialDiv(builder, convertToEm(numberOfUnits - (startIndex - 1)), convertToEm(startIndex - 1)); } else if (interval.getStart().getDayOfMonth() < dayOfMonth) { addSpecialDiv(builder, convertToEm(numberOfUnits), EMPTY_UNIT); } } else if (interval.getStart().getMonthOfYear() < monthOfYear && interval.getEnd().getMonthOfYear() == monthOfYear) { if (interval.getEnd().getDayOfMonth() > dayOfMonth) { addSpecialDiv(builder, convertToEm(numberOfUnits), EMPTY_UNIT); } else if (interval.getEnd().getDayOfMonth() == dayOfMonth) { endIndex = calculateTimeOfDay(interval.getEnd()); addSpecialDiv(builder, convertToEm(endIndex), EMPTY_UNIT); } } else if (interval.getStart().getMonthOfYear() < monthOfYear && interval.getEnd().getMonthOfYear() > monthOfYear) { addSpecialDiv(builder, convertToEm(numberOfUnits), EMPTY_UNIT); } else if (interval.getStart().getMonthOfYear() == monthOfYear && interval.getEnd().getMonthOfYear() == monthOfYear) { if (interval.getStart().getDayOfMonth() <= dayOfMonth && interval.getEnd().getDayOfMonth() >= dayOfMonth) { if (event.isGanttDiagramEventIntervalsLongerThanOneDay() && (interval.getStart().getDayOfMonth() == dayOfMonth || interval.getEnd().getDayOfMonth() > dayOfMonth)) { startIndex = calculateTimeOfDay(interval.getStart()); addSpecialDiv(builder, convertToEm(numberOfUnits - (startIndex - 1)), convertToEm(startIndex - 1)); } else if (interval.getStart().getDayOfMonth() == dayOfMonth && interval.getEnd().getDayOfMonth() > dayOfMonth) { startIndex = calculateTimeOfDay(interval.getStart()); addSpecialDiv(builder, convertToEm(numberOfUnits - (startIndex - 1)), convertToEm(startIndex - 1)); } else if (interval.getStart().getDayOfMonth() < dayOfMonth && interval.getEnd().getDayOfMonth() == dayOfMonth) { endIndex = calculateTimeOfDay(interval.getEnd()); addSpecialDiv(builder, convertToEm(endIndex), EMPTY_UNIT); } else if (interval.getStart().getDayOfMonth() == dayOfMonth && interval.getEnd().getDayOfMonth() == dayOfMonth) { startIndex = calculateTimeOfDay(interval.getStart()); endIndex = calculateTimeOfDay(interval.getEnd()); if (startIndex == endIndex) { addSpecialDiv(builder, convertToEm(1), convertToEm(startIndex - 1)); } else { addSpecialDiv(builder, convertToEm((endIndex - startIndex) + 1), convertToEm(startIndex - 1)); } } } } } } } } if (!isEventToMarkWeekendsAndHolidays) { builder.append("</div></td>"); } else if (!specialDiv) { builder.append("<td class=\"tdnomark\">"); if (dayOfMonth <= yearMonthDay.plusMonths(1).minusDays(1).getDayOfMonth()) { LocalDate localDate = yearMonthDay.withDayOfMonth(dayOfMonth).toLocalDate(); if (Holiday.isHoliday(localDate)) { builder.append(F); } else if (localDate.getDayOfWeek() == SATURDAY_IN_JODA_TIME) { builder.append("S"); } else if (localDate.getDayOfWeek() == SUNDAY_IN_JODA_TIME) { builder.append("D"); } } builder.append("</td>"); } } if (isShowPeriod()) { builder.append("<td class=\"padded smalltxt\" title=\"") .append(event.getGanttDiagramEventPeriod()) .append("\"><div style=\"overflow:hidden;\" class=\"nowrap\">") .append(event.getGanttDiagramEventPeriod()).append("</div></td>"); } if (isShowObservations()) { builder.append("<td class=\"padded smalltxt\">") .append(event.getGanttDiagramEventObservations()).append("</td>"); } builder.append("</tr>"); } insertNextAndBeforeLinks(builder); builder.append("</table>"); } return builder; }
From source file:net.sourceforge.fenixedu.presentationTier.TagLib.GanttDiagramTagLib.java
License:Open Source License
private void insertNextAndBeforeLinks(StringBuilder builder) throws JspException { YearMonthDay firstDay = getGanttDiagramObject().getFirstInstant().toYearMonthDay(); if (firstDay != null) { String nextUrl = ""; String beforeUrl = ""; switch (getViewTypeEnum()) { case WEEKLY: if (!StringUtils.isEmpty(getWeeklyViewUrl())) { nextUrl = getRequest().getContextPath() + getWeeklyViewUrl() + "&" + getFirstDayParameter() + "=" + firstDay.plusDays(Lesson.NUMBER_OF_DAYS_IN_WEEK).toString("ddMMyyyy"); beforeUrl = getRequest().getContextPath() + getWeeklyViewUrl() + "&" + getFirstDayParameter() + "=" + firstDay.minusDays(Lesson.NUMBER_OF_DAYS_IN_WEEK).toString("ddMMyyyy"); builder.append(// w w w . j a v a2 s .c om "<tr><td class=\"tcalendarlinks\"></td><td colspan=\"7\" class=\"acenter tcalendarlinks\"> <span class=\"smalltxt\"><a href=\"") .append(beforeUrl).append("\">").append("<< ") .append(getMessage("label.previous.week")).append("</a>"); builder.append(" , ").append("<a href=\"").append(nextUrl).append("\">") .append(getMessage("label.next.week")).append(" >>").append("</a>") .append("</span></td><td class=\"tcalendarlinks\"></td><td class=\"tcalendarlinks\"></td></tr>"); } break; case DAILY: if (!StringUtils.isEmpty(getDailyViewUrl())) { nextUrl = getRequest().getContextPath() + getDailyViewUrl() + "&" + getFirstDayParameter() + "=" + firstDay.plusDays(1).toString("ddMMyyyy"); beforeUrl = getRequest().getContextPath() + getDailyViewUrl() + "&" + getFirstDayParameter() + "=" + firstDay.minusDays(1).toString("ddMMyyyy"); builder.append( "<tr><td class=\"tcalendarlinks\"></td><td class=\"acenter tcalendarlinks\"><span class=\"smalltxt\"><a href=\"") .append(beforeUrl).append("\">").append("<< ") .append(getMessage("label.previous.day")).append("</a>"); builder.append(" , ").append("<a href=\"").append(nextUrl).append("\">") .append(getMessage("label.next.day")).append(" >>").append("</a>") .append("</span></td><td class=\"tcalendarlinks\"></td><td class=\"tcalendarlinks\"></td></tr>"); } break; case MONTHLY: if (!StringUtils.isEmpty(getMonthlyViewUrl())) { DateTime month = firstDay.toDateTimeAtMidnight(); DateTime firstDayOfMonth = (month.getDayOfMonth() != 1) ? month.withDayOfMonth(1) : month; DateTime lastDayOfMonth = firstDayOfMonth.plusMonths(1).minusDays(1); int monthNumberOfDays = Days.daysBetween(firstDayOfMonth, lastDayOfMonth).getDays() + 1; nextUrl = getRequest().getContextPath() + getMonthlyViewUrl() + "&" + getFirstDayParameter() + "=" + firstDay.plusMonths(1).toString("ddMMyyyy"); beforeUrl = getRequest().getContextPath() + getMonthlyViewUrl() + "&" + getFirstDayParameter() + "=" + firstDay.minusMonths(1).toString("ddMMyyyy"); builder.append("<tr><td class=\"tcalendarlinks\"></td><td colspan=\"").append(monthNumberOfDays) .append("\" class=\"acenter tcalendarlinks\"><span class=\"smalltxt\"><a href=\"") .append(beforeUrl).append("\">").append("<< ") .append(getMessage("label.previous.month")).append("</a>"); builder.append(" , ").append("<a href=\"").append(nextUrl).append("\">") .append(getMessage("label.next.month")).append(" >>").append("</a>") .append("</span></td><td class=\"tcalendarlinks\"></td><td class=\"tcalendarlinks\"></td></tr>"); } break; case YEAR_DAILY: if (!StringUtils.isEmpty(getMonthlyViewUrl())) { DateTime month = firstDay.toDateTimeAtMidnight(); DateTime firstDayOfMonth = (month.getDayOfMonth() != 1) ? month.withDayOfMonth(1) : month; DateTime lastDayOfMonth = firstDayOfMonth.plusMonths(1).minusDays(1); int monthNumberOfDays = Days.daysBetween(firstDayOfMonth, lastDayOfMonth).getDays() + 1; nextUrl = getRequest().getContextPath() + getMonthlyViewUrl() + "&" + getFirstDayParameter() + "=" + firstDay.plusMonths(1).toString("ddMMyyyy"); beforeUrl = getRequest().getContextPath() + getMonthlyViewUrl() + "&" + getFirstDayParameter() + "=" + firstDay.minusMonths(1).toString("ddMMyyyy"); builder.append("<tr><td class=\"tcalendarlinks\"></td><td colspan=\"").append(monthNumberOfDays) .append("\" class=\"acenter tcalendarlinks\"><span class=\"smalltxt\"><a href=\"") .append(beforeUrl).append("\">").append("<< ") .append(getMessage("label.previous.month")).append("</a>"); builder.append(" , ").append("<a href=\"").append(nextUrl).append("\">") .append(getMessage("label.next.month")).append(" >>").append("</a>") .append("</span></td><td class=\"tcalendarlinks\"></td><td class=\"tcalendarlinks\"></td></tr>"); } break; default: break; } } }
From source file:org.fenixedu.academic.servlet.taglib.GanttDiagramTagLib.java
License:Open Source License
private StringBuilder generateGanttDiagramInTimeMode(BigDecimal tableWidth) throws JspException { StringBuilder builder = new StringBuilder(); if (!getEvents().isEmpty()) { if (isShowPeriod() && isShowObservations()) { builder.append("<table style=\"width:") .append(tableWidth.add(BigDecimal.valueOf(FIXED_COLUMNS_SIZE_EM))) .append("em;\" class=\"tcalendar thlight\">"); } else {/* w ww .ja v a 2 s.c om*/ builder.append("<table class=\"tcalendar thlight\">"); } generateHeaders(builder); int numberOfUnits = getNumberOfUnits(); String selectedEvent = getRequest().getParameter(getEventParameter()); Object selectedEventObject = getRequest().getAttribute(getEventParameter()); for (GanttDiagramEvent event : getEvents()) { String eventUrl = getRequest().getContextPath() + getEventUrl() + "&" + getEventParameter() + "=" + event.getGanttDiagramEventIdentifier(); if (event.getGanttDiagramEventUrlAddOns() != null) { eventUrl = eventUrl.concat(event.getGanttDiagramEventUrlAddOns()); } final LocalizedString diagramEventName = event.getGanttDiagramEventName(); String eventName = diagramEventName == null ? "" : diagramEventName.getContent(); String paddingStyle = "padding-left:" + event.getGanttDiagramEventOffset() * PADDING_LEFT_MULTIPLIER + "px"; if (event.getGanttDiagramEventIdentifier().equals(selectedEvent) || (selectedEventObject != null && event.getGanttDiagramEventIdentifier().equals(selectedEventObject.toString()))) { builder.append("<tr class=\"selected\">"); } else { builder.append("<tr>"); } if (getViewTypeEnum() == ViewType.YEAR_DAILY) { builder.append("<td class=\"padded\">").append("<div class=\"nowrap\">"); builder.append("<span style=\"").append(paddingStyle).append("\" title=\"").append(eventName) .append("\">"); builder.append("<a href=\"").append(eventUrl).append("&month=") .append(Month.values()[event.getGanttDiagramEventMonth() - 1].toString()).append("\">") .append(eventName); } else { builder.append("<td class=\"padded\">") .append("<div style=\"overflow:hidden; width: 14.5em;\" class=\"nowrap\">"); builder.append("<span style=\"").append(paddingStyle).append("\" title=\"").append(eventName) .append("\">"); builder.append("<a href=\"").append(eventUrl).append("\">").append(eventName); } builder.append("</a></span></div></td>"); for (DateTime day : getGanttDiagramObject().getDays()) { int startIndex = 0, endIndex = 0; int dayOfMonth = day.getDayOfMonth(); int monthOfYear = day.getMonthOfYear(); if (getViewTypeEnum() == ViewType.YEAR_DAILY) { monthOfYear = event.getGanttDiagramEventMonth(); } int year = day.getYear(); YearMonthDay yearMonthDay = new YearMonthDay(year, monthOfYear, 1); isEventToMarkWeekendsAndHolidays = event.isGanttDiagramEventToMarkWeekendsAndHolidays(); if (!isEventToMarkWeekendsAndHolidays) { builder.append("<td style=\"width: ").append(convertToEm(numberOfUnits)) .append("em;\"><div style=\"position: relative;\">"); } if (getViewTypeEnum() == ViewType.YEAR_DAILY) { if (dayOfMonth > yearMonthDay.plusMonths(1).minusDays(1).getDayOfMonth()) { addEmptyDiv(builder); builder.append("</div></td>"); continue; } } specialDiv = false; for (Interval interval : event.getGanttDiagramEventSortedIntervals()) { toWrite = null; toMark = true; LocalDate localDate = yearMonthDay.withDayOfMonth(dayOfMonth).toLocalDate(); if ((event.getGanttDiagramEventDayType(interval) == DayType.SPECIFIC_DAYS) || (event.getGanttDiagramEventDayType(interval) == DayType.WORKDAY)) { if ((localDate.getDayOfWeek() == SATURDAY_IN_JODA_TIME) || (localDate.getDayOfWeek() == SUNDAY_IN_JODA_TIME) || (Holiday.isHoliday(localDate))) { toMark = false; } } if (isEventToMarkWeekendsAndHolidays) { if (Holiday.isHoliday(localDate)) { toWrite = F; } else if (localDate.getDayOfWeek() == SATURDAY_IN_JODA_TIME) { toWrite = S; } else if (localDate.getDayOfWeek() == SUNDAY_IN_JODA_TIME) { toWrite = D; } } if (interval.getStart().getYear() <= year && interval.getEnd().getYear() >= year) { if (interval.getStart().getYear() < year && interval.getEnd().getYear() > year) { addSpecialDiv(builder, convertToEm(numberOfUnits), EMPTY_UNIT); } // Started in same year and Ended after else if (interval.getStart().getYear() == year && interval.getEnd().getYear() > year) { if (interval.getStart().getMonthOfYear() < monthOfYear) { addSpecialDiv(builder, convertToEm(numberOfUnits), EMPTY_UNIT); } else if (interval.getStart().getMonthOfYear() == monthOfYear) { if (interval.getStart().getDayOfMonth() == dayOfMonth) { startIndex = calculateTimeOfDay(interval.getStart()); addSpecialDiv(builder, convertToEm(numberOfUnits - (startIndex - 1)), convertToEm(startIndex - 1)); } else if (interval.getStart().getDayOfMonth() < dayOfMonth) { addSpecialDiv(builder, convertToEm(numberOfUnits), EMPTY_UNIT); } } } // Ended in same year and started before else if (interval.getStart().getYear() < year && interval.getEnd().getYear() == year) { if (interval.getEnd().getMonthOfYear() > monthOfYear) { addSpecialDiv(builder, convertToEm(numberOfUnits), EMPTY_UNIT); } else if (interval.getEnd().getMonthOfYear() == monthOfYear) { if (interval.getEnd().getDayOfMonth() > dayOfMonth) { addSpecialDiv(builder, convertToEm(numberOfUnits), EMPTY_UNIT); } else if (interval.getEnd().getDayOfMonth() == dayOfMonth) { endIndex = calculateTimeOfDay(interval.getEnd()); addSpecialDiv(builder, convertToEm(endIndex), EMPTY_UNIT); } } } // Ended and Started In Same Year else if (interval.getStart().getYear() == year && interval.getEnd().getYear() == year) { if (interval.getStart().getMonthOfYear() <= monthOfYear && interval.getEnd().getMonthOfYear() >= monthOfYear) { if (interval.getStart().getMonthOfYear() == monthOfYear && interval.getEnd().getMonthOfYear() > monthOfYear) { if (interval.getStart().getDayOfMonth() == dayOfMonth) { startIndex = calculateTimeOfDay(interval.getStart()); addSpecialDiv(builder, convertToEm(numberOfUnits - (startIndex - 1)), convertToEm(startIndex - 1)); } else if (interval.getStart().getDayOfMonth() < dayOfMonth) { addSpecialDiv(builder, convertToEm(numberOfUnits), EMPTY_UNIT); } } else if (interval.getStart().getMonthOfYear() < monthOfYear && interval.getEnd().getMonthOfYear() == monthOfYear) { if (interval.getEnd().getDayOfMonth() > dayOfMonth) { addSpecialDiv(builder, convertToEm(numberOfUnits), EMPTY_UNIT); } else if (interval.getEnd().getDayOfMonth() == dayOfMonth) { endIndex = calculateTimeOfDay(interval.getEnd()); addSpecialDiv(builder, convertToEm(endIndex), EMPTY_UNIT); } } else if (interval.getStart().getMonthOfYear() < monthOfYear && interval.getEnd().getMonthOfYear() > monthOfYear) { addSpecialDiv(builder, convertToEm(numberOfUnits), EMPTY_UNIT); } else if (interval.getStart().getMonthOfYear() == monthOfYear && interval.getEnd().getMonthOfYear() == monthOfYear) { if (interval.getStart().getDayOfMonth() <= dayOfMonth && interval.getEnd().getDayOfMonth() >= dayOfMonth) { if (event.isGanttDiagramEventIntervalsLongerThanOneDay() && (interval.getStart().getDayOfMonth() == dayOfMonth || interval.getEnd().getDayOfMonth() > dayOfMonth)) { startIndex = calculateTimeOfDay(interval.getStart()); addSpecialDiv(builder, convertToEm(numberOfUnits - (startIndex - 1)), convertToEm(startIndex - 1)); } else if (interval.getStart().getDayOfMonth() == dayOfMonth && interval.getEnd().getDayOfMonth() > dayOfMonth) { startIndex = calculateTimeOfDay(interval.getStart()); addSpecialDiv(builder, convertToEm(numberOfUnits - (startIndex - 1)), convertToEm(startIndex - 1)); } else if (interval.getStart().getDayOfMonth() < dayOfMonth && interval.getEnd().getDayOfMonth() == dayOfMonth) { endIndex = calculateTimeOfDay(interval.getEnd()); addSpecialDiv(builder, convertToEm(endIndex), EMPTY_UNIT); } else if (interval.getStart().getDayOfMonth() == dayOfMonth && interval.getEnd().getDayOfMonth() == dayOfMonth) { startIndex = calculateTimeOfDay(interval.getStart()); endIndex = calculateTimeOfDay(interval.getEnd()); if (startIndex == endIndex) { addSpecialDiv(builder, convertToEm(1), convertToEm(startIndex - 1)); } else { addSpecialDiv(builder, convertToEm((endIndex - startIndex) + 1), convertToEm(startIndex - 1)); } } } } } } } } if (!isEventToMarkWeekendsAndHolidays) { builder.append("</div></td>"); } else if (!specialDiv) { builder.append("<td class=\"tdnomark\">"); if (dayOfMonth <= yearMonthDay.plusMonths(1).minusDays(1).getDayOfMonth()) { LocalDate localDate = yearMonthDay.withDayOfMonth(dayOfMonth).toLocalDate(); if (Holiday.isHoliday(localDate)) { builder.append(F); } else if (localDate.getDayOfWeek() == SATURDAY_IN_JODA_TIME) { builder.append("S"); } else if (localDate.getDayOfWeek() == SUNDAY_IN_JODA_TIME) { builder.append("D"); } } builder.append("</td>"); } } if (isShowPeriod()) { builder.append("<td class=\"padded smalltxt\" title=\"") .append(event.getGanttDiagramEventPeriod()) .append("\"><div style=\"overflow:hidden;\" class=\"nowrap\">") .append(event.getGanttDiagramEventPeriod()).append("</div></td>"); } if (isShowObservations()) { builder.append("<td class=\"padded smalltxt\">") .append(event.getGanttDiagramEventObservations()).append("</td>"); } builder.append("</tr>"); } insertNextAndBeforeLinks(builder); builder.append("</table>"); } return builder; }