@Override public Period getJodaTimePeriod() { if (minDuration == null) return maxDuration.getJodaTimePeriod(); if (maxDuration == null) return minDuration.getJodaTimePeriod(); Duration mid = minDuration.add(maxDuration).divideBy(2); return mid.getJodaTimePeriod(); }
@Override public Duration add(Duration d) { Period p = period.toPeriod().plus(d.getJodaTimePeriod()); if (this instanceof InexactDuration || d instanceof InexactDuration) { return new InexactDuration(this, p); } else { return new DurationWithFields(this, p); } }
@Override public PartialTime reduceGranularityTo(Duration granularity) { Partial p = JodaTimeUtils.discardMoreSpecificFields( base, JodaTimeUtils.getMostSpecific(granularity.getJodaTimePeriod()) ); return new CompositePartialTime(this, p, poy.reduceGranularityTo(granularity), dow.reduceGranularityTo(granularity), tod.reduceGranularityTo(granularity)); }
public Period getJodaTimePeriod() { if (minDuration == null) return maxDuration.getJodaTimePeriod(); if (maxDuration == null) return minDuration.getJodaTimePeriod(); Duration mid = minDuration.add(maxDuration).divideBy(2); return mid.getJodaTimePeriod(); }
public Duration add(Duration d) { Period p = period.toPeriod().plus(d.getJodaTimePeriod()); if (this instanceof InexactDuration || d instanceof InexactDuration) { return new InexactDuration(this, p); } else { return new DurationWithFields(this, p); } }
public PartialTime padMoreSpecificFields(Duration granularity) { Period period = null; if (granularity != null) { period = granularity.getJodaTimePeriod(); } Partial p = JodaTimeUtils.padMoreSpecificFields(base, period); return new PartialTime(this,p); }
public PartialTime padMoreSpecificFields(Duration granularity) { Period period = null; if (granularity != null) { period = granularity.getJodaTimePeriod(); } Partial p = JodaTimeUtils.padMoreSpecificFields(base, period); return new PartialTime(p); }
@Override public Time add(Duration offset) { Period p = offset.getJodaTimePeriod(); GroundedTime g = new GroundedTime(base.toInstant().withDurationAdded(p.toDurationFrom(base), 1)); g.approx = this.approx; g.mod = this.mod; return g; }
public PartialTime padMoreSpecificFields(Duration granularity) { Period period = null; if (granularity != null) { period = granularity.getJodaTimePeriod(); } Partial p = JodaTimeUtils.padMoreSpecificFields(base, period); return new PartialTime(this,p); }
return this; Period per = offset.getJodaTimePeriod(); PartialTime p = addSupported(per, 1); Period unsupported = JodaTimeUtils.getUnsupportedDurationPeriod(p.base, per);
public static Duration difference(Time t1, Time t2) { // TODO: Difference does not work between days of the week // Get duration from this t1 to t2 if (t1 == null || t2 == null) return null; Instant i1 = t1.getJodaTimeInstant(); Instant i2 = t2.getJodaTimeInstant(); if (i1 == null || i2 == null) return null; Duration d = new DurationWithMillis(i2.getMillis() - i1.getMillis()); Duration g1 = t1.getGranularity(); Duration g2 = t2.getGranularity(); Duration g = Duration.max(g1, g2); if (g != null) { Period p = g.getJodaTimePeriod(); p = p.normalizedStandard(); Period p2 = JodaTimeUtils.discardMoreSpecificFields(d.getJodaTimePeriod(), p.getFieldType(p.size() - 1), i1.getChronology()); return new DurationWithFields(p2); } else { return d; } }
@Override public String toFormattedString(int flags) { if (getTimeLabel() != null) { return getTimeLabel(); } Period p = getJodaTimePeriod(); String s = (p != null) ? p.toString() : "PXX"; if ((flags & (FORMAT_ISO | FORMAT_TIMEX3_VALUE)) == 0) { String m = getMod(); if (m != null) { try { TimexMod tm = TimexMod.valueOf(m); if (tm.getSymbol() != null) { s = tm.getSymbol() + s; } } catch (Exception ex) { } } } return s; }
public InexactDuration makeInexact() { return new InexactDuration(getJodaTimePeriod()); }
@Override public PartialTime reduceGranularityTo(Duration granularity) { Partial pbase = base; if (JodaTimeUtils.hasField(granularity.getJodaTimePeriod(), DurationFieldType.weeks())) { // Make sure the partial time has weeks in it if (!JodaTimeUtils.hasField(pbase, DateTimeFieldType.weekOfWeekyear())) { // Add week year to it pbase = JodaTimeUtils.resolveWeek(pbase); } } Partial p = JodaTimeUtils.discardMoreSpecificFields( pbase, JodaTimeUtils.getMostSpecific(granularity.getJodaTimePeriod()) ); return new PartialTime(this,p); }
public InexactDuration(Duration d) { super(d, d.getJodaTimePeriod()); this.approx = true; }
@Override public Duration add(Duration d) { Period p = period.toPeriod().plus(d.getJodaTimePeriod()); if (this instanceof InexactDuration || d instanceof InexactDuration) { return new InexactDuration(this, p); } else { return new DurationWithFields(this, p); } }
@Override public Time add(Duration offset) { Period p = offset.getJodaTimePeriod(); GroundedTime g = new GroundedTime(base.toInstant().withDurationAdded(p.toDurationFrom(base), 1)); g.approx = this.approx; g.mod = this.mod; return g; }
@Override public PartialTime reduceGranularityTo(Duration granularity) { Partial p = JodaTimeUtils.discardMoreSpecificFields( base, JodaTimeUtils.getMostSpecific(granularity.getJodaTimePeriod()) ); return new CompositePartialTime(this, p, poy.reduceGranularityTo(granularity), dow.reduceGranularityTo(granularity), tod.reduceGranularityTo(granularity)); }
@Override public Period getJodaTimePeriod() { if (minDuration == null) return maxDuration.getJodaTimePeriod(); if (maxDuration == null) return minDuration.getJodaTimePeriod(); Duration mid = minDuration.add(maxDuration).divideBy(2); return mid.getJodaTimePeriod(); }
public PartialTime padMoreSpecificFields(Duration granularity) { Period period = null; if (granularity != null) { period = granularity.getJodaTimePeriod(); } Partial p = JodaTimeUtils.padMoreSpecificFields(base, period); return new PartialTime(this,p); }