首页 > 学院 > 开发设计 > 正文

Java 简单计时器

2019-11-14 22:11:16
字体:
来源:转载
供稿:网友
java 简单计时器

代码

package com.benywave;import java.util.Timer;import java.util.TimerTask;public class TimerTest {        PRivate  Timer timer;        private long elapsedSeconds;        public TimerTest() {        timer = new Timer();    }    public static void main(String[] args) {        //System.out.println(formatElapsedTime(3661));        new TimerTest().startClock();    }    /**     * 开始粗略计时     */    private void startClock(){        elapsedSeconds = 0;        timer.schedule(new TimerTask() {            @Override            public void run() {                System.out.println(formatElapsedTime(elapsedSeconds));                elapsedSeconds += 1;            }        },0,999);    }        private void stopClock(){        if(timer != null){            timer.cancel();            timer.purge();        }    }        /**     * 格式化输出时间字符串     * @param elapsedSeconds     * @return     */    public static String formatElapsedTime(long elapsedSeconds){        long hours = 0;        long minutes = 0;        long seconds = 0;        if(elapsedSeconds >= 3600){            hours = elapsedSeconds / 3600;            elapsedSeconds -= hours * 3600;        }        if(elapsedSeconds >= 60){            minutes = elapsedSeconds / 60;            elapsedSeconds -= minutes * 60;        }        seconds = elapsedSeconds;        StringBuilder sb = new StringBuilder();        sb.append(addZeroBeforeNumber(hours));        sb.append(":");        sb.append(addZeroBeforeNumber(minutes));        sb.append(":");        sb.append(addZeroBeforeNumber(seconds));        return sb.toString();    }        /**     * 加0处理,不足两位时补0     * @param number     * @return     */    public static String addZeroBeforeNumber(long number){        StringBuilder sb = new StringBuilder();        if(number >= 0 && number <= 9){            return sb.append("0").append(number).toString();        }        return sb.append(number).toString();    }}

控制台输出

这种方式,只是粗略计时,不适合精确计时的场景。

虽然写了停止计时器的方法,但并未调用,所以启动计时后不会停止。

只是作为练习demo, 仅供参考。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表