问大家一个关于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();
这一句,如果下面没有什么输出内容的话,是可以去掉的。如果下面还有输出内容,就不能去掉,否则下面输出的内容会接在日历的后面。
那为什么要不等于星期天的时候换行呢?因为前面在星期六的时候已经换行了,其他的星期没有换行,那星期六后有加一天的语句,那就是星期天,也就是说不是星期天的时候换行(加一天之前是星期天至星期五)。
不知道你明白了吗?