package sony.utils; import Java.util.*; import javax.servlet.jsp.*; /** * 一个计时类。 * 创建日期:(2000-11-6 13:09:38) * 作者:SonyMusic(sonymusic@ch" />
龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > JAVA开发 >

一个计时类

时间:2009-12-23 15:42来源:未知 作者:admin 点击:
分享到:
?XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" /> package sony.utils; import Java.util.*; import javax.servlet.jsp.*; /** * 一个计时类。 * 创建日期:(2000-11-6 13:09:38) * 作者:SonyMusic(sonymusic@ch

<?XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" /> 


  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<nameArray.size();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  +=  "<table  width="400"  border="1"  cellspacing="0"  cellpadding="0">";  
  str  +=  "<tr><td>序号</td><td>名称</td><td>时间</td><td>耗时(秒)</td></tr>";
  for  (int  i  =  0;  i  <  nameArray.size();  i++)  {
  str  +=  "<tr>";
  name  =  (String)  nameArray.get(i);
  cal  =  (Calendar)  timeArray.get(i);
  str  +=  "<td>";
  str  +=  i  +  1;
  str  +=  "</td>";
  str  +=  "<td>"  +  name  +  "</td>";
  str  +=  "<td>"
  +  cal.get(Calendar.HOUR_OF_DAY)
  +  ":"
  +  cal.get(Calendar.MINUTE)
  +  ":"
  +  cal.get(Calendar.SECOND)
  +  "."
  +  cal.get(Calendar.MILLISECOND)
  +  "</td>";  
  if  (oldCal  ==  null)  {
  //System.out.println("无");
  str  +=  "<td>无</td>";
  }  else  {
  diffTime  =  cal.getTime().getTime()  -  oldCal.getTime().getTime();
  str  +=  "<td>"  +  (double)  diffTime  /  1000  +  "</td>";
  }
  oldCal  =  cal;
  str  +=  "</tr>";
  }
  str  +=  "<tr><td  colspan="4">";
  
  if  (nameArray.size()  ==  1)  {
  str  +=  "只增加了一个计时点,无法统计时间!";
  }  else  {
  diffTime  =  oldCal.getTime().getTime()  -  firstCal.getTime().getTime();


  
精彩图集

赞助商链接