@Override public Duration getDuration() { if (duration == null) { Duration totalDuration = new Duration(0); for (Interval interval : querySegmentSpec.getIntervals()) { if (interval != null) { totalDuration = totalDuration.plus(interval.toDuration()); } } duration = totalDuration; } return duration; }
@Test public void testMinMaxInterval() { Assert.assertEquals(Long.MAX_VALUE, Intervals.ETERNITY.toDuration().getMillis()); }
@Test public void testMinMaxDuration() { final Duration duration = Intervals.ETERNITY.toDuration(); Assert.assertEquals(Long.MAX_VALUE, duration.getMillis()); Assert.assertEquals("PT9223372036854775.807S", duration.toString()); }
if (createdTimeInterval != null) { final Interval theInterval = Intervals.of(StringUtils.replace(createdTimeInterval, "_", "/")); createdTimeDuration = theInterval.toDuration();
@Test(expected = ArithmeticException.class) public void testMinMaxPeriod() { final Period period = Intervals.ETERNITY.toDuration().toPeriod(); Assert.assertEquals(Long.MAX_VALUE, period.getMinutes()); }
if (remaininInterval.toDuration().isLongerThan(spec.segmentPeriod.toStandardDuration())) { segmentInterval = new Interval(spec.segmentPeriod, remaininInterval.getEnd()); } else {
Assert.assertEquals(expectedStringIntervals, actualEvent.get(DruidMetrics.INTERVAL)); Assert.assertEquals("false", actualEvent.get("hasFilters")); Assert.assertEquals(expectedIntervals.get(0).toDuration().toString(), actualEvent.get("duration")); Assert.assertEquals("", actualEvent.get(DruidMetrics.ID));
Assert.assertEquals(expectedStringIntervals, actualEvent.get(DruidMetrics.INTERVAL)); Assert.assertEquals("false", actualEvent.get("hasFilters")); Assert.assertEquals(expectedIntervals.get(0).toDuration().toString(), actualEvent.get("duration")); Assert.assertEquals("", actualEvent.get(DruidMetrics.ID));
Assert.assertEquals(expectedStringIntervals, actualEvent.get(DruidMetrics.INTERVAL)); Assert.assertEquals("false", actualEvent.get("hasFilters")); Assert.assertEquals(expectedIntervals.get(0).toDuration().toString(), actualEvent.get("duration")); Assert.assertEquals("", actualEvent.get(DruidMetrics.ID));
Assert.assertEquals(expectedStringIntervals, actualEvent.get(DruidMetrics.INTERVAL)); Assert.assertEquals("true", actualEvent.get("hasFilters")); Assert.assertEquals(expectedIntervals.get(0).toDuration().toString(), actualEvent.get("duration")); Assert.assertEquals("", actualEvent.get(DruidMetrics.ID));
Assert.assertEquals(expectedStringIntervals, actualEvent.get(DruidMetrics.INTERVAL)); Assert.assertEquals("true", actualEvent.get("hasFilters")); Assert.assertEquals(expectedIntervals.get(0).toDuration().toString(), actualEvent.get("duration")); Assert.assertEquals("", actualEvent.get(DruidMetrics.ID)); Assert.assertEquals("query/time", actualEvent.get("metric"));
Assert.assertEquals(Collections.singletonList(expectedInterval.toString()), actualEvent.get(DruidMetrics.INTERVAL)); Assert.assertEquals("true", actualEvent.get("hasFilters")); Assert.assertEquals(expectedInterval.toDuration().toString(), actualEvent.get("duration")); Assert.assertEquals("", actualEvent.get(DruidMetrics.ID));
import org.joda.time.DateTime; import org.joda.time.Interval; import org.joda.time.Duration; long someMethod(){ DateTime start = new DateTime(2004, 12, 25, 0, 0, 0, 0); DateTime end = new DateTime(2005, 1, 1, 0, 0, 0, 0); Interval interval = new Interval(start, end); Duration duration = interval.toDuration(); //duration represents time in ms, from here do your conversions to any other unit. return duration.getStandardHours() }
String a = "00:01:09:340"; String b = "00:02:03:430"; DateTimeFormatter format = DateTimeFormat.forPattern("HH:mm:ss:SSS"); DateTime oldTime = DateTime.parse(a, format); DateTime newTime = DateTime.parse(b, format); Interval interval = new Interval(oldTime, newTime); System.out.println(new StringBuffer("hours: ").append(interval.toDuration().getStandardHours()) .append(" minutes: ").append(interval.toDuration().getStandardMinutes()).append(" seconds: ") .append(interval.toDuration().getStandardSeconds()).append(" milliseconds: ") .append(interval.toPeriod().getMillis()).toString());
public static void main(String[] args) { DateTimeFormatter formatter = DateTimeFormat.forPattern("HH:mm"); DateTime first = formatter.parseDateTime("15:00"); DateTime second = formatter.parseDateTime("15:49"); Interval interval = new Interval(first, second); System.err.println(interval.toDuration().getStandardMinutes()); }
DateTime startDate; DateTime endDate; Interval interval; Duration duration; startDate = new DateTime(year, month, day, hour, minute, second); endDate = startDate.plusYears(plusYear); interval = new Interval(startDate, endDate); duration = interval.toDuration(); System.out.println("Days between startDate and endDate: " + duration.getStandardDays());
LocalDate firstSundayOfJuly = new LocalDate(2013, 7, 1); firstSundayOfJuly = firstSundayOfJuly.dayOfWeek().withMaximumValue(); Interval i = new Interval(LocalDate.now().toDateTimeAtStartOfDay(), firstSundayOfJuly.toDateTimeAtStartOfDay()); System.out.println("days = " + i.toDuration().getStandardDays());
private boolean dateDiffIsLongerThanASecond(long first, long second) { return new Interval(min(first, second), max(first, second)).toDuration().isLongerThan(standardSeconds(1)); } }
private double getIntervalCostMultiplier() { int days = 0; for (Interval interval : intervals) { days += interval.toDuration().getStandardDays(); } // Cost increases with the wider interval being queries. // A plan querying 10 or more years of data will have 10x the cost of a // plan returning 1 day data. // A plan where least interval is queries will be preferred. return RelMdUtil.linear(days, 1, DAYS_IN_TEN_YEARS, 0.1d, 1d); }
private Optional<Interval> createInterval(final DateTime dateFrom, final LocalTime timeFrom, final DateTime dateTo, final LocalTime timeTo) { Interval interval = new Interval(convertToDateTime(dateFrom, timeFrom), convertToDateTime(dateTo, timeTo)); if (interval.toDuration().isEqual(null)) { return Optional.empty(); } return Optional.of(interval); }