public Timestamp plus(long value, TimeUnit units) { TimeUnit finest = finest(m_unit, units); return new Timestamp(convert(finest) + finest.convert(value, units), finest); }
public Timestamp minus(long value, TimeUnit units) { TimeUnit finest = finest(m_unit, units); return new Timestamp(convert(finest) - finest.convert(value, units), finest); }
public Duration minus(Timestamp t) { if (t.gt(this)) throw new IllegalArgumentException("you can only subtract an earlier date from a later one... negative durations don't make sense"); TimeUnit finest = finest(m_unit, t.getUnit()); return new Duration(convert(finest) - t.convert(finest), finest); }
public Timestamp plus(Duration d) { TimeUnit finest = finest(m_unit, d.getUnit()); return new Timestamp(convert(finest) + d.convert(finest), finest); }
public Timestamp minus(Duration d) { TimeUnit finest = finest(m_unit, d.getUnit()); return new Timestamp(convert(finest) - d.convert(finest), finest); }
public long divideBy(Duration o) { TimeUnit u = Timestamp.finest(getUnit(), o.getUnit()); return convert(u) / o.convert(u); }
public Duration plus(Duration o) { TimeUnit u = Timestamp.finest(getUnit(), o.getUnit()); return new Duration(convert(u) + o.convert(u), u); }
public boolean isMultiple(Duration o) { TimeUnit u = Timestamp.finest(getUnit(), o.getUnit()); return this.gte(o) && ((convert(u) % o.convert(u)) == 0); }
@Override public int compareTo(Timestamp o) { TimeUnit unit = finest(getUnit(), o.getUnit()); return convert(unit) < o.convert(unit) ? -1 : (convert(unit) > o.convert(unit) ? 1 : 0); }
@Override public int compareTo(Duration o) { TimeUnit unit = Timestamp.finest(getUnit(), o.getUnit()); return convert(unit) < o.convert(unit) ? -1 : (convert(unit) > o.convert(unit) ? 1 : 0); }