code: public Duration subtractTimestamp(Timestamp timestamp) {
      long durationSeconds = getSeconds() - timestamp.getSeconds();
      int durationNanos = getNanos() - timestamp.getNanos();
      if (durationSeconds < 0 && durationNanos > 0) {
        durationSeconds += 1;
        durationNanos = (int) (durationNanos - NANOS_PER_SECOND);
      } else if (durationSeconds > 0 && durationNanos < 0) {
        durationSeconds -= 1;
        durationNanos = (int) (durationNanos + NANOS_PER_SECOND);
      }
      return Duration.create(durationSeconds, durationNanos);
    }
docs: Returns a {@link Duration} calculated as: {@code this - timestamp}.
  
  @param timestamp the {@code Timestamp} to subtract.
  @return the calculated {@code Duration}. For invalid inputs, a {@code Duration} of zero is
  returned.
  @since 0.5