Code
PackageCom.benywave;ImportJava.util.Timer;ImportJava.util.TimerTask; Public classTimertest {PrivateTimer timer; Private Longelapsedseconds; Publictimertest () {Timer=NewTimer (); } Public Static voidMain (string[] args) {//System.out.println (Formatelapsedtime (3661)); Newtimertest (). Startclock (); } /*** Start Rough timing*/ Private voidStartclock () {elapsedseconds= 0; Timer.schedule (NewTimerTask () {@Override Public voidrun () {System.out.println (Formatelapsedtime (elapsedseconds)); Elapsedseconds+ = 1; } },0,999); } Private voidStopclock () {if(Timer! =NULL) {timer.cancel (); Timer.purge (); } } /*** Formatted output time String *@paramElapsedseconds *@return */ Public StaticString Formatelapsedtime (Longelapsedseconds) { LongHours = 0; Longminutes = 0; Longseconds = 0; if(Elapsedseconds >= 3600) {hours= elapsedseconds/3600; Elapsedseconds-= hours * 3600; } if(Elapsedseconds >= 60) {minutes= ELAPSEDSECONDS/60; Elapsedseconds-= minutes * 60; } seconds=elapsedseconds; StringBuilder SB=NewStringBuilder (); Sb.append (Addzerobeforenumber (hours)); Sb.append (":"); Sb.append (Addzerobeforenumber (minutes)); Sb.append (":"); Sb.append (Addzerobeforenumber (seconds)); returnsb.tostring (); } /*** Plus 0 processing, less than two bit 0 *@paramNumber *@return */ Public StaticString Addzerobeforenumber (LongNumber ) {StringBuilder SB=NewStringBuilder (); if(number >= 0 && number <= 9){ returnSb.append ("0"). Append (number). ToString (); } returnsb.append (number). ToString (); }}
Console output
In this way, it is just a rough timing, not suitable for precise timing scenarios.
Although the method of stopping the timer is written, it is not called, so it does not stop when the timer is started.
Just as an exercise demo, for reference only.
Java Simple Timer