@Override public Value subtract(Value v) { ValueTimestamp t = (ValueTimestamp) v.convertTo(Value.TIMESTAMP); long d1 = DateTimeUtils.absoluteDayFromDateValue(dateValue); long d2 = DateTimeUtils.absoluteDayFromDateValue(t.dateValue); return DateTimeUtils.normalizeTimestamp(d1 - d2, nanos - t.nanos); }
@Override public Value add(Value v) { ValueTimestamp t = (ValueTimestamp) v.convertTo(Value.TIMESTAMP); long d1 = DateTimeUtils.absoluteDayFromDateValue(dateValue); long d2 = DateTimeUtils.absoluteDayFromDateValue(t.dateValue); return DateTimeUtils.normalizeTimestamp(d1 + d2, nanos + t.nanos); }
switch (getType()) { case TIME: return DateTimeUtils.normalizeTimestamp(0, ((ValueTime) this).getNanos()); case DATE: return ValueTimestamp.fromDateValueAndNanos(((ValueDate) this).getDateValue(), 0);