日期:2014-05-20  浏览次数:20713 次

问大家一个关于GregorianCalendar类的问题,一段源程序,最后的一步明白。
源程序:import   java.util.*;
public   class   CalendarTest   {
public   static   void   main(String[]   args)
{
GregorianCalendar   d=new   GregorianCalendar();
int   today=d.get(Calendar.DAY_OF_MONTH);
        int   month=d.get(Calendar.MONTH);
        d.set(Calendar.DAY_OF_MONTH,1);
        int   weekday=d.get(Calendar.DAY_OF_WEEK);
        System.out.println( "SUN   MON   TUE   WED   THU   FRI   SAT ");
        for(int   i=Calendar.SUNDAY;i <weekday;i++)
        System.out.print( "         ");
        do
        {
        int   day=d.get(Calendar.DAY_OF_MONTH);
        System.out.printf( "%3d ",day);
        if(day==today)
        System.out.print( "* ");
        else
        System.out.print( "   ");
        if(weekday==Calendar.SATURDAY)
        System.out.println();
        d.add(Calendar.DAY_OF_MONTH,1);
        weekday=d.get(Calendar.DAY_OF_WEEK);
        }while(d.get(Calendar.MONTH)==month);
        if(weekday!=Calendar.SUNDAY)
        System.out.println();
       
       
}

}
最后一步,就是if(weekday!=Calendar.SUNDAY)
                              System.out.println();
这一步我不明白是干什么用的,我把它删了照样可以得出预定的结果。高手可以告诉我一下吗?谢了。


------解决方案--------------------
if(weekday!=Calendar.SUNDAY)
System.out.println();

这一句,如果下面没有什么输出内容的话,是可以去掉的。如果下面还有输出内容,就不能去掉,否则下面输出的内容会接在日历的后面。

那为什么要不等于星期天的时候换行呢?因为前面在星期六的时候已经换行了,其他的星期没有换行,那星期六后有加一天的语句,那就是星期天,也就是说不是星期天的时候换行(加一天之前是星期天至星期五)。

不知道你明白了吗?