Example usage for org.joda.time Interval contains

List of usage examples for org.joda.time Interval contains

Introduction

In this page you can find the example usage for org.joda.time Interval contains.

Prototype

public boolean contains(long millisInstant) 

Source Link

Document

Does this time interval contain the specified millisecond instant.

Usage

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;
}