Get seconds since : Timing « Development Class « Java






Get seconds since

   
/**
 *  BlueCove - Java library for Bluetooth
 *  Copyright (C) 2006-2008 Vlad Skarzhevskyy
 * 
 *  Licensed to the Apache Software Foundation (ASF) under one
 *  or more contributor license agreements.  See the NOTICE file
 *  distributed with this work for additional information
 *  regarding copyright ownership.  The ASF licenses this file
 *  to you under the Apache License, Version 2.0 (the
 *  "License"); you may not use this file except in compliance
 *  with the License.  You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing,
 *  software distributed under the License is distributed on an
 *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 *  KIND, either express or implied.  See the License for the
 *  specific language governing permissions and limitations
 *  under the License.
 *
 *  @author vlads
 *  @version $Id: TimeUtils.java 2655 2008-12-24 16:04:37Z skarzhevskyy $
 */

import java.util.Calendar;
import java.util.Date;

/**
 * 
 */
public abstract class TimeUtils {

  private static Calendar singleCalendar;

  private static Date singleDate;

  public static String secSince(long start) {
    if (start == 0) {
      return "n/a";
    }
    long msec = since(start);
    long sec = msec / 1000;
    long min = sec / 60;
    sec -= min * 60;
    long h = min / 60;
    min -= h * 60;

    StringBuffer sb;
    sb = new StringBuffer();
    if (h != 0) {
      sb.append(StringUtils.d00((int) h)).append(":");
    }
    if ((h != 0) || (min != 0)) {
      sb.append(StringUtils.d00((int) min)).append(":");
    }
    sb.append(StringUtils.d00((int) sec));
    if ((h == 0) && (min == 0)) {
      sb.append(" sec");
    }
    if ((h == 0) && (min == 0) && (sec <= 1)) {
      msec -= 1000 * sec;
      sb.append(" ");
      sb.append(StringUtils.d000((int) msec));
      sb.append(" msec");
    }
    return sb.toString();
  }

  public static long since(long start) {
    if (start == 0) {
      return 0;
    }
    return (System.currentTimeMillis() - start);
  }

  public static String bps(long size, long start) {
    long duration = TimeUtils.since(start);
    if (duration == 0) {
      return "n/a";
    }
    long bps = ((1000 * 8 * size) / (duration));
    return StringUtils.formatLong(bps) + " bit/s";
  }

  public static String timeNowToString() {
    StringBuffer sb = new StringBuffer();
    appendTime(sb, System.currentTimeMillis(), false);
    return sb.toString();
  }

  public static String timeStampNowToString() {
    StringBuffer sb = new StringBuffer();
    appendTime(sb, System.currentTimeMillis(), true);
    return sb.toString();
  }

  public static StringBuffer appendTimeStampNow(StringBuffer sb, boolean millisecond) {
    return appendTime(sb, System.currentTimeMillis(), millisecond);
  }

  public static synchronized StringBuffer appendTime(StringBuffer sb, long timeStamp,
      boolean millisecond) {
    if (timeStamp == 0) {
      sb.append("n/a");
      return sb;

    }
    if (singleCalendar == null) {
      singleCalendar = Calendar.getInstance();
      singleDate = new Date();
    }
    singleDate.setTime(timeStamp);
    singleCalendar.setTime(singleDate);

    StringUtils.appendD00(sb, singleCalendar.get(Calendar.HOUR_OF_DAY)).append(':');
    StringUtils.appendD00(sb, singleCalendar.get(Calendar.MINUTE)).append(':');
    StringUtils.appendD00(sb, singleCalendar.get(Calendar.SECOND));
    if (millisecond) {
      sb.append('.');
      StringUtils.appendD000(sb, singleCalendar.get(Calendar.MILLISECOND));
    }

    return sb;
  }

  public static boolean sleep(long millis) {
    try {
      Thread.sleep(millis);
      return true;
    } catch (InterruptedException e) {
      return false;
    }
  }
}

/**
 * BlueCove - Java library for Bluetooth Copyright (C) 2006-2008 Vlad
 * Skarzhevskyy
 * 
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements. See the NOTICE file distributed with this
 * work for additional information regarding copyright ownership. The ASF
 * licenses this file to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 * http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 * 
 * @author vlads
 * @version $Id: StringUtils.java 2655 2008-12-24 16:04:37Z skarzhevskyy $
 */
class StringUtils {

  public static boolean isStringSet(String str) {
    return ((str != null) && (str.length() > 0));
  }

  /**
   * String.equalsIgnoreCase() was added only Since CLDC-1.1.
   * 
   * @param anotherString
   * @return
   */
  public static boolean equalsIgnoreCase(String s1, String s2) {
    if ((s1 == null) || (s2 == null)) {
      return false;
    }
    return (s1.length() == s2.length()) && (s1.toUpperCase().equals(s2.toUpperCase()));
  }

  public static String d00(int i) {
    if ((i > 9) || (i < 0)) {
      return String.valueOf(i);
    } else {
      return "0" + String.valueOf(i);
    }
  }

  public static StringBuffer appendD00(StringBuffer sb, int i) {
    if ((i > 9) || (i < 0)) {
      sb.append(String.valueOf(i));
    } else {
      sb.append('0').append(String.valueOf(i));
    }
    return sb;
  }

  public static String d000(int i) {
    if ((i > 99) || (i < 0)) {
      return String.valueOf(i);
    } else if (i > 9) {
      return "0" + String.valueOf(i);
    } else {
      return "00" + String.valueOf(i);
    }
  }

  public static StringBuffer appendD000(StringBuffer sb, int i) {
    if ((i > 99) || (i < 0)) {
      sb.append(String.valueOf(i));
    } else if (i > 9) {
      sb.append('0').append(String.valueOf(i));
    } else {
      sb.append('0').append('0').append(String.valueOf(i));
    }
    return sb;
  }

  public static String d0000(int i) {
    if ((i > 999) || (i < 0)) {
      return String.valueOf(i);
    } else if (i > 99) {
      return "00" + String.valueOf(i);
    } else if (i > 9) {
      return "00" + String.valueOf(i);
    } else {
      return "000" + String.valueOf(i);
    }
  }

  public static String formatLong(long l) {
    if (l < 1000) {
      return Long.toString(l);
    }
    long l1K = (l / 1000);
    if (l1K < 1000) {
      return Long.toString(l1K) + "," + StringUtils.d000((int) (l - 1000L * l1K));
    } else {
      long l1M = (l1K / 1000);
      return Long.toString(l1M) + "," + StringUtils.d000((int) (l1K - 1000L * l1M)) + ","
          + StringUtils.d000((int) (l - 1000L * l1K));
    }
  }

  public static String toHex00String(int c) {
    String s = Integer.toHexString(c);
    if (s.length() == 1) {
      return "0" + s;
    } else {
      return s;
    }
  }

  public static String padRight(String str, int length, char c) {
    int l = str.length();
    if (l >= length) {
      return str;
    }
    StringBuffer sb = new StringBuffer();
    sb.append(str);
    for (int i = l; i < length; i++) {
      sb.append(c);
    }
    return sb.toString();
  }

  public static char printable(char c) {
    if (c < ' ') {
      return ' ';
    } else {
      return c;
    }
  }

  public static String toBinaryText(StringBuffer buf) {
    boolean bufHasBinary = false;
    int len = buf.length();
    for (int i = 0; i < len; i++) {
      if (buf.charAt(i) < ' ') {
        bufHasBinary = true;
        break;
      }
    }
    if (bufHasBinary) {
      StringBuffer formatedDataBuf = new StringBuffer();
      for (int k = 0; k < len; k++) {
        formatedDataBuf.append(printable(buf.charAt(k)));
      }
      formatedDataBuf.append(" 0x[");
      for (int k = 0; k < len; k++) {
        formatedDataBuf.append(toHex00String(buf.charAt(k))).append(' ');
      }
      formatedDataBuf.append("]");
      buf = formatedDataBuf;
    }

    return buf.toString();
  }
}

   
    
    
  








Related examples in the same category

1.Compute and display elapsed time of an operation
2.Get system time using System class
3.Class for program event timing
4.Get elapsed time in milliseconds
5.Get elapsed time in seconds
6.Get elapsed time in minutes
7.Get elapsed time in hours
8.Get elapsed time in days
9.Get time in milliseconds using Java Calendar
10.java.util.concurrent.TimeUnit: convert between milliseconds and days