import java.util.Date;
class Example6_2
{
   public static void main(String args[])
   {
     long time1=System.currentTimeMillis();
     System.out.println(time1);      //输出的结果不是系统的时间呀,是这个1132037112467
     Date ate=new Date(time1);
     System.out.println(ate);       //输出结果应该是和上面的一样呀?咋不一样呢
     String s=String.valueOf(time1);
     int length=s.length();
     s=s.substring(length-8);
     System.out.println(s);
     long result=f(28);
     System.out.println("result="+result);
     long time2=System.currentTimeMillis();
     s=String.valueOf(time2);
     length=s.length();
     s=s.substring(length-8);
     System.out.println(s);
     System.out.println("用时 "+(time2-time1)+"毫秒");
   }
   public static long f(long n)     //这个函数起什么作用?
   {
     long c=0;
     if(n==1||n==2) c=1;
     else if(n>=3) c=f(n-1)+f(n-2);
     return c;
   }
  
}

解决方案 »

  1.   

    那个函数是求 菲波那契 数列的第n个数
    currentTimeMillis() 返回1970年1月1日0时到当前系统时间所经过的毫秒数
      

  2.   

    currentTimeMillis() 返回1970年1月1日0时到当前系统时间所经过的毫秒数,当你输出两个时间的
    时候当然得到两个不同的结果,
      

  3.   

    我认为他们会相同:
    time1这个变量已经被赋了从70年到系统时间的那个值了,所以Date ate=new Date(time1);的时候time1 还是前面那个time1就会是一样的了呀。
      

  4.   

    你想要时间相等的话,应该用ate.getTime()这个方法。
    用System.out.println(ate);的话,调用的是Date的toString()方法。
    当然和getTime的返回值不一样了。f函数是他自己写的一个递归函数,公式的意义,呵呵,不好意思,忘记了。这段函数,他就是来计算这个方法的耗时的。