Example usage for org.joda.time MutableDateTime addMonths

List of usage examples for org.joda.time MutableDateTime addMonths

Introduction

In this page you can find the example usage for org.joda.time MutableDateTime addMonths.

Prototype

public void addMonths(final int months) 

Source Link

Document

Add a number of months to the date.

Usage

From source file:br.com.centralit.evm.citsmartevm.util.CronExpression.java

License:Apache License

public DateTime nextTimeAfter(DateTime afterTime) {
    MutableDateTime nextTime = new MutableDateTime(afterTime);
    nextTime.setMillisOfSecond(0);/*from ww  w  .j a v  a 2s . c om*/
    nextTime.secondOfDay().add(1);

    while (true) { // day of week
        while (true) { // month
            while (true) { // day of month
                while (true) { // hour
                    while (true) { // minute
                        while (true) { // second
                            if (secondField.matches(nextTime.getSecondOfMinute())) {
                                break;
                            }
                            nextTime.secondOfDay().add(1);
                        }
                        if (minuteField.matches(nextTime.getMinuteOfHour())) {
                            break;
                        }
                        nextTime.minuteOfDay().add(1);
                        nextTime.secondOfMinute().set(0);
                    }
                    if (hourField.matches(nextTime.getHourOfDay())) {
                        break;
                    }
                    nextTime.hourOfDay().add(1);
                    nextTime.minuteOfHour().set(0);
                    nextTime.secondOfMinute().set(0);
                }
                if (dayOfMonthField.matches(new LocalDate(nextTime))) {
                    break;
                }
                nextTime.addDays(1);
                nextTime.setTime(0, 0, 0, 0);
            }
            if (monthField.matches(nextTime.getMonthOfYear())) {
                break;
            }
            nextTime.addMonths(1);
            nextTime.setDayOfMonth(1);
            nextTime.setTime(0, 0, 0, 0);
        }
        if (dayOfWeekField.matches(new LocalDate(nextTime))) {
            break;
        }
        nextTime.addDays(1);
        nextTime.setTime(0, 0, 0, 0);
    }

    return nextTime.toDateTime();
}

From source file:com.huffingtonpost.chronos.util.CronExpression.java

License:Apache License

@CoverageIgnore
public DateTime nextTimeAfter(DateTime afterTime, DateTime dateTimeBarrier) {
    MutableDateTime nextTime = new MutableDateTime(afterTime);
    nextTime.setMillisOfSecond(0);/*from  www  .  ja v a 2s .co  m*/
    nextTime.secondOfDay().add(1);

    while (true) { // day of week
        while (true) { // month
            while (true) { // day of month
                while (true) { // hour
                    while (true) { // minute
                        while (true) { // second
                            if (secondField.matches(nextTime.getSecondOfMinute())) {
                                break;
                            }
                            nextTime.secondOfDay().add(1);
                        }
                        if (minuteField.matches(nextTime.getMinuteOfHour())) {
                            break;
                        }
                        nextTime.minuteOfDay().add(1);
                        nextTime.secondOfMinute().set(0);
                    }
                    if (hourField.matches(nextTime.getHourOfDay())) {
                        break;
                    }
                    nextTime.hourOfDay().add(1);
                    nextTime.minuteOfHour().set(0);
                    nextTime.secondOfMinute().set(0);
                }
                if (dayOfMonthField.matches(new LocalDate(nextTime))) {
                    break;
                }
                nextTime.addDays(1);
                nextTime.setTime(0, 0, 0, 0);
                checkIfDateTimeBarrierIsReached(nextTime, dateTimeBarrier);
            }
            if (monthField.matches(nextTime.getMonthOfYear())) {
                break;
            }
            nextTime.addMonths(1);
            nextTime.setDayOfMonth(1);
            nextTime.setTime(0, 0, 0, 0);
            checkIfDateTimeBarrierIsReached(nextTime, dateTimeBarrier);
        }
        if (dayOfWeekField.matches(new LocalDate(nextTime))) {
            break;
        }
        nextTime.addDays(1);
        nextTime.setTime(0, 0, 0, 0);
        checkIfDateTimeBarrierIsReached(nextTime, dateTimeBarrier);
    }

    return nextTime.toDateTime();
}

From source file:com.tmathmeyer.sentinel.ui.navigation.CalendarNavigationModule.java

License:Open Source License

public CalendarNavigationModule getPrevious() {
    MutableDateTime next = new MutableDateTime(time);
    next.addMonths(-1);
    return new CalendarNavigationModule(next.toDateTime(), mc, monthOnly);
}

From source file:com.tmathmeyer.sentinel.ui.navigation.CalendarNavigationModule.java

License:Open Source License

public CalendarNavigationModule getFollowing() {
    MutableDateTime next = new MutableDateTime(time);
    next.addMonths(1);
    return new CalendarNavigationModule(next.toDateTime(), mc, monthOnly);
}

From source file:com.tmathmeyer.sentinel.ui.navigation.MiniMonth.java

License:Open Source License

public MiniMonth(DateTime time, final MiniCalendarHostIface mc, boolean monthOnly) {
    this.setLayout(new GridLayout(7, 7));
    MutableDateTime prevMonth = new MutableDateTime(time);
    prevMonth.setDayOfMonth(1);/*from w  w w  .  j a va2  s.co m*/
    prevMonth.addMonths(-1); // What is prevMonth for?
    String[] dayLabel = { "S", "M", "T", "W", "R", "F", "S" };

    MouseListener monthChanger = new MouseListener() {
        @Override
        public void mouseClicked(MouseEvent me) {
        }

        @Override
        public void mouseEntered(MouseEvent me) {
        }

        @Override
        public void mouseExited(MouseEvent me) {
        }

        @Override
        public void mousePressed(MouseEvent me) {
        }

        @Override
        public void mouseReleased(MouseEvent me) {
            DayLabel d = (DayLabel) (me.getSource());
            if (!(d instanceof DescriptiveDayLabel)) {
                mc.display(d.getMonth());
            }
        }
    };

    MutableDateTime referenceDay = new MutableDateTime(time);
    // reset to the first of the month at midnight, then find Sunday
    referenceDay.setDayOfMonth(1);
    referenceDay.setMillisOfDay(0);
    int first = referenceDay.getDayOfWeek();
    referenceDay.addDays(-first);
    boolean flipFlop = false;

    // add day labels
    for (int i = 0; i < 7; i++) {
        DayLabel day = new DescriptiveDayLabel(dayLabel[i], time);
        day.borderize((i % 7) == 0, i >= 5 * 7, (i % 7) == 6);
        add(day);
        day.addMouseListener(monthChanger);
    }

    // generate days, 6*7 covers all possible months, so we just loop
    // through and add each day
    for (int i = 0; i < (6 * 7); i++) {
        DayLabel day;
        if (monthOnly || MainPanel.getInstance().getView() == ViewSize.Month) {
            if (referenceDay.getDayOfMonth() == 1)
                flipFlop ^= true; // flops the flip flop flappity flip
        } else if (MainPanel.getInstance().getView() == ViewSize.Day)
            flipFlop = referenceDay.getDayOfYear() == time.getDayOfYear()
                    && referenceDay.getYear() == time.getYear();
        else if (MainPanel.getInstance().getView() == ViewSize.Week) {
            if (Months.getWeekStart(time).getMonthOfYear() == 12
                    && Months.getWeekStart(time).getDayOfMonth() >= 26) // Exception
                // case
                // for
                // weeks
                // between
                // years
                flipFlop = time.getMonthOfYear() == 12 ? i >= 35 : i <= 6;
            else
                flipFlop = referenceDay.getDayOfYear() >= Months.getWeekStart(time).getDayOfYear()
                        && referenceDay.getDayOfYear() <= Months.getWeekStart(time).getDayOfYear() + 6;
        }

        if (flipFlop)
            day = new ActiveDayLabel(referenceDay.toDateTime());
        else
            day = new InactiveDayLabel(referenceDay.toDateTime());

        day.borderize((i % 7) == 0, i >= 5 * 7, (i % 7) == 6);
        add(day);
        day.addMouseListener(monthChanger);
        referenceDay.addDays(1); // go to next day
    }
}

From source file:com.tmathmeyer.sentinel.ui.views.month.MonthCalendar.java

License:Open Source License

public void next() {
    MutableDateTime fom = new MutableDateTime(time);
    fom.addMonths(1);
    time = fom.toDateTime();
    generateDays(fom);
}

From source file:com.tmathmeyer.sentinel.ui.views.month.MonthCalendar.java

License:Open Source License

public void previous() {
    MutableDateTime fom = new MutableDateTime(time);
    fom.addMonths(-1);
    time = fom.toDateTime();//w  w w  . j a  va  2s  . c  o m
    generateDays(fom);
}

From source file:com.tmathmeyer.sentinel.ui.views.year.YearCalendar.java

License:Open Source License

/**
 * /*from   w  w w.  ja  v a2 s  .  co m*/
 * @param mdt a mutable date time on which to start the calendar. this can
 *            be used to make the dynamic month scrolling work if needed.
 */
private void drawCalendar(MutableDateTime mdt) {
    this.removeAll();
    mdt = this.calendarStart = getStartOfYearCalendar(mdt.toDateTime());

    MutableDateTime upperBound = mdt.copy();
    upperBound.addDays(378);
    getVisibleEvents(mdt.toDateTime(), upperBound.toDateTime());

    MutableDateTime yearDate = mdt.copy();
    yearDate.addDays(20);
    int year = yearDate.getYear();

    JLabel title = new JLabel(year + "");
    title.setHorizontalAlignment(SwingConstants.CENTER);
    title.setFont(new Font("DejaVu Sans", Font.BOLD, 25));
    JPanel content = new JPanel();

    this.add(title, BorderLayout.NORTH);
    this.add(content, BorderLayout.CENTER);

    MutableDateTime monthCounter = mdt.copy();

    content.setLayout(new BoxLayout(content, 0));
    for (int i = 0; i < 3; i++) {
        content.add(new Box.Filler(new Dimension(0, 0), new Dimension(0, 0), new Dimension(65566, 0)));
        content.add(getFourMonthLabel(monthCounter.copy()));
        content.add(getFourMonthGrid(mdt.copy()));
        content.add(new Box.Filler(new Dimension(0, 0), new Dimension(0, 0), new Dimension(65566, 0)));
        mdt.addDays(18 * 7);
        monthCounter.addMonths(4);
    }
}

From source file:com.tmathmeyer.sentinel.ui.views.year.YearCalendar.java

License:Open Source License

/**
 * get the vertical text labels for the months
 * // w  w w  .  j  a  va  2 s  .  c  om
 * @param start the first day in the series
 * @return the JPanel that contains the 4 month labels
 */
private JPanel getFourMonthLabel(MutableDateTime start) {
    JPanel p = new JPanel();
    p.setLayout(new GridLayout(4, 1));
    for (int i = 0; i < 4; i++) {
        start.addMonths(1);
        JLabel l = new JLabel(start.monthOfYear().getAsText());
        l.setHorizontalAlignment(SwingConstants.CENTER);
        l.setFont(new Font("DejaVu Sans", Font.BOLD, 16));
        l.setUI(new VerticalLabelUI(false));

        p.add(l);

    }

    int width = 50;
    int height = 570;

    p.setMinimumSize(new Dimension(width, height - 150));
    p.setPreferredSize(new Dimension(width, height));
    p.setMaximumSize(new Dimension(width, height + 150));

    return p;
}

From source file:com.tmathmeyer.sentinel.utils.Months.java

License:Open Source License

public static DateTime nextMonth(DateTime time) {
    MutableDateTime mdt = new MutableDateTime(time);
    mdt.addMonths(1);
    return mdt.toDateTime();
}