List of usage examples for org.joda.time MutableDateTime addMonths
public void addMonths(final int months)
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(); }