code: public static String toHumanFormat(long fromTime, long toTime)
      {
          if(! (toTime >= fromTime))
          {
              throw new IllegalArgumentException("toTime must be >= fromTime");
          }
  
          long distanceInSeconds = (toTime - fromTime) / 1000;
          long distanceInMinutes = distanceInSeconds / 60;
  
          if (distanceInMinutes == 0) { return "less than a minute"; }
          if (distanceInMinutes == 1) { return "a minute"; }
          if(inRange(2, 44, distanceInMinutes)) { return distanceInMinutes + " minutes"; }
          if(inRange(45, 89, distanceInMinutes)) { return "about 1 hour"; }
          if(inRange(90, 1439, distanceInMinutes)) { return "about " + Math.round(distanceInMinutes/60f) + " hours" ; }
          if(inRange(1440, 2879, distanceInMinutes)) { return "1 day"; }
          if(inRange(2880, 43199, distanceInMinutes)) { return Math.round(distanceInMinutes/1440f) + " days"; }
          if(inRange(43200, 86399, distanceInMinutes)) { return "about 1 month"; }
          if(inRange(86400, 525599, distanceInMinutes)) { return Math.round(distanceInMinutes/43200f) + " months"; }
          if(inRange(525600, 1051199, distanceInMinutes)) { return "about 1 year"; }
  
          return "about " + Math.round(distanceInMinutes/525600f) + " years";
      }
docs: Generates a human representation of distance in time between two time stamps. This could take a form: "less than
  a minute", or "about a year".
  
  @param fromTime start timestamp. This is a representation of time in milliseconds from January 1 1970.
  @param toTime end timestamp. This is a representation of time in milliseconds from January 1 1970.
  @return human representation if distance in time between <code>fromTime</code> and <code>toTime</code>.