docs: public static String getTimeInterval(final long pMilliseconds) {
  
      long         timeIntervalMilliseconds = pMilliseconds;
      long         timeIntervalSeconds      = 0;
      long         timeIntervalMinutes      = 0;
      long         timeIntervalHours        = 0;
      long         timeIntervalDays         = 0;
      boolean      printMilliseconds        = true;
      boolean      printSeconds             = false;
      boolean      printMinutes             = false;
      boolean      printHours               = false;
      boolean      printDays                = false;
      final long   MILLISECONDS_IN_SECOND   = 1000;
      final long   MILLISECONDS_IN_MINUTE   = 60 * MILLISECONDS_IN_SECOND;  // 60000
      final long   MILLISECONDS_IN_HOUR     = 60 * MILLISECONDS_IN_MINUTE;  // 3600000
      final long   MILLISECONDS_IN_DAY      = 24 * MILLISECONDS_IN_HOUR;    // 86400000
      StringBuilder timeIntervalBuffer       = new StringBuilder();
  
      // Days
      if (timeIntervalMilliseconds >= MILLISECONDS_IN_DAY) {
        timeIntervalDays         = timeIntervalMilliseconds / MILLISECONDS_IN_DAY;
        timeIntervalMilliseconds = timeIntervalMilliseconds % MILLISECONDS_IN_DAY;
        printDays                = true;
        printHours               = true;
        printMinutes             = true;
        printSeconds             = true;
      }
  
      // Hours
      if (timeIntervalMilliseconds >= MILLISECONDS_IN_HOUR) {
        timeIntervalHours        = timeIntervalMilliseconds / MILLISECONDS_IN_HOUR;
        timeIntervalMilliseconds = timeIntervalMilliseconds % MILLISECONDS_IN_HOUR;
        printHours               = true;
        printMinutes             = true;
        printSeconds             = true;
      }
  
      // Minutes
      if (timeIntervalMilliseconds >= MILLISECONDS_IN_MINUTE) {
        timeIntervalMinutes      = timeIntervalMilliseconds / MILLISECONDS_IN_MINUTE;
        timeIntervalMilliseconds = timeIntervalMilliseconds % MILLISECONDS_IN_MINUTE;
        printMinutes             = true;
        printSeconds             = true;
      }
  
      // Seconds
      if (timeIntervalMilliseconds >= MILLISECONDS_IN_SECOND) {
        timeIntervalSeconds      = timeIntervalMilliseconds / MILLISECONDS_IN_SECOND;
        timeIntervalMilliseconds = timeIntervalMilliseconds % MILLISECONDS_IN_SECOND;
        printSeconds             = true;
      }
  
      // Prettyprint    
      if (printDays) {
        timeIntervalBuffer.append(timeIntervalDays);
        if (timeIntervalDays > 1) {
          timeIntervalBuffer.append("days ");
        } else {
          timeIntervalBuffer.append("day ");
        }
      }
      if (printHours) {
        timeIntervalBuffer.append(timeIntervalHours);
        timeIntervalBuffer.append("h ");
      }
      if (printMinutes) {
        timeIntervalBuffer.append(timeIntervalMinutes);
        timeIntervalBuffer.append("m ");
      }
      if (printSeconds) {
        timeIntervalBuffer.append(timeIntervalSeconds);
        timeIntervalBuffer.append("s ");
      }
      if (printMilliseconds) {
        timeIntervalBuffer.append(timeIntervalMilliseconds);
        timeIntervalBuffer.append("ms");
      }
      return timeIntervalBuffer.toString();
    }