源程序:
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 week=d.get(Calendar.DAY_OF_WEEK);
System.out.println("SUN MON TUE WED THR FRI SAT");


for(int i=Calendar.SUNDAY;i<week;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(week==Calendar.SATURDAY)
System.out.println();
d.add(Calendar.DAY_OF_MONTH,1);
week=d.get(Calendar.DAY_OF_WEEK);
}while(d.get(Calendar.MONTH)==month);
}}
输出结果:
SUN MON TUE WED THR FRI SAT
                      1   2 
  3   4   5   6   7   8   9 
 10  11  12  13  14  15  16 
 17  18  19  20  21  22  23 
 24* 25  26  27  28  29 
我怎么把输出结果变为:
SUN MON TUE WED THR FRI SAT
                     1   2 
 3   4   5   6   7   8   9 
10  11  12  13  14  15  16 
17  18  19  20  21  22  23 
24* 25  26  27  28  29 
就是让数字对应中间?

解决方案 »

  1.   

    这是我写的,比较笨package face;
    import   java.util.Calendar; 
    import   java.util.GregorianCalendar; 
    class   CalendarTest 
    {     public   static   void   main(String[]   args) 
        { 
            GregorianCalendar   a=new   GregorianCalendar(); 
            int   day=a.get(Calendar.DAY_OF_MONTH); 
            int   month=a.get(Calendar.MONTH); 
            a.set(Calendar.DAY_OF_MONTH,1); 
            int   weekday=a.get(Calendar.DAY_OF_WEEK);
            System.out.println("本月的日历:");
            System.out.println("日   一   二   三   四   五   六   "); 
            for(int   i=Calendar.SUNDAY;i <weekday;i++) 
            { 
                System.out.print("     ");
            } 
            do{ 
                int   today=a.get(Calendar.DAY_OF_MONTH); 
                System.out.printf("%2d",today);
            if(day==today) 
            { 
                System.out.print("*  ");
            } 
            else 
            { 
                System.out.print("   "); 
            } 
            if(a.get(Calendar.DAY_OF_WEEK)==7)
            { 
                System.out.println(); 
            } 
                a.add(Calendar.DAY_OF_MONTH,1); 
            }while(a.get(Calendar.MONTH)==month); 
            System.out.println();
        } 
    }
      

  2.   

    改的楼主的public class CalendarTest1 {
    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 week = d.get(Calendar.DAY_OF_WEEK);
    System.out.println("SUN\tMON\tTUE\tWED\tTHR\tFRI\tSAT"); for (int i = Calendar.SUNDAY; i < week; i++)
    System.out.print("\t");
    do {
    int day = d.get(Calendar.DAY_OF_MONTH); System.out.print(day+"\t"); if (day == today)
    System.out.print("**");
    else
    // System.out.print("   ");
    if (week == Calendar.SATURDAY)
    System.out.println();
    d.add(Calendar.DAY_OF_MONTH, 1);
    week = d.get(Calendar.DAY_OF_WEEK);
    } while (d.get(Calendar.MONTH) == month);
    }
    }
      

  3.   

    System.out.printf("%5d",day); 
    你可以指定每个数字的输出占用的宽度,%5d 就是5个位置的数字,不足的前面默认补空白