请问这个输出日历的怎么只能输出1号,其他的输不出啊
import java.text.SimpleDateFormat;import java.util.Calendar;
public class Day{
public static void main(String [] args){
SimpleDateFormat sf=new SimpleDateFormat();
Calendar cal=Calendar.getInstance();
//System.out.println("今天是这一年的第"+cal.get(Calendar.DAY_OF_YEAR)+"天");//今天是一年中得第几天
//System.out.println("今天是星期"+(cal.get(Calendar.DAY_OF_WEEK)-1)); //今天是星期几
//System.out.println("当前时间:"+cal.get(Calendar.DAY_OF_MONTH)+"号");
int maxDay=cal.getActualMaximum(Calendar.DAY_OF_MONTH);//打印日历图形
System.out.println(" 日 一 二 三 四 五 六 ");
for(int i=1;i<=maxDay;i++){
cal.set(Calendar.DAY_OF_MONTH, i);//设置当前的时间
int week=cal.get(Calendar.DAY_OF_WEEK)-1;//表示星期几
if(i==1){
for(int j=0;j<week;j++)System.out.print(" ");
//打印1号的空格
if(week!=6){//星期六的时候换行
System.out.print(sf.format(cal.getTime())+" ");
}
else{
System.out.println(i);
}
}
}
}
}
----------------解决方案--------------------------------------------------------
代码太乱,我照你意思写了一段 供参考:
package chp3.test;
import java.util.*;
class Day
{ public static void main(String args[])
{ System.out.println(" 日 一 二 三 四 五 六");
Calendar 日历=Calendar.getInstance();
日历.setTime(new Date());
int 星期几=日历.get(Calendar.DAY_OF_WEEK)-1;
int maxDay=日历.getActualMaximum(Calendar.DAY_OF_MONTH);
int day=日历.get(Calendar.DAY_OF_MONTH);
//算本月第一天是星期几
星期几=星期几-(day%7-1)>=0?星期几-(day%7-1):星期几-(day%7-1)+7;
String a[]=new String[星期几+maxDay];
for(int i=0;i<星期几;i++)
{ a[i]=" ";
}
for(int i=星期几,n=1;i<星期几+maxDay;i++)
{ if(n<=9)
a[i]=String.valueOf(n)+" ";
else
a[i]=String.valueOf(n) ;
n++;
}
for(int i=0;i<a.length;i++)
{ if(i%7==0)
{ System.out.println("");
}
System.out.print(" "+a[i]);
}
}
}
----------------解决方案--------------------------------------------------------
if (i == 1)
{
for (int j = 0; j < week; j++)
System.out.print(" ");
//打印1号的空格
if (week != 6)
{//星期六的时候换行
System.out.print(sf.format(cal.getTime()) + " ");
} else
{
System.out.println(i);
}
}
你的程序中就是只做了1号时候的处理,其他日期并没有做处理,注意我用红色标出的一行。
----------------解决方案--------------------------------------------------------
if(i==1){
for(int j=0;j<week;j++)System.out.print(" ");
} //括号错位了
//打印1号的空格
if(week!=6){//星期六的时候换行
//System.out.print(sf.format(cal.getTime())+" "); // 这里我不明白
System.out.print(i+" ");
}
else{
System.out.println(i);
}
----------------解决方案--------------------------------------------------------