code: public static Pace pace(final Number value, final long interval)
      {
          double dval = Math.round(value.doubleValue());
  
          if (dval == 0 || interval == 0)
              return Pace.EMPTY;
  
          Pace args = null;
          double rate = Math.abs(dval / interval);
          TimeMillis[] intvls = TimeMillis.values();
  
          for (TimeMillis p : intvls)
          {
              double relativePace = rate * p.millis();
              if (relativePace >= 1)
              {
                  args = new Pace(Math.round(relativePace), Accuracy.APROX, p);
                  break;
              }
          }
  
          if (args == null)
          {
              args = new Pace(1, Accuracy.LESS_THAN, intvls[intvls.length - 1]);
          }
  
          return args;
      }
docs: Matches a pace (value and interval) with a logical time frame. Very
  useful for slow paces.
  
  <p>
  Examples:
  </p>
  
  <pre>
  <code>
  // 3 occurrences within a 3000ms interval
  pace(3, 3000); // => ~1/sec.
  
  // 200 occurrences within a 70000ms interval
  pace(200, 70000); // => ~3/sec.
  
  // 10 occurrences within a 70000ms interval
  pace(10, 70000); // => ~9/min.
  
  // 14 occurrences within a 31557600000ms interval (a year)
  pace(14, 31557600000L); // => ~1/month
  
  // 25 occurrences within a 31557600000ms interval
  pace(25, 31557600000L); // => ~2/month
  
  // 9 occurrences within a 31557600000ms interval
  pace(9, 31557600000L); // => >1/month (less than one per month)
  </code>
  </pre>
  
  @param value
  The number of occurrences within the specified interval
  @param interval
  The interval in milliseconds
  @return a Pace instance with data for a given value and interval