Example usage for org.joda.time PeriodType hours

List of usage examples for org.joda.time PeriodType hours

Introduction

In this page you can find the example usage for org.joda.time PeriodType hours.

Prototype

public static PeriodType hours() 

Source Link

Document

Gets a type that defines just the hours field.

Usage

From source file:com.nestedbird.models.eventtime.EventTime.java

License:Open Source License

/**
 * Gets all occurrences of an event time
 *
 * @param fromTime the from time/*from  w  w  w.j a va2 s.  c  o m*/
 * @return list of occurrences
 */
@JsonIgnore
public List<ParsedEventData> getOccurrences(final long fromTime) {
    List<ParsedEventData> parsedResults = new ArrayList<>();

    if (getStartTime() == null) {
        return parsedResults;
    }

    final long startTime = getStartTime().getMillis();

    if (startTime >= fromTime) {
        parsedResults.add(generateParsedEventData(startTime, getDuration(), event.getId()));
    }

    if ((getRepeatTime() != null)
            && (getRepeatTime().normalizedStandard(PeriodType.hours()).getHours() >= 24)) {
        final long finalTime = DateTime.now().plusWeeks(6).getMillis();
        final long lastTime = (getRepeatEnd() != null) ? getRepeatEnd().getMillis() : finalTime;
        final long newLastTime = lastTime <= finalTime ? lastTime : finalTime;
        final long timeDifference = newLastTime - startTime;

        if (timeDifference > 0) {
            final long repeatTime = getRepeatTime().normalizedStandard(PeriodType.millis()).getMillis();
            final int repeatOccurrences = (int) Math.floor((double) timeDifference / (double) repeatTime);

            for (int i = 1; i <= Math.min(repeatOccurrences, 10); i++) {
                final long occurrenceTime = startTime + (repeatTime * i);
                if (occurrenceTime >= fromTime) {
                    parsedResults.add(generateParsedEventData(occurrenceTime, getDuration(), event.getId()));
                }
            }
        }
    }

    return parsedResults;
}

From source file:com.netflix.ice.basic.BasicDataManager.java

License:Apache License

private double[] getData(Interval interval, TagLists tagLists) throws ExecutionException {
    DateTime start = config.startDate;/*from  www.  j a  v  a 2s .com*/
    DateTime end = config.startDate;

    if (consolidateType == ConsolidateType.hourly) {
        start = interval.getStart().withDayOfMonth(1).withMillisOfDay(0);
        end = interval.getEnd();
    } else if (consolidateType == ConsolidateType.daily) {
        start = interval.getStart().withDayOfYear(1).withMillisOfDay(0);
        end = interval.getEnd();
    }

    int num = 0;
    if (consolidateType == ConsolidateType.hourly) {
        num = interval.toPeriod(PeriodType.hours()).getHours();
        if (interval.getStart().plusHours(num).isBefore(interval.getEnd()))
            num++;
    } else if (consolidateType == ConsolidateType.daily) {
        num = interval.toPeriod(PeriodType.days()).getDays();
        if (interval.getStart().plusDays(num).isBefore(interval.getEnd()))
            num++;
    } else if (consolidateType == ConsolidateType.weekly) {
        num = interval.toPeriod(PeriodType.weeks()).getWeeks();
        if (interval.getStart().plusWeeks(num).isBefore(interval.getEnd()))
            num++;
    } else if (consolidateType == ConsolidateType.monthly) {
        num = interval.toPeriod(PeriodType.months()).getMonths();
        if (interval.getStart().plusMonths(num).isBefore(interval.getEnd()))
            num++;
    }

    double[] result = new double[num];

    do {
        ReadOnlyData data = getReadOnlyData(start);

        int resultIndex = 0;
        int fromIndex = 0;

        if (interval.getStart().isBefore(start)) {
            if (consolidateType == ConsolidateType.hourly) {
                resultIndex = Hours.hoursBetween(interval.getStart(), start).getHours();
            } else if (consolidateType == ConsolidateType.daily) {
                resultIndex = Days.daysBetween(interval.getStart(), start).getDays();
            } else if (consolidateType == ConsolidateType.weekly) {
                resultIndex = Weeks.weeksBetween(interval.getStart(), start).getWeeks();
            } else if (consolidateType == ConsolidateType.monthly) {
                resultIndex = Months.monthsBetween(interval.getStart(), start).getMonths();
            }
        } else {
            if (consolidateType == ConsolidateType.hourly) {
                fromIndex = Hours.hoursBetween(start, interval.getStart()).getHours();
            } else if (consolidateType == ConsolidateType.daily) {
                fromIndex = Days.daysBetween(start, interval.getStart()).getDays();
            } else if (consolidateType == ConsolidateType.weekly) {
                fromIndex = Weeks.weeksBetween(start, interval.getStart()).getWeeks();
                if (start.getDayOfWeek() != interval.getStart().getDayOfWeek())
                    fromIndex++;
            } else if (consolidateType == ConsolidateType.monthly) {
                fromIndex = Months.monthsBetween(start, interval.getStart()).getMonths();
            }
        }

        List<Integer> columeIndexs = Lists.newArrayList();
        int columeIndex = 0;
        for (TagGroup tagGroup : data.getTagGroups()) {
            if (tagLists.contains(tagGroup))
                columeIndexs.add(columeIndex);
            columeIndex++;
        }
        while (resultIndex < num && fromIndex < data.getNum()) {
            double[] fromData = data.getData(fromIndex++);
            for (Integer cIndex : columeIndexs)
                result[resultIndex] += fromData[cIndex];
            resultIndex++;
        }

        if (consolidateType == ConsolidateType.hourly)
            start = start.plusMonths(1);
        else if (consolidateType == ConsolidateType.daily)
            start = start.plusYears(1);
        else
            break;
    } while (start.isBefore(end));

    return result;
}

From source file:com.netflix.ice.basic.BasicThroughputMetricService.java

License:Apache License

public double[] getData(Interval interval, ConsolidateType consolidateType) throws Exception {
    DateTime start = interval.getStart().withDayOfMonth(1).withMillisOfDay(0);
    DateTime end = interval.getEnd();/*from www.j  a va 2 s . c  om*/

    int num = interval.toPeriod(PeriodType.hours()).getHours();
    if (interval.getStart().plusHours(num).isBefore(interval.getEnd()))
        num++;

    double[] hourly = new double[num];
    List<Double> monthly = Lists.newArrayList();
    do {
        double total = 0;
        int resultIndex = interval.getStart().isBefore(start)
                ? Hours.hoursBetween(interval.getStart(), start).getHours()
                : 0;
        int fromIndex = interval.getStart().isBefore(start) ? 0
                : Hours.hoursBetween(start, interval.getStart()).getHours();

        double[] data = this.data.get(start);
        while (resultIndex < num && fromIndex < data.length) {
            total += data[fromIndex];
            hourly[resultIndex++] = data[fromIndex++];
        }

        start = start.plusMonths(1);
        monthly.add(total);
    } while (start.isBefore(end));

    int hoursInPeriod = (int) (consolidateType.millis / AwsUtils.hourMillis);
    num = consolidateType == ConsolidateType.monthly ? monthly.size()
            : (int) Math.ceil(1.0 * num / hoursInPeriod);
    double[] result = new double[num];

    if (consolidateType == ConsolidateType.monthly) {
        for (int i = 0; i < num; i++)
            result[i] = monthly.get(i);
    } else {
        for (int i = 0; i < hourly.length; i++)
            result[i / hoursInPeriod] += hourly[i];
    }
    return result;
}

From source file:com.webarch.common.datetime.DateTimeUtils.java

License:Apache License

/**
 * ??//from  w  w w  . ja  va  2  s  .  com
 *
 * @param startTime
 * @param endTime
 * @return
 */
public static long getPeriodHours(Date startTime, Date endTime) {
    return getTimePeriod(startTime, endTime, PeriodType.hours()).getHours();
}

From source file:dk.teachus.frontend.components.calendar.CalendarPanel.java

License:Apache License

private int calculateNumberOfCalendarHours() {
    DateTime calStart = getCalendarStartTime().toDateTimeToday();
    DateTime calEnd = getCalendarEndTime().toDateTimeToday();
    if (getCalendarEndTime().getHourOfDay() == 0 && getCalendarEndTime().getMinuteOfHour() == 0) {
        calEnd = calEnd.plusDays(1);//from ww w  .  j  a  v  a 2  s. c o m
    }
    if (calEnd.getMinuteOfHour() > 0) {
        calEnd = calEnd.plusHours(1).withMinuteOfHour(0);
    }
    return new org.joda.time.Period(calStart, calEnd, PeriodType.hours()).getHours();
}

From source file:org.jadira.usertype.dateandtime.joda.columnmapper.StringColumnPeriodMapper.java

License:Apache License

private PeriodType determinePeriodType(String s) {

    PeriodType periodType = PeriodType.standard();

    String current = s;// www. j ava 2s.com

    if (current.startsWith(PeriodType.standard().getName())) {
        periodType = PeriodType.standard();
        current = s.substring(PeriodType.standard().getName().length());

    } else if (current.startsWith(PeriodType.yearMonthDayTime().getName())) {
        periodType = PeriodType.yearMonthDayTime();
        current = s.substring(PeriodType.yearMonthDayTime().getName().length());

    } else if (current.startsWith(PeriodType.yearMonthDay().getName())) {
        periodType = PeriodType.yearMonthDay();
        current = s.substring(PeriodType.yearMonthDay().getName().length());

    } else if (current.startsWith(PeriodType.yearWeekDayTime().getName())) {
        periodType = PeriodType.yearWeekDayTime();
        current = s.substring(PeriodType.yearWeekDayTime().getName().length());

    } else if (current.startsWith(PeriodType.yearWeekDay().getName())) {
        periodType = PeriodType.yearWeekDay();
        current = s.substring(PeriodType.yearWeekDay().getName().length());

    } else if (current.startsWith(PeriodType.yearDayTime().getName())) {
        periodType = PeriodType.yearDayTime();
        current = s.substring(PeriodType.yearDayTime().getName().length());

    } else if (current.startsWith(PeriodType.yearDay().getName())) {
        periodType = PeriodType.yearDay();
        current = s.substring(PeriodType.yearDay().getName().length());

    } else if (current.startsWith(PeriodType.dayTime().getName())) {
        periodType = PeriodType.dayTime();
        current = s.substring(PeriodType.dayTime().getName().length());

    } else if (current.startsWith(PeriodType.time().getName())) {
        periodType = PeriodType.time();
        current = s.substring(PeriodType.time().getName().length());

    } else if (current.startsWith(PeriodType.years().getName())) {
        periodType = PeriodType.years();
        current = s.substring(PeriodType.years().getName().length());

    } else if (current.startsWith(PeriodType.months().getName())) {
        periodType = PeriodType.months();
        current = s.substring(PeriodType.months().getName().length());

    } else if (current.startsWith(PeriodType.weeks().getName())) {
        periodType = PeriodType.weeks();
        current = s.substring(PeriodType.weeks().getName().length());

    } else if (current.startsWith(PeriodType.days().getName())) {
        periodType = PeriodType.days();
        current = s.substring(PeriodType.days().getName().length());

    } else if (current.startsWith(PeriodType.hours().getName())) {
        periodType = PeriodType.hours();
        current = s.substring(PeriodType.hours().getName().length());

    } else if (current.startsWith(PeriodType.minutes().getName())) {
        periodType = PeriodType.minutes();
        current = s.substring(PeriodType.minutes().getName().length());

    } else if (current.startsWith(PeriodType.seconds().getName())) {
        periodType = PeriodType.seconds();
        current = s.substring(PeriodType.seconds().getName().length());

    } else if (current.startsWith(PeriodType.millis().getName())) {
        periodType = PeriodType.millis();
        current = s.substring(PeriodType.millis().getName().length());
    }

    while (current.length() > 0) {

        if (current.startsWith("NoYears")) {
            periodType = periodType.withYearsRemoved();
            current = s.substring("NoYears".length());
        } else if (current.startsWith("NoMonths")) {
            periodType = periodType.withMonthsRemoved();
            current = s.substring("NoMonths".length());
        } else if (current.startsWith("NoWeeks")) {
            periodType = periodType.withWeeksRemoved();
            current = s.substring("NoWeeks".length());
        } else if (current.startsWith("NoDays")) {
            periodType = periodType.withDaysRemoved();
            current = s.substring("NoDays".length());
        } else if (current.startsWith("NoHours")) {
            periodType = periodType.withHoursRemoved();
            current = s.substring("NoHours".length());
        } else if (current.startsWith("NoMinutes")) {
            periodType = periodType.withMinutesRemoved();
            current = s.substring("NoMinutes".length());
        } else if (current.startsWith("NoSeconds")) {
            periodType = periodType.withSecondsRemoved();
            current = s.substring("NoSeconds".length());
        } else if (current.startsWith("NoMillis")) {
            periodType = periodType.withMillisRemoved();
            current = s.substring("NoMillis".length());
        } else {
            throw new IllegalArgumentException("Unrecognised PeriodType: " + s + "{" + current + "}");
        }
    }
    return periodType;
}