public boolean checkMoment(Date date) { if (calendar != null) { Period period = new Period(new DateTime(date), new Dur(0, 0, 0, 0)); Predicate<CalendarComponent> periodRule = new PeriodRule<>(period); Filter<CalendarComponent> filter = new Filter<>(new Predicate[] {periodRule}, Filter.MATCH_ANY); Collection<CalendarComponent> events = filter.filter(calendar.getComponents(CalendarComponent.VEVENT)); if (events != null && !events.isEmpty()) { return true; } } return false; }
/** * @param date a date to test for inclusion * @param inclusive indicates if the start and end of the period are included in the test * @return true if the specified date occurs within the current period * @deprecated use {@link Period#includes(Date, int)} instead. */ public final boolean includes(final Date date, final boolean inclusive) { if (inclusive) { return includes(date, INCLUSIVE_START | INCLUSIVE_END); } else { return includes(date, 0); } }
final PeriodList result = new PeriodList(); if (period.contains(this)) { return result; else if (!period.intersects(this)) { result.add(this); return result; if (!period.getStart().after(getStart())) { newPeriodStart = period.getEnd(); newPeriodEnd = getEnd(); else if (!period.getEnd().before(getEnd())) { newPeriodStart = getStart(); newPeriodEnd = period.getStart(); newPeriodStart = getStart(); newPeriodEnd = period.getStart(); result.add(new Period(newPeriodStart, newPeriodEnd)); newPeriodStart = period.getEnd(); newPeriodEnd = getEnd(); result.add(new Period(newPeriodStart, newPeriodEnd)); return result;
public FreeBusy build() { final FreeBusy fb = new FreeBusy(); fb.getParameters().add(FbType.FREE); final PeriodList periods = getConsumedTime(components, start, end); final DateRange range = new DateRange(start, end); // Add final consumed time to avoid special-case end-of-list processing periods.add(new Period(end, end)); DateTime lastPeriodEnd = new DateTime(start); // where no time is consumed set the last period end as the range start.. for (final Period period : periods) { // check if period outside bounds.. or period intersects with the end of the range.. if (range.contains(period) || (range.intersects(period) && period.getStart().after(range.getRangeStart()))) { // calculate duration between this period start and last period end.. final Duration freeDuration = new Duration(lastPeriodEnd, period.getStart()); if (freeDuration.getDuration().compareTo(duration) >= 0) { fb.getPeriods().add(new Period(lastPeriodEnd, freeDuration.getDuration())); } } if (period.getEnd().after(lastPeriodEnd)) { lastPeriodEnd = period.getEnd(); } } return fb; } }
/** * Compares the specified period with this period. * First, compare the start dates. If they are the same, compare the end dates. * * @param arg0 a period to compare with this one * @return a postive value if this period is greater, negative if the other is * greater, or zero if they are equal */ public final int compareTo(final Period arg0) { // Throws documented exception if type is wrong or parameter is null if (arg0 == null) { throw new ClassCastException("Cannot compare this object to null"); } final int startCompare = getStart().compareTo(arg0.getStart()); if (startCompare != 0) { return startCompare; } // start dates are equal, compare end dates.. else if (duration == null) { final int endCompare = getEnd().compareTo(arg0.getEnd()); if (endCompare != 0) { return endCompare; } } // ..or durations return getDuration().compareTo(arg0.getDuration()); }
for (Period period1 : this) { period = period1; if (period.isEmpty()) { period = prevPeriod; normalised = true; } else if (prevPeriod != null) { if (prevPeriod.contains(period)) { period = prevPeriod; normalised = true; else if (prevPeriod.intersects(period)) { period = prevPeriod.add(period); normalised = true; else if (prevPeriod.adjacent(period)) { period = prevPeriod.add(period); normalised = true; } else {
end.setUtc(true); Period p = new Period(start, end); assertFalse(p.getStart().isUtc()); assertFalse(p.getEnd().isUtc()); p = new Period(start, end); assertTrue(p.getStart().isUtc()); assertTrue(p.getEnd().isUtc()); p.setUtc(false); assertFalse(p.getStart().isUtc()); assertFalse(p.getEnd().isUtc()); p.setUtc(true); p.setTimeZone(timezone); assertFalse(p.getStart().isUtc()); assertFalse(p.getEnd().isUtc()); assertEquals(timezone, p.getStart().getTimeZone()); assertEquals(timezone, p.getEnd().getTimeZone());
InstanceList instances = new InstanceList(); instances.setTimezone(tz); instances.addComponent(freeBusy, period.getStart(),period.getEnd()); return instances.size() > 0; while(periodIt.hasNext()) { Period fbPeriod = periodIt.next(); if(fbPeriod.intersects(period)) { return true;
cal.set(1994, java.util.Calendar.JULY, 29); DateTime jul1994 = new DateTime(cal.getTime().getTime()); Period year1994 = new Period(begin1994, end1994); Period monthMarch = new Period(mar1994, apr1994); Period monthApril = new Period(apr1994, may1994); Period monthMay = new Period(may1994, jun1994); Period firstHalf = new Period(begin1994, jun1994); Period lastHalf = new Period(may1994, end1994); Period winter = new Period(begin1994, apr1994); Period spring = new Period(apr1994, jul1994); Period marchToMay = new Period(mar1994, jun1994); Period marchToApril = new Period(mar1994, may1994); testPeriod = new Period(past, future); suite.addTest(new PeriodTest("testGetStart", testPeriod, past)); suite.addTest(new PeriodTest("testGetEnd", testPeriod, future)); suite.addTest(new PeriodTest("testEquals", monthMarch.add(monthMay), marchToMay)); suite.addTest(new PeriodTest("testEquals", monthMay.add(monthMarch), marchToMay)); suite.addTest(new PeriodTest("testEquals", monthMarch.add(monthApril), marchToApril)); suite.addTest(new PeriodTest("testEquals", monthApril.add(monthMarch), marchToApril)); suite.addTest(new PeriodTest("testEquals", firstHalf.add(lastHalf), year1994)); suite.addTest(new PeriodTest("testEquals", lastHalf.add(firstHalf), year1994)); suite.addTest(new PeriodTest("testEquals", winter.add(monthMarch), winter)); suite.addTest(new PeriodTest("testEquals", monthMarch.add(winter), winter)); suite.addTest(new PeriodListTest("testIsEmpty", firstHalf.subtract(year1994))); suite.addTest(new PeriodListTest("testIsEmpty", winter.subtract(winter)));
/** * Unit tests for {@link Period#isEmpty()}. */ public void testIsEmpty() { Calendar cal = Calendar.getInstance(); DateTime start = new DateTime(cal.getTime()); assertTrue(new Period(start, start).isEmpty()); assertTrue(new Period(start, java.time.Period.ZERO).isEmpty()); cal.add(Calendar.SECOND, 1); assertFalse(new Period(start, new DateTime(cal.getTime())).isEmpty()); assertFalse(new Period(start, java.time.Duration.ofSeconds(1)).isEmpty()); }
/** * Add a period to the list. * * @param period * the period to add * @return true * @see java.util.List#add(java.lang.Object) */ public final boolean add(final Period period) { if (isUtc()) { period.setUtc(true); } else { period.setTimeZone(timezone); } return periods.add(period); }
/** * */ public void testGetStart() { assertEquals(expectedDate, period.getStart()); }
/** * */ public void testGetEnd() { assertEquals(expectedDate, period.getEnd()); }
/** * Add all periods that intersect a given period to the result PeriodList. */ private void addRelevantPeriods(PeriodList results, PeriodList periods, Period range) { for (Iterator<Period> it = periods.iterator(); it.hasNext();) { Period p = it.next(); if (p.intersects(range)) results.add(p); } }
/** * Applies the specified timezone to all dates in the list. * All dates added to this list will also have this timezone * applied. * @param timeZone the timezone for the period list */ public final void setTimeZone(final TimeZone timeZone) { for (final Period period : this) { period.setTimeZone(timeZone); } this.timezone = timeZone; this.utc = false; }
/** * */ public void testNotContains() { assertFalse(period.contains(expectedPeriod)); }
final PeriodList result = new PeriodList(); if (period.contains(this)) { return result; else if (!period.intersects(this)) { result.add(this); return result; if (!period.getStart().after(getStart())) { newPeriodStart = period.getEnd(); newPeriodEnd = getEnd(); else if (!period.getEnd().before(getEnd())) { newPeriodStart = getStart(); newPeriodEnd = period.getStart(); newPeriodStart = getStart(); newPeriodEnd = period.getStart(); result.add(new Period(newPeriodStart, newPeriodEnd)); newPeriodStart = period.getEnd(); newPeriodEnd = getEnd(); result.add(new Period(newPeriodStart, newPeriodEnd)); return result;
public FreeBusy build() { final FreeBusy fb = new FreeBusy(); fb.getParameters().add(FbType.FREE); final PeriodList periods = getConsumedTime(components, start, end); final DateRange range = new DateRange(start, end); // Add final consumed time to avoid special-case end-of-list processing periods.add(new Period(end, end)); DateTime lastPeriodEnd = new DateTime(start); // where no time is consumed set the last period end as the range start.. for (final Period period : periods) { // check if period outside bounds.. or period intersects with the end of the range.. if (range.contains(period) || (range.intersects(period) && period.getStart().after(range.getRangeStart()))) { // calculate duration between this period start and last period end.. final Duration freeDuration = new Duration(lastPeriodEnd, period.getStart()); if (freeDuration.getDuration().compareTo(duration) >= 0) { fb.getPeriods().add(new Period(lastPeriodEnd, freeDuration.getDuration())); } } if (period.getEnd().after(lastPeriodEnd)) { lastPeriodEnd = period.getEnd(); } } return fb; } }
/** * Compares the specified period with this period. * * @param arg0 a period to compare with this one * @return a postive value if this period is greater, negative if the other is * greater, or zero if they are equal */ public final int compareTo(final Period arg0) { // Throws documented exception if type is wrong or parameter is null if (arg0 == null) { throw new ClassCastException("Cannot compare this object to null"); } final int startCompare = getStart().compareTo(arg0.getStart()); if (startCompare != 0) { return startCompare; } // start dates are equal, compare end dates.. else if (duration == null) { final int endCompare = getEnd().compareTo(arg0.getEnd()); if (endCompare != 0) { return endCompare; } } // ..or durations return getDuration().compareTo(arg0.getDuration()); }