List of usage examples for org.joda.time PeriodType hours
public static PeriodType hours()
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; }