/* Listing1706.java */

public class Listing1706
{
  public static long testSleep(int millis)
  {
    final int MINDURATION = 3000;
    int cnt = (millis >= MINDURATION ? 1 : MINDURATION/millis);
    long start = System.currentTimeMillis();
    for (int i = 0; i < cnt; ++i) {
      try {
        Thread.sleep(millis);
      } catch (InterruptedException e) {
      }
    }
    long end = System.currentTimeMillis();
    return (end - start) / cnt;
  }

  public static void main(String[] args)
  {
    final int DATA[] = {345, 27, 1, 1962, 2, 8111, 6, 89, 864};
    for (int i = 0; i < DATA.length; ++i) {
      System.out.println("Aufruf von sleep(" + DATA[i] + ")");
      long result = testSleep(DATA[i]);
      System.out.print("  Ergebnis: " + result);
      double prec = ((double)result / DATA[i] - 1.0) * 100;
      System.out.println(" (" + (prec > 0 ? "+": "") + prec + " %)");
    }
  }
}