All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.xiaoleilu.hutool.date.TimeInterval Maven / Gradle / Ivy

package com.xiaoleilu.hutool.date;

/**
 * 计时器
* 计算某个过程花费的时间,精确到毫秒 * * @author Looly * */ public class TimeInterval { private long time; private boolean isNano; public TimeInterval() { this(false); } public TimeInterval(boolean isNano) { this.isNano = isNano; start(); } /** * @return 开始计时并返回当前时间 */ public long start() { time = DateUtil.current(isNano); return time; } /** * @return 重新计时并返回从开始到当前的持续时间 */ public long intervalRestart() { long now = DateUtil.current(isNano); long d = now - time; time = now; return d; } /** * 重新开始计算时间(重置开始时间) * @return this * @since 3.0.1 */ public TimeInterval restart(){ time = DateUtil.current(isNano); return this; } //----------------------------------------------------------- Interval /** * 从开始到当前的间隔时间(毫秒数)
* 如果使用纳秒计时,返回纳秒差,否则返回毫秒差 * @return 从开始到当前的间隔时间(毫秒数) */ public long interval() { return DateUtil.current(isNano) - time; } /** * 从开始到当前的间隔时间(毫秒数) * @return 从开始到当前的间隔时间(毫秒数) */ public long intervalMs() { return isNano ? interval() / 1000000L : interval(); } /** * 从开始到当前的间隔秒数,取绝对值 * @return 从开始到当前的间隔秒数,取绝对值 */ public long intervalSecond(){ return intervalMs() / DateUnit.SECOND.getMillis(); } /** * 从开始到当前的间隔分钟数,取绝对值 * @return 从开始到当前的间隔分钟数,取绝对值 */ public long intervalMinute(){ return intervalMs() / DateUnit.MINUTE.getMillis(); } /** * 从开始到当前的间隔小时数,取绝对值 * @return 从开始到当前的间隔小时数,取绝对值 */ public long intervalHour(){ return intervalMs() / DateUnit.HOUR.getMillis(); } /** * 从开始到当前的间隔天数,取绝对值 * @return 从开始到当前的间隔天数,取绝对值 */ public long intervalDay(){ return intervalMs() / DateUnit.DAY.getMillis(); } /** * 从开始到当前的间隔周数,取绝对值 * @return 从开始到当前的间隔周数,取绝对值 */ public long intervalWeek(){ return intervalMs() / DateUnit.WEEK.getMillis(); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy