code: private String humanReadable(long uptime) {
          uptime = uptime / 1000;
  
          int sec = (int) uptime % 60;
          uptime /= 60;
  
          int min = (int) uptime % 60;
          uptime /= 60;
  
          int hour = (int) uptime % 24;
          uptime /= 24;
  
          int day = (int) uptime;
  
          String str = "";
          if (day > 0)
              if (day > 1)
                  str += day + " days, ";
              else
                  str += day + " day, ";
          // prints 0 hour in case days exists. Otherwise prints 2 days, 34 min, sounds weird.
          if (hour > 0 || (day > 0))
              if (hour > 1)
                  str += hour + " hours, ";
              else
                  str += hour + " hour, ";
          if (min > 0)
              str += min + " min, ";
          if (sec > 0)
              str += sec + " s";
  
          return str;
      }
docs: /*
  Converts the long uptime to an human readable format, examples:
  2 d, 0 hour, 34 min, 2s
  12 hours, 12 min, 22s