Example usage for org.joda.time Interval getEnd

List of usage examples for org.joda.time Interval getEnd

Introduction

In this page you can find the example usage for org.joda.time Interval getEnd.

Prototype

public DateTime getEnd() 

Source Link

Document

Gets the end of this time interval, which is exclusive, as a DateTime.

Usage

From source file:org.estatio.dom.utils.CalendarUtils.java

License:Apache License

public static List<Interval> intervalsInRange(final LocalDate startDate, final LocalDate endDate,
        final String rrule) {
    if (startDate.compareTo(endDate) > 0) {
        throw new IllegalArgumentException(
                String.format("Start date %s is after end date %s", startDate.toString(), endDate.toString()));
    }//w  ww .j a  va 2 s  .c o m
    List<Interval> intervals = Lists.newArrayList();
    LocalDate start = startDate;
    Interval interval = null;
    do {
        interval = intervalContaining(start, rrule);
        if (interval != null) {
            intervals.add(interval);
            start = interval.getEnd().toLocalDate();
        }
    } while (interval != null && start.isBefore(endDate));
    return intervals;
}

From source file:org.fenixedu.academic.domain.Lesson.java

License:Open Source License

public boolean overlaps(final Interval interval) {
    if (wasFinished()) {
        return false;
    }/*w ww .  j  a  v a  2  s . co m*/
    final YearMonthDay startDateToSearch = getLessonStartDay();
    if (startDateToSearch == null) {
        return false;
    }
    final YearMonthDay endDateToSearch = getLessonEndDay();
    if (endDateToSearch == null) {
        return false;
    }
    final DateTime intervalStart = interval.getStart();
    if (intervalStart.isAfter(endDateToSearch.toDateTimeAtMidnight().plusDays(1))) {
        return false;
    }
    final DateTime intervalEnd = interval.getEnd();
    if (intervalEnd.isBefore(startDateToSearch.toDateTimeAtMidnight())) {
        return false;
    }
    final HourMinuteSecond b = getBeginHourMinuteSecond();
    final HourMinuteSecond e = getEndHourMinuteSecond();
    for (final YearMonthDay yearMonthDay : getAllValidLessonDatesWithoutInstancesDates(startDateToSearch,
            endDateToSearch)) {
        if (new Interval(toDateTime(yearMonthDay, b), toDateTime(yearMonthDay, e)).overlaps(interval)) {
            return true;
        }
    }
    return false;
}

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 {//from w  w  w. j  a va2s .co  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() + "&amp;" + 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("&amp;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:org.fenixedu.academic.thesis.domain.ThesisProposalsConfiguration.java

License:Open Source License

@Override
public void setProposalPeriod(org.joda.time.Interval proposalPeriod) {
    DateTime start = proposalPeriod.getStart().withSecondOfMinute(0);
    DateTime end = proposalPeriod.getEnd().withSecondOfMinute(0);

    super.setProposalPeriod(new org.joda.time.Interval(start, end));
}

From source file:org.fenixedu.academic.thesis.domain.ThesisProposalsConfiguration.java

License:Open Source License

@Override
public void setCandidacyPeriod(org.joda.time.Interval candidacyPeriod) {
    DateTime start = candidacyPeriod.getStart().withSecondOfMinute(0);
    DateTime end = candidacyPeriod.getEnd().withSecondOfMinute(0);

    super.setCandidacyPeriod(new org.joda.time.Interval(start, end));
}

From source file:org.fenixedu.learning.api.EventsResource.java

License:Open Source License

private ScheduleEventBean createEventBean(Lesson lesson, Interval interval) {
    Optional<Site> site = Optional.ofNullable(lesson.getExecutionCourse().getSite());
    String url = site.isPresent() ? site.get().getFullUrl() : "#";
    String executionCourseAcronym = lesson.getShift().getExecutionCourse().getPrettyAcronym();
    String shiftTypeAcronym = lesson.getShift().getShiftTypesCodePrettyPrint();
    String executionCourseName = lesson.getShift().getExecutionCourse().getNameI18N().getContent();
    String shifType = lesson.getShift().getShiftTypesPrettyPrint();
    Set<Space> location = lesson.getLessonSpaceOccupation() != null
            ? lesson.getLessonSpaceOccupation().getSpaces()
            : newHashSet();/*from   w  ww .ja  v  a 2  s .  c o m*/
    String description = executionCourseName + "( " + shifType + " )";
    return new ScheduleEventBean(executionCourseAcronym, shiftTypeAcronym, description, interval.getStart(),
            interval.getEnd(), null, url, null, null, location);
}

From source file:org.fenixedu.learning.domain.ScheduleEventBean.java

License:Open Source License

private static ScheduleEventBean scheduleEvent(Shift shift, Lesson lesson, Interval interval) {
    String shiftAcronym = shift.getShiftTypesCodePrettyPrint();
    String url = "#";
    String roomName = lesson.getSala() != null ? lesson.getSala().getName() : null;
    String shiftTypesPrettyPrint = shift.getShiftTypesPrettyPrint();
    String color = ScheduleEventBean.COLORS[shift.getSortedTypes().stream().findFirst().get().ordinal()];
    HashSet<Space> spaces = Sets.newHashSet(lesson.getSala());
    return new ScheduleEventBean(shiftAcronym, roomName, shiftTypesPrettyPrint, interval.getStart(),
            interval.getEnd(), null, url, color, null, spaces);
}

From source file:org.fenixedu.spaces.ui.services.OccupationService.java

License:Open Source License

public String getOccupations(Space space, Interval search) {
    JsonArray events = new JsonArray();
    int id = 1;/*from w  ww . j av a2 s  . co m*/
    for (Occupation occupation : space.getOccupationSet()) {
        boolean hasEvents = false;
        for (Interval interval : occupation.getIntervals()) {
            if (interval.overlaps(search)) {
                JsonObject event = new JsonObject();
                String start = new Long(interval.getStart().getMillis() / 1000).toString();
                String end = new Long(interval.getEnd().getMillis() / 1000).toString();
                event.addProperty("id", id);
                event.addProperty("start", start);
                event.addProperty("end", end);
                event.addProperty("title", occupation.getSubject());
                String url = occupation.getUrl();
                if (url != null && !url.isEmpty()) {
                    event.addProperty("url", url);
                }
                event.addProperty("allDay", false);
                event.addProperty("backgroundColor", colors[id % colors.length]);
                event.addProperty("info", occupation.getInfo());
                events.add(event);
                if (!hasEvents) {
                    hasEvents = true;
                }
            }
        }
        if (hasEvents) {
            id++;
        }
    }
    return events.toString();
}

From source file:org.filteredpush.qc.date.DateUtils.java

License:Apache License

/**
 * Test to see whether an eventDate contains a string in an expected ISO format.
 * /*from  w ww  . j  a  va  2  s  .  c om*/
 * @param eventDate string to test for expected format.
 * @return true if eventDate is in an expected format for eventDate, otherwise false.
 */
public static boolean eventDateValid(String eventDate) {
    boolean result = false;
    if (extractDate(eventDate) != null) {
        result = true;
    } else {
        Interval interval = extractInterval(eventDate);
        if (interval != null) {
            if (interval.getStart().isBefore(interval.getEnd())) {
                result = true;
            }
        }
    }
    return result;
}

From source file:org.filteredpush.qc.date.DateUtils.java

License:Apache License

/**
 * Extract a date from a verbatim date, returning ranges specified to day.
 * //  w ww . j  a  va 2s. c  o m
 * @param verbatimEventDate a string containing a verbatim event date.
 * @param yearsBeforeSuspect the value for a year before which parsed years should be considered suspect.
 * @return an EventResult object containing the extracted date. 
 */
public static EventResult extractDateToDayFromVerbatimER(String verbatimEventDate, int yearsBeforeSuspect) {
    EventResult result = extractDateFromVerbatimER(verbatimEventDate, yearsBeforeSuspect, null);
    logger.debug(result.getResultState());
    logger.debug(result.getResult());
    if (result != null && result.getResultState().equals(EventResult.EventQCResultState.RANGE)) {
        String dateRange = result.getResult();
        try {
            Interval parseDate = extractDateInterval(dateRange);
            logger.debug(parseDate);
            String resultDate = parseDate.getStart().toString("yyyy-MM-dd") + "/"
                    + parseDate.getEnd().toString("yyyy-MM-dd");
            result.setResult(resultDate);
        } catch (Exception e) {
            logger.debug(e.getMessage());
            result.setResultState(EventResult.EventQCResultState.INTERNAL_PREREQISITES_NOT_MET);
            result.addComment(e.getMessage());
        }
    }
    return result;
}