码迷,mamicode.com
首页 > 编程语言 > 详细

Java 简单计时器

时间:2014-12-10 15:43:09      阅读:188      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   ar   color   os   sp   for   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();
    }
}

控制台输出

bubuko.com,布布扣

 

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

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

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

Java 简单计时器

标签:style   blog   http   ar   color   os   sp   for   java   

原文地址:http://www.cnblogs.com/sphere/p/4155388.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!