java 计时类,一个计时类

package  sony.utils;

import  java.util.*;

import  javax.servlet.jsp.*;

/**

*  一个计时类。

*  创建日期:(2000-11-6  13:09:38)

*  作者:SonyMusic(sonymusic@china.com)

*/

public  class  Timing{

private  ArrayList  nameArray=new  ArrayList();

private  ArrayList  timeArray=new  ArrayList();

private  javax.servlet.jsp.JspWriter  out;

private  boolean  inJsp=false;

/**

*  这个构造器是在JAVA中用的。

*/

public  Timing()  {

super();

this.inJsp=false;

}

/**

*  Timing  构造,这个构造 器是在JSP中用的。

*/

public  Timing(javax.servlet.jsp.PageContext  pageContext)  {

super();

this.out=pageContext.getOut();

this.inJsp=true;

}

/**

*  此处插入方法说明。

*  创建日期:(2000-11-6  13:40:36)

*  @param  name  java.lang.String

*/

public  void  add(String  name)  {

if(name==null  //  name.length()==0)  name="Default";

//if(name.length()>7)  name=name.substring(0,7);

nameArray.add(name);

timeArray.add(Calendar.getInstance());

}

/**

*  这里是在JAVA中用法。

*  创建日期:(2000-11-6  14:39:43)

*  @param  args  java.lang.String[]

*/

public  static  void  main(String[]  args)  {

Timing  time=new  Timing();

time.add("Start");

Random  ran=new  Random();

int  i=0,j=0;

for(i=0;i<10000000;i++)

j+=ran.nextInt();

time.add("After  100");

for(i=0;i<100000;i++)

j+=ran.nextInt();

time.add("After  100000");

for(i=0;i<100000;i++)

j+=ran.nextInt();

time.add("After  100000");

time.show();

}

/**

*  此处插入方法说明。

*  创建日期:(2000-11-6  13:43:24)

*/

public  void  show()  {

if(inJsp)

showInJsp();

else

showInJava();

}

/**

*  此处插入方法说明。

*  创建日期:(2000-11-6  13:46:06)

*/

private  void  showInJava()  {

if(nameArray.isEmpty()){

System.out.println("尚未增加计时点!");

return;

}

Calendar  oldCal=null,cal=null,firstCal;

//=Calendar.getInstance()

String  name;

firstCal=(Calendar)timeArray.get(0);

System.out.println("序号名称时间耗时(秒)");

for(int  i=0;i

name=(String)nameArray.get(i);

cal=(Calendar)timeArray.get(i);

System.out.print(i+1);

System.out.print("");

System.out.print(name+"");

System.out.print(cal.get(Calendar.HOUR_OF_DAY)+":"+cal.get(Calendar.MINUTE)+":"+cal.get(Calendar.SECOND)+"."+cal.get(Calendar.MILLISECOND));

System.out.print("");

if(oldCal==null){

System.out.println("无");

}

else{

long  diffTime=cal.getTime().getTime()-oldCal.getTime().getTime();

System.out.println((double)diffTime/1000);

}

oldCal=cal;

}

System.out.println("");

if(nameArray.size()==1){

System.out.println("只增加了一个计时点,无法统计时间!");

}

else{

long  diffTime=oldCal.getTime().getTime()-firstCal.getTime().getTime();

System.out.println("总计耗时:  "+(double)diffTime/1000+"  秒");

}

}

/**

*  此处插入方法说明。

*  创建日期:(2000-11-6  13:57:56)

*/

private  void  showInJsp()  {

try  {

if  (nameArray.isEmpty())  {

return;

}

Calendar  oldCal  =  null,  cal  =  null,  firstCal;

String  name;

long  diffTime;

firstCal  =  (Calendar)  timeArray.get(0);

System.out.println("序号名称时间耗时(秒)");

String  str  =  "";

str  +=  "

str  +=  "

序号名称时间耗时(秒)";

for  (int  i  =  0;  i  <  nameArray.size();  i++)  {

str  +=  "

";

name  =  (String)  nameArray.get(i);

cal  =  (Calendar)  timeArray.get(i);

str  +=  "

";

str  +=  i  +  1;

str  +=  "

";

str  +=  "

"  +  name  +  "";

str  +=  "

"

+  cal.get(Calendar.HOUR_OF_DAY)

+  ":"

+  cal.get(Calendar.MINUTE)

+  ":"

+  cal.get(Calendar.SECOND)

+  "."

+  cal.get(Calendar.MILLISECOND)

+  "

";

if  (oldCal  ==  null)  {

//System.out.println("无");

str  +=  "

无";

}  else  {

diffTime  =  cal.getTime().getTime()  -  oldCal.getTime().getTime();

str  +=  "

"  +  (double)  diffTime  /  1000  +  "";

}

oldCal  =  cal;

str  +=  "

";

}

str  +=  "

";

if  (nameArray.size()  ==  1)  {

str  +=  "只增加了一个计时点,无法统计时间!";

}  else  {

diffTime  =  oldCal.getTime().getTime()  -  firstCal.getTime().getTime();

str  +=  "总计耗时:  "  +  (double)  diffTime  /  1000  +  "  秒";

}

str  +=  "

";

str  +=  "

";

out.println(str);

}  catch  (java.io.IOException  e)  {

}

}

}

以下是在JSP中的用法

Untitled

Timing  time=new  Timing(pageContext);

time.add("Start");

Random  ran=new  Random();

int  i=0,j=0;

for(i=0;i<1000000;i++)

j+=ran.nextInt();

time.add("After  100");

for(i=0;i<100000;i++)

j+=ran.nextInt();

time.add("After  100000");

for(i=0;i<100000;i++)

j+=ran.nextInt();

time.add("After  100000");

time.show();

%>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值