List of usage examples for org.joda.time Interval contains
public boolean contains(long millisInstant)
From source file:com.sos.scheduler.model.objects.JSObjRunTime.java
License:Apache License
public List<DateTime> getDtSingleStarts(final Interval timeRange) { // get all runtimes one including one day before and one day after the given time range also // because some holiday defintion could move the calculated dates into the original timeRange given // in the parameter (see getStartDatesAwareHolidays) Interval extendedTimeRange = new Interval(timeRange.getStart().minusDays(1), timeRange.getEnd().plusDays(1)); RunTimeElements runTimes = new RunTimeElements(timeRange); runTimes.putAll(getDtWeekdays(extendedTimeRange)); runTimes.putAll(getDtPeriod(extendedTimeRange)); runTimes.putAll(getDtAt(extendedTimeRange)); runTimes.putAll(getDtDate(extendedTimeRange)); runTimes.putAll(getDtMonthdays(extendedTimeRange)); runTimes.putAll(getDtUltimos(extendedTimeRange)); // the single start given in the run_time element is only relevant if no subsequent // period element is given. if (runTimes.size() == 0) { RunTimeElements periodStartTimes = period.getRunTimeElements(extendedTimeRange); runTimes.putAll(periodStartTimes); }/*from ww w . ja va2 s.c o m*/ List<DateTime> result = new ArrayList<DateTime>(); for (DateTime d : getJsObjHolidays().getStartDatesAwareHolidays(runTimes)) { if (timeRange.contains(d)) // only dates inside the given time range should be in the result set result.add(d); } return result; }
From source file:com.sos.scheduler.model.objects.JSObjUltimosDay.java
License:Apache License
@Override public RunTimeElements getRunTimeElements(Interval timeRange) { RunTimeElements result = new RunTimeElements(timeRange); Iterator<Integer> it = getDay().iterator(); while (it.hasNext()) { int day = it.next(); DateTime date = JodaTools.getDayInIntervalOrNull(timeRange, (day * -1)); while (date != null) { Iterator<Period> itP = getPeriod().iterator(); while (itP.hasNext()) { Period p = itP.next(); JSObjPeriod period = new JSObjPeriod(objFactory); period.setObjectFieldsFrom(p); DateTime start = period.getDtSingleStartOrNull(date); if (start != null && timeRange.contains(start)) result.add(new RunTimeElement(start, period.getWhenHoliday())); }/*from w ww. jav a2s .c om*/ DateTime start = JodaTools.getStartOfMonth(date.plusMonths(1)); if (!timeRange.contains(start)) break; Interval i = new Interval(start, timeRange.getEnd()); date = JodaTools.getDayInIntervalOrNull(i, day); } } // Collections.sort(result, DateTimeComparator.getInstance()); return result; }
From source file:com.sos.scheduler.model.objects.JSObjWeekday.java
License:Apache License
@Override public RunTimeElements getRunTimeElements(Interval timeRange) { RunTimeElements result = new RunTimeElements(timeRange); int which = Integer.valueOf(getWhich()); Iterator<String> it = getDay().iterator(); while (it.hasNext()) { String dayList = it.next(); List<Integer> weekdays = JodaTools.getJodaWeekdays(dayList); for (int weekday : weekdays) { DateTime d = JodaTools.getWeekdayInIntervalOrNull(timeRange, weekday, which); while (d != null) { Iterator<Period> itP = getPeriod().iterator(); while (itP.hasNext()) { Period p = itP.next(); JSObjPeriod period = new JSObjPeriod(objFactory); period.setObjectFieldsFrom(p); DateTime start = period.getDtSingleStartOrNull(d); if (start != null && timeRange.contains(start)) result.add(new RunTimeElement(start, period.getWhenHoliday())); }/*from w w w .ja va2s . c o m*/ DateTime start = JodaTools.getStartOfMonth(d.plusMonths(1)); if (!timeRange.contains(start)) break; Interval i = new Interval(start, timeRange.getEnd()); d = JodaTools.getWeekdayInIntervalOrNull(i, weekday, which); } } } // Collections.sort(result, DateTimeComparator.getInstance()); return result; }
From source file:com.sos.scheduler.model.objects.JSObjWeekdaysDay.java
License:Apache License
@Override public RunTimeElements getRunTimeElements(Interval timeRange) { RunTimeElements result = new RunTimeElements(timeRange); RunTimeElements work = getNextSingleStarts(timeRange.getStart()); for (RunTimeElement runtime : work.values()) { DateTime date = runtime.getStartDate(); if (timeRange.contains(date)) { while (timeRange.contains(date)) { result.add(new RunTimeElement(date, runtime.getWhenHoliday())); date = date.plusWeeks(1); }/*from w ww. jav a2s. c o m*/ } } // Collections.sort(result, DateTimeComparator.getInstance()); return result; }
From source file:com.stagecents.common.EffectiveDateInterval.java
License:Open Source License
public boolean isEffective(DateTime effectiveDate) { Interval interval = new Interval(startDate, endDate); return interval.contains(effectiveDate); }
From source file:com.stagecents.common.EffectiveDateInterval.java
License:Open Source License
public boolean isEffective(LocalDate effectiveDate) { Interval period = new Interval(startDate, endDate); return period.contains(effectiveDate.toInterval()); }
From source file:com.tmathmeyer.sentinel.ui.views.day.DayCalendar.java
License:Open Source License
private boolean isDisplayableInInterval(Displayable mDisplayable, Interval mInterval) { DateTime s = mDisplayable.getStart(); if (this.time.isAfter(s)) s = this.time; return (mInterval.contains(s)); }
From source file:com.tmathmeyer.sentinel.ui.views.week.WeekCalendar.java
License:Open Source License
private boolean isDisplayableInInterval(Displayable mDisplayable, Interval mInterval) { DateTime s = mDisplayable.getStart(), e = mDisplayable.getEnd(); if (this.weekStartTime.isAfter(s)) s = weekStartTime;//from w ww . j a v a 2 s . c o m return (s.isBefore(e) && mInterval.contains(s)); }
From source file:com.yahoo.bard.webservice.util.DateTimeUtils.java
License:Apache License
/** * Finds the gaps in available vs needed interval sets. * * @param availableIntervals availability intervals * @param neededIntervals needed intervals * * @return set of intervals that are needed, but not fully available. */// w w w . j av a2 s . co m public static SortedSet<Interval> findFullAvailabilityGaps(Set<Interval> availableIntervals, Set<Interval> neededIntervals) { // Use just one comparator Comparator<Interval> intervalStartComparator = new IntervalStartComparator(); // Sort the intervals by start time, earliest to latest so we iterate over them in order SortedSet<Interval> sortedAvailableIntervals = new TreeSet<>(intervalStartComparator); sortedAvailableIntervals.addAll(availableIntervals); SortedSet<Interval> sortedNeededIntervals = new TreeSet<>(intervalStartComparator); sortedNeededIntervals.addAll(neededIntervals); // TODO: Consolidate available intervals to remove false misses // Get the 1st available interval Iterator<Interval> availableIntervalsIterator = sortedAvailableIntervals.iterator(); if (!availableIntervalsIterator.hasNext()) { // We have no available intervals so all needed intervals are missing return sortedNeededIntervals; } Interval available = availableIntervalsIterator.next(); // Walk through the needed intervals, adding missing ones SortedSet<Interval> missingIntervals = new TreeSet<>(intervalStartComparator); for (Interval needed : sortedNeededIntervals) { // Get the next available interval that can determine availability of the needed interval while (!canDetermineAvailability(available, needed) && availableIntervalsIterator.hasNext()) { available = availableIntervalsIterator.next(); } // If current available interval contains the needed interval, it's not missing. Next! if (available.contains(needed)) { continue; } // Either the needed interval starts before the available interval, or we have no other available intervals. missingIntervals.add(needed); } return missingIntervals; }
From source file:com.yahoo.bard.webservice.util.DateTimeUtils.java
License:Apache License
/** * Check to see if we can determine availability from the given available and needed intervals. * * @param available Available interval/*from w w w . j a v a 2s. com*/ * @param needed Needed interval * * @return True if we can determine availability, false if not */ private static boolean canDetermineAvailability(Interval available, Interval needed) { if (available != null && needed != null) { if (available.contains(needed) || available.getStart().isAfter(needed.getStart())) { return true; } } return false; }