android 打印时间间隔工具类

代码里面有时候不太清楚那些代码耗时比较多,这边就是个简单的log提醒,打印当前两个log之间的间隔时间。

/**
 * 
 * @ClassName: TimeUtils
 * @Description: TODO(打印两条log之间的时间)
 * @author wangli
 * @date 2014-1-8 下午4:13:09
 * 
 */
public class TimeUtils {
private static final String TAG = "TimeUtils";


private static boolean mFirstPrintMsg = true;
private static long mTotalTime = 0;
private static long mOldTime = 0;
private static String mOldMsg;


public static void printLog(String msg) {
long mCurrentTime = new Date().getTime();
if (mFirstPrintMsg) {
mFirstPrintMsg = false;
mTotalTime = mCurrentTime;
mOldTime = mCurrentTime;
mOldMsg = msg;
}
Log.d(TAG, "打印时间:" + getCurrentDate(mCurrentTime));
long between = mCurrentTime - mOldTime;
Log.d(TAG, msg + "-距离-" + mOldMsg + "(耗时 " + getMsg(between) + ")");
mOldTime = mCurrentTime;
mOldMsg = msg;
}


public static void printTotalTime() {
long mCurrentTime = new Date().getTime();
mCurrentTime = mCurrentTime - mTotalTime;
Log.d(TAG, "总耗时:" + getMsg(mCurrentTime));
}




public static String getCurrentDate(long time) {
SimpleDateFormat fm2 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
return fm2.format(time);
}


public static String getMsg(long between) {
long day = between / (24 * 60 * 60 * 1000);
long hour = (between / (60 * 60 * 1000) - day * 24);
long min = ((between / (60 * 1000)) - day * 24 * 60 - hour * 60);
long s = (between / 1000 - day * 24 * 60 * 60 - hour * 60 * 60 - min * 60);
long ms = (between - day * 24 * 60 * 60 * 1000 - hour * 60 * 60 * 1000
- min * 60 * 1000 - s * 1000);
if (day != 0) {
return (day + "天" + hour + "小时" + min + "分" + s + "秒" + ms + "毫秒");
} else {
if (hour != 0) {
return (hour + "小时" + min + "分" + s + "秒" + ms + "毫秒");
} else {
if (min != 0) {
return (min + "分" + s + "秒" + ms + "毫秒");
} else {
if (s != 0) {
return (s + "秒" + ms + "毫秒");
} else {
if (ms != 0) {
return (ms + "毫秒");
} else {
return (ms + "毫秒");
}
}
}
}
}
}


}

猜你喜欢

转载自blog.csdn.net/lonely_fireworks/article/details/17958949
今日推荐