static String print()

in java/java-guestbook/frontend/src/main/java/cloudcode/guestbook/frontend/PrintDuration.java [21:45]


  static String print(long prevTimestamp) {
    LocalDateTime now = LocalDateTime.now();
    LocalDateTime prev = LocalDateTime.ofInstant(
      Instant.ofEpochMilli(prevTimestamp), TimeZone.getDefault().toZoneId());
    Duration duration = Duration.between(now, prev);

    long num;
    String unit;
    if (Math.abs(duration.toDays()) >= DAYS_IN_YEAR) {
      num = Math.abs(duration.toDays()) / DAYS_IN_YEAR;
      unit = num == 1 ? "year" : "years";
    } else if (Math.abs(duration.toDays()) > 0) {
      num = Math.abs(duration.toDays());
      unit = num == 1 ? "day" : "days";
    } else if (Math.abs(duration.toHours()) > 0) {
      num = Math.abs(duration.toHours());
      unit = num == 1 ? "hour" : "hours";
    } else if (Math.abs(duration.toMinutes()) > 0) {
      num = Math.abs(duration.toMinutes());
      unit = num == 1 ? "minute" : "minutes";
    } else {
      return "just now";
    }
    return String.format("%d %s ago", num, unit);
  }