// conceptGO Open Source - www.conceptGO.com
// copyright (c) 2002, conceptGO
//
// This software is licensed under the
// conceptGO Open Source License, available
// at http://www.conceptgo.com/cgooslicense.html
//
import java.util.*;
/**
* The OS_ElapsedTime class provides a simple
* means to track beginning, ending, and
* elapsed milliseconds. It also provides
* methods to print beginning and ending time.
*
* Standard usage:
* - create a new OS_ElapsedTime object et
* - Call et.begin()
* - Call the method to be timed
* - Call et.endAndPrintElapsedMillis()
*
* @author Joe Sam Shirah
*
*/
public class OS_ElapsedTime
{
private long lBegin,
lEnd;
/**
* No arg constructor
*/
public OS_ElapsedTime()
{} // end constructor
/**
* Captures the current millis and sets both
* begin and end variables to that value.
*/
public void begin()
{
lEnd = lBegin = System.currentTimeMillis();
} // end begin
/**
* Sets the begin value, then prints
* the begin value as millis.
* .
* @see #begin()
* @see #printBeginMillis()
*/
public void beginAndPrintBeginMillis()
{
begin();
printBeginMillis();
} // end beginAndPrintBeginMillis
/**
* Sets the begin value, then prints
* the begin value as a java.util.Date.
*
* @see #begin()
* @see #printBeginTime()
*/
public void beginAndPrintBeginTime()
{
begin();
printBeginTime();
} // end beginAndPrintBeginTime
/**
* Captures the current millis and sets
* the end variable to that value.
*/
public void end()
{
lEnd = System.currentTimeMillis();
} // end end
/**
* Sets the end value, then prints
* the value of ( end - begin )
* as millis.
*
* @see #end()
* @see #printElapsedMillis()
*/
public void endAndPrintElapsedMillis()
{
end();
printElapsedMillis();
} // end endAndPrintElapsedMillis
/**
* Sets the end value, then prints
* the end value as millis.
*
* @see #end()
* @see #printElapsedMillis()
*/
public void endAndPrintEndMillis()
{
end();
printEndMillis();
} // end endAndPrintEndMillis
/**
* Sets the end value, then prints
* the end value as a java.util.Date.
*
* @see #end()
* @see #printEndTime()
*/
public void endAndPrintEndTime()
{
end();
printEndTime();
} // end endAndPrintEndTime
/**
* Get the begin value as millis.
*/
public long getBeginMillis()
{
return lBegin;
} // end getBeginMillis
/**
* Get the begin value as a java.util.Date.
*/
public Date getBeginTime()
{
return new Date( lBegin );
} // end getBeginTime
/**
* Get the ( end - begin ) value as millis.
*/
public long getElapsedMillis()
{
return lEnd - lBegin;
} // end getElapsedMillis
/**
* Get the end value as millis.
*/
public long getEndMillis()
{
return lEnd;
} // end getEndMillis
/**
* Get the end value as a java.util.Date.
*/
public Date getEndTime()
{
return new Date( lEnd );
} // end getEndTime
/**
* Print the begin value as millis.
*/
public void printBeginMillis()
{
System.out.println( "Begin: " + getBeginMillis() );
} // end printBeginMillis
/**
* Print the begin value as a java.util.Date.
*/
public void printBeginTime()
{
System.out.println( "Begin: " +
getBeginTime() );
} // end printBeginTime
/**
* Print the ( end - begin ) value as millis.
*/
public void printElapsedMillis()
{
System.out.println( "Elapsed: " +
getElapsedMillis() );
} // end printElapsedMillis
/**
* Print the end value as millis.
*/
public void printEndMillis()
{
System.out.println( "End: " + getEndMillis() );
} // end printEndMillis
/**
* Print the end value as a java.util.Date.
*/
public void printEndTime()
{
System.out.println( "End: " +
getEndTime() );
} // end printEndTime
/**
* main exercises the class. No args required.
*/
public static void main(String []args)
{
OS_ElapsedTime et = new OS_ElapsedTime();
try
{
System.out.println( "call begin()." );
et.begin();
System.out.println(
"getBeginMillis(): " +
et.getBeginMillis() );
System.out.println(
"getBeginTime(): " +
et.getBeginTime() );
System.out.println(
"getEndMillis(): " +
et.getEndMillis() );
System.out.println(
"getEndTime(): " +
et.getEndTime() );
System.out.println( "Sleep 500" );
Thread.sleep( 500 );
System.out.println(
"beginAndPrintBeginMillis(): " );
et.beginAndPrintBeginMillis();
System.out.println(
"printBeginMillis(): " );
et.printBeginMillis();
System.out.println( "Sleep 500" );
Thread.sleep( 500 );
System.out.println(
"beginAndPrintBeginTime(): " );
et.beginAndPrintBeginTime();
System.out.println(
"printBeginTime(): " );
et.printBeginTime();
System.out.println( "Sleep 1000" );
Thread.sleep( 1000 );
System.out.println( "call end()." );
et.end();
System.out.println(
"getBeginMillis(): " +
et.getBeginMillis() );
System.out.println(
"getBeginTime(): " +
et.getBeginTime() );
System.out.println(
"getEndMillis(): " +
et.getEndMillis() );
System.out.println(
"getEndTime(): " +
et.getEndTime() );
System.out.println(
"printElapsedMillis(): " );
et.printElapsedMillis();
}
catch( Exception e) {}
} // end main
} // end class OS_ElapsedTime
Copyright © 2000-2002, conceptGO