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();

    }

}

控制台输出

Java 简单计时器

 

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

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

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

你可能感兴趣的:(java)