Example usage for org.joda.time DateTime plusMonths

List of usage examples for org.joda.time DateTime plusMonths

Introduction

In this page you can find the example usage for org.joda.time DateTime plusMonths.

Prototype

public DateTime plusMonths(int months) 

Source Link

Document

Returns a copy of this datetime plus the specified number of months.

Usage

From source file:kr.debop4j.timeperiod.tools.Times.java

License:Apache License

/** ? ?  . */
public static List<ITimePeriod> foreachQuarters(ITimePeriod period) {
    assert period != null;
    if (isTraceEnabled)
        log.trace("[{}]?  Quarter  ...", period);

    List<ITimePeriod> quarters = Lists.newArrayList();
    if (period.isAnytime())
        return quarters;

    assertHasPeriod(period);/*www  . ja va2 s  . co  m*/

    if (Times.isSameQuarter(period.getStart(), period.getEnd())) {
        quarters.add(new TimeRange(period));
        return quarters;
    }

    DateTime current = Times.endTimeOfQuarter(period.getStart());
    quarters.add(new TimeRange(period.getStart(), current));

    int endHashCode = period.getEnd().getYear() * 10 + Times.quarterOf(period.getEnd()).getValue();
    current = current.plusDays(1);
    ITimeCalendar calendar = TimeCalendar.getDefault();

    while (current.getYear() * 10 + Times.quarterOf(current).getValue() < endHashCode) {
        quarters.add(Times.getQuarterRange(current, calendar));
        current = current.plusMonths(TimeSpec.MonthsPerQuarter);
    }

    if (current.compareTo(period.getEnd()) < 0)
        quarters.add(new TimeRange(Times.startTimeOfQuarter(current), period.getEnd()));

    return quarters;
}

From source file:kr.debop4j.timeperiod.tools.Times.java

License:Apache License

/** ? ? (Month)  . */
public static List<ITimePeriod> foreachMonths(ITimePeriod period) {
    assert period != null;
    if (isTraceEnabled)
        log.trace("[{}]?  (Month)  ...", period);

    List<ITimePeriod> months = Lists.newArrayList();
    if (period.isAnytime())
        return months;

    assertHasPeriod(period);/*  ww w.j a v  a 2s .c o  m*/

    if (Times.isSameMonth(period.getStart(), period.getEnd())) {
        months.add(new TimeRange(period));
        return months;
    }

    DateTime current = Times.endTimeOfMonth(period.getStart());
    months.add(new TimeRange(period.getStart(), current));

    DateTime monthEnd = Times.startTimeOfMonth(period.getEnd());
    current = current.plusDays(1);
    ITimeCalendar calendar = TimeCalendar.getDefault();

    while (current.compareTo(monthEnd) < 0) {
        months.add(Times.getMonthRange(current, calendar));
        current = current.plusMonths(1);
    }

    current = Times.startTimeOfMonth(current);
    if (current.compareTo(period.getEnd()) < 0)
        months.add(new TimeRange(current, period.getEnd()));

    return months;
}

From source file:nc.noumea.mairie.organigramme.core.utility.DateUtil.java

License:Open Source License

/**
 * Indique si date 1 est suprieur  date 2 + nombreMois mois (et les 2 dates non null).
 * //from w  w w  .  j a v  a 2  s. c  o m
 * @param date1 date qu'on souhaite comparer avec date2
 * @param date2 date compare
 * @param nombreMois nombreMois
 * @return true si date1 et date2 non null, et date1 suprieur  date2 + nombreMois mois
 */
public static boolean isNotNullAndAfterNMonth(Date date1, Date date2, int nombreMois) {
    if (date1 == null || date2 == null) {
        return false;
    }
    DateTime dateTime1 = new DateTime(date1);
    DateTime dateTime2 = new DateTime(date2);
    return dateTime1.isAfter(dateTime2.plusMonths(nombreMois));
}

From source file:net.sf.jasperreports.functions.standard.DateTimeFunctions.java

License:Open Source License

/**
 * Returns a date a number of months away.
 *//*from ww w  . j av a  2s . c o  m*/
@Function("EDATE")
@FunctionParameters({ @FunctionParameter("dateObject"), @FunctionParameter("months") })
public Date EDATE(Object dateObject, Integer months) {
    Date convertedDate = convertDateObject(dateObject);
    if (convertedDate == null) {
        logCannotConvertToDate();
        return null;
    } else {
        DateTime dt = new DateTime(convertedDate);
        dt = dt.plusMonths(months);
        return dt.toDate();
    }
}

From source file:net.sourceforge.fenixedu.presentationTier.TagLib.GanttDiagramTagLib.java

License:Open Source License

private StringBuilder generateGanttDiagramInTotalMode(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  ww  w. ja v a  2 s .c  o m
            builder.append("<table style=\"width:")
                    .append(tableWidth.add(BigDecimal.valueOf(FIXED_COLUMNS_SIZE_EM - 35)))
                    .append("em;\" class=\"tcalendar thlight\">");
        }
        generateHeaders(builder);

        int scale = getScale();

        String selectedEvent = getRequest().getParameter(getEventParameter());
        Object selectedEventObject = getRequest().getAttribute(getEventParameter());

        for (GanttDiagramEvent event : getEvents()) {

            String eventUrl = getRequest().getContextPath() + getEventUrl() + "&amp;" + getEventParameter()
                    + "=" + event.getGanttDiagramEventIdentifier();
            String eventName = event.getGanttDiagramEventName().getContent(getGanttDiagramObject().getLocale());
            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>");
            }

            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("*").append(eventName);
            builder.append("</a></span></div></td>");

            for (DateTime month : getGanttDiagramObject().getMonths()) {

                DateTime firstDayOfMonth = (month.getDayOfMonth() != 1) ? month.withDayOfMonth(1) : month;
                DateTime lastDayOfMonth = firstDayOfMonth.plusMonths(1).minusDays(1);
                int monthNumberOfDays = Days.daysBetween(firstDayOfMonth, lastDayOfMonth).getDays() + 1;
                BigDecimal entryDays = EMPTY_UNIT, startDay = EMPTY_UNIT;

                builder.append("<td style=\"width: ").append(convertToEm(monthNumberOfDays * scale))
                        .append("em;\"><div style=\"position: relative;\">");

                for (Interval interval : event.getGanttDiagramEventSortedIntervals()) {

                    DateMidnight intervalStart = interval.getStart().toDateMidnight();
                    DateMidnight intervalEnd = interval.getEnd().toDateMidnight();

                    // Started in this month
                    if (intervalStart.getMonthOfYear() == month.getMonthOfYear()
                            && intervalStart.getYear() == month.getYear()) {

                        // Ended in this month
                        if (interval.getEnd().getMonthOfYear() == month.getMonthOfYear()
                                && intervalEnd.getYear() == month.getYear()) {

                            // Started in first day of this month
                            if (intervalStart.getDayOfMonth() == 1) {

                                // Ended in the last day of this month
                                if (intervalEnd.getDayOfMonth() == monthNumberOfDays) {
                                    entryDays = convertToEm(
                                            (Days.daysBetween(intervalStart, lastDayOfMonth).getDays() + 1)
                                                    * scale);
                                    startDay = convertToEm((intervalStart.getDayOfMonth() - 1) * scale);
                                    addSpecialDiv(builder, entryDays, startDay);
                                }

                                // Ended before last day of this month
                                else {
                                    entryDays = convertToEm(
                                            (Days.daysBetween(intervalStart, intervalEnd).getDays() + 1)
                                                    * scale);
                                    startDay = convertToEm((intervalStart.getDayOfMonth() - 1) * scale);
                                    addSpecialDiv(builder, entryDays, startDay);
                                }
                            }

                            // Started after first day of this month
                            else {

                                // Ended in the last day of this month
                                if (intervalEnd.getDayOfMonth() == monthNumberOfDays) {
                                    entryDays = convertToEm(
                                            (Days.daysBetween(intervalStart, lastDayOfMonth).getDays() + 1)
                                                    * scale);
                                    startDay = convertToEm((intervalStart.getDayOfMonth() - 1) * scale);
                                    addSpecialDiv(builder, entryDays, startDay);
                                }

                                // Ended before last day of this month
                                else {
                                    entryDays = convertToEm(
                                            (Days.daysBetween(intervalStart, intervalEnd).getDays() + 1)
                                                    * scale);
                                    startDay = convertToEm((intervalStart.getDayOfMonth() - 1) * scale);
                                    addSpecialDiv(builder, entryDays, startDay);
                                }
                            }
                        }

                        // Ended after this month
                        else {
                            entryDays = convertToEm(
                                    (Days.daysBetween(intervalStart, lastDayOfMonth).getDays() + 1) * scale);
                            startDay = convertToEm((intervalStart.getDayOfMonth() - 1) * scale);
                            addSpecialDiv(builder, entryDays, startDay);
                        }

                        // Not Started in this month
                    } else {

                        // Started before this month
                        if (intervalStart.getYear() < month.getYear()
                                || (intervalStart.getYear() == month.getYear()
                                        && intervalStart.getMonthOfYear() < month.getMonthOfYear())) {

                            // Ended after this month
                            if (intervalEnd.getYear() > month.getYear()
                                    || (intervalEnd.getYear() == month.getYear()
                                            && intervalEnd.getMonthOfYear() > month.getMonthOfYear())) {

                                entryDays = convertToEm(
                                        (Days.daysBetween(firstDayOfMonth, lastDayOfMonth).getDays() + 1)
                                                * scale);
                                startDay = convertToEm((firstDayOfMonth.getDayOfMonth() - 1) * scale);
                                addSpecialDiv(builder, entryDays, startDay);
                            } else {

                                // Ended in this month
                                if (intervalEnd.getMonthOfYear() == month.getMonthOfYear()
                                        && intervalEnd.getYear() == month.getYear()) {
                                    entryDays = convertToEm(
                                            (Days.daysBetween(firstDayOfMonth, intervalEnd).getDays() + 1)
                                                    * scale);
                                    startDay = convertToEm((firstDayOfMonth.getDayOfMonth() - 1) * scale);
                                    addSpecialDiv(builder, entryDays, startDay);
                                }
                            }
                        }
                    }
                }
                builder.append("</div></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() + "&amp;" + getFirstDayParameter()
                        + "=" + firstDay.plusDays(Lesson.NUMBER_OF_DAYS_IN_WEEK).toString("ddMMyyyy");
                beforeUrl = getRequest().getContextPath() + getWeeklyViewUrl() + "&amp;"
                        + getFirstDayParameter() + "="
                        + firstDay.minusDays(Lesson.NUMBER_OF_DAYS_IN_WEEK).toString("ddMMyyyy");
                builder.append(/*  ww  w  . ja va 2 s . c  o m*/
                        "<tr><td class=\"tcalendarlinks\"></td><td colspan=\"7\" class=\"acenter tcalendarlinks\"> <span class=\"smalltxt\"><a href=\"")
                        .append(beforeUrl).append("\">").append("&lt;&lt; ")
                        .append(getMessage("label.previous.week")).append("</a>");
                builder.append(" , ").append("<a href=\"").append(nextUrl).append("\">")
                        .append(getMessage("label.next.week")).append(" &gt;&gt;").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() + "&amp;" + getFirstDayParameter()
                        + "=" + firstDay.plusDays(1).toString("ddMMyyyy");
                beforeUrl = getRequest().getContextPath() + getDailyViewUrl() + "&amp;" + 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("&lt;&lt; ")
                        .append(getMessage("label.previous.day")).append("</a>");
                builder.append(" , ").append("<a href=\"").append(nextUrl).append("\">")
                        .append(getMessage("label.next.day")).append(" &gt;&gt;").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() + "&amp;" + getFirstDayParameter()
                        + "=" + firstDay.plusMonths(1).toString("ddMMyyyy");
                beforeUrl = getRequest().getContextPath() + getMonthlyViewUrl() + "&amp;"
                        + 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("&lt;&lt; ")
                        .append(getMessage("label.previous.month")).append("</a>");
                builder.append(" , ").append("<a href=\"").append(nextUrl).append("\">")
                        .append(getMessage("label.next.month")).append(" &gt;&gt;").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() + "&amp;" + getFirstDayParameter()
                        + "=" + firstDay.plusMonths(1).toString("ddMMyyyy");
                beforeUrl = getRequest().getContextPath() + getMonthlyViewUrl() + "&amp;"
                        + 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("&lt;&lt; ")
                        .append(getMessage("label.previous.month")).append("</a>");
                builder.append(" , ").append("<a href=\"").append(nextUrl).append("\">")
                        .append(getMessage("label.next.month")).append(" &gt;&gt;").append("</a>")
                        .append("</span></td><td class=\"tcalendarlinks\"></td><td class=\"tcalendarlinks\"></td></tr>");
            }
            break;

        default:
            break;
        }
    }
}

From source file:net.sourceforge.fenixedu.util.renderer.GanttDiagram.java

License:Open Source License

private void calculateFirstAndLastInstantInMonthlyMode(YearMonthDay begin) {
    if (begin == null) {
        throw new IllegalArgumentException();
    }/*from  w  w w .  j  a v  a  2s  .  c  o m*/
    DateTime beginDateTime = begin.toDateTimeAtMidnight();
    beginDateTime = (beginDateTime.getDayOfMonth() != 1) ? beginDateTime.withDayOfMonth(1) : beginDateTime;
    setFirstInstant(beginDateTime);
    setLastInstant(beginDateTime.plusMonths(1).minusDays(1));
}

From source file:net.sourceforge.fenixedu.util.renderer.GanttDiagram.java

License:Open Source License

private void generateYearsViewAndMonths() {

    DateTime firstMonthDateTime = getFirstInstant();
    DateTime lastMontDateTime = getLastInstant();

    if (firstMonthDateTime != null && lastMontDateTime != null) {
        while ((firstMonthDateTime.getYear() < lastMontDateTime.getYear())
                || (firstMonthDateTime.getYear() == lastMontDateTime.getYear()
                        && firstMonthDateTime.getMonthOfYear() <= lastMontDateTime.getMonthOfYear())) {

            getMonths().add(firstMonthDateTime);

            if (getYearsView().containsKey(Integer.valueOf(firstMonthDateTime.getYear()))) {
                getYearsView().put(Integer.valueOf(firstMonthDateTime.getYear()),
                        getYearsView().get(Integer.valueOf(firstMonthDateTime.getYear())) + 1);
            } else {
                getYearsView().put(Integer.valueOf(firstMonthDateTime.getYear()), 1);
            }//  w w w .jav a  2 s .  c  o  m

            firstMonthDateTime = firstMonthDateTime.plusMonths(1);
        }
    }
}

From source file:net.sourceforge.fenixedu.util.renderer.GanttDiagram.java

License:Open Source License

public int getMonthsDaysSize() {
    int result = 0;
    for (DateTime month : getMonths()) {
        DateTime firstDayOfMonth = (month.getDayOfMonth() != 1) ? month.withDayOfMonth(1) : month;
        DateTime lastDayOfMonth = firstDayOfMonth.plusMonths(1).minusDays(1);
        int monthNumberOfDays = Days.daysBetween(firstDayOfMonth, lastDayOfMonth).getDays() + 1;
        result += monthNumberOfDays;/*  ww  w . jav  a 2 s  .  com*/
    }
    return result;
}

From source file:net.tourbook.ui.views.calendar.CalendarYearMonthContributionItem.java

License:Open Source License

private void fillMonthComboBox() {

    DateTime dt = new DateTime();
    final int thisMonth = dt.getMonthOfYear();
    dt = dt.withMonthOfYear(DateTimeConstants.JANUARY);

    _cboMonthValues = new ArrayList<Integer>();
    _cboMonthKeys = new HashMap<Integer, Integer>();

    for (int i = 0; i < 12; i++) {
        // _cboMonth.add(dt.toString("MMMM"));
        _cboMonth.add(dt.toString("MMM")); // make the toolbar fit more likely into one line //$NON-NLS-1$
        _cboMonthValues.add(dt.getMonthOfYear());
        _cboMonthKeys.put(dt.getMonthOfYear(), i);
        dt = dt.plusMonths(1);
    }/*ww w  .ja v  a2 s  .c o m*/

    _cboMonth.select(thisMonth - 1);

}