代碼
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(); } /** * 開始粗略計(jì)時(shí) */ 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(); } } /** * 格式化輸出時(shí)間字符串 * @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處理,不足兩位時(shí)補(bǔ)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(); }}
控制臺(tái)輸出
這種方式,只是粗略計(jì)時(shí),不適合精確計(jì)時(shí)的場景。
雖然寫了停止計(jì)時(shí)器的方法,但并未調(diào)用,所以啟動(dòng)計(jì)時(shí)后不會(huì)停止。
只是作為練習(xí)demo, 僅供參考。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注