import java.util.*;
class Test 
{
public static void main(String[] args) 
{
Calendar c1=new GregorianCalendar(1979,4,1,1,0,0);
Calendar c2=new GregorianCalendar(1987,4,1,1,0,0);
//Calendar c1=Calendar.getInstance();
//Calendar c2=Calendar.getInstance();
//c1.set(1974,4,1,0,0);
//c2.set(1987,4,1,0,0);
int i=0;
String w[]={"一","二","三","四","五","六","日"};
System.out.println(c1.get(c1.YEAR)+"年"+(c1.get(c1.MONTH)+1)+"月"+c1.get(c1.DAY_OF_MONTH)+"日"+"星期"+w[c1.get(c1.DAY_OF_WEEK)-1]+c1.get(c1.HOUR)+":"+c1.get(c1.MINUTE)+":"+c1.get(c1.SECOND));
for(i=0;!c1.equals(c2);i++)
{
c1.add(c1.DAY_OF_MONTH,1);
//if(i>2600)
//break;
System.out.print(c1.get(c1.YEAR)+"年"+(c1.get(c1.MONTH)+1)+"月"+c1.get(c1.DAY_OF_MONTH)+"日"+c1.get(c1.HOUR)+":"+c1.get(c1.MINUTE)+":"+c1.get(c1.SECOND));
System.out.print("    "+c2.get(c2.YEAR)+"年"+(c2.get(c2.MONTH)+1)+"月"+c2.get(c2.DAY_OF_MONTH)+"日"+c2.get(c2.HOUR)+":"+c2.get(c2.MINUTE)+":"+c2.get(c2.SECOND));
System.out.println("    "+i);
}
//i=(int)((c2.getTimeInMillis()-c1.getTimeInMillis())/(1000*60*60*24));
System.out.println("2005年5月1日距1979年4月1日"+i+"天");
}
}

解决方案 »

  1.   

    天哪,忘了说问题!题目要求是取得1987年4月1日和1979年4月1日之间的天数Calendar c1=new GregorianCalendar(1979,4,1,1,0,0);
    Calendar c2=new GregorianCalendar(1987,4,1,1,0,0);为什么在构造Calendar实例对象的时候如果不指定小时就不能使得c1.equals(c2);如果要是不指定小时,分,秒也可以相等,指定了0,0,0就不能相等?为什么呢?请指教!