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_MONTH);

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.println("*");
else
System.out.println(" ");

if(weekday == Calendar.SATURDAY)
System.out.println();
d.add(Calendar.DAY_OF_MONTH,1);
weekday = d.get(Calendar.DAY_OF_MONTH);
}while (d.get(Calendar.MONTH) == month);

if(weekday != Calendar.SUNDAY)
System.out.println();
}
}我想输出 类似这样的
Sun Mon Tue Wed Thu Fri Sat
  1   2   3 ..但是这段代码是一竖列呀-。- 求解哪里不对!

解决方案 »

  1.   

    你这有俩问题
    第一 是当天的加×号,但是不应该换行
    第二 应该是   int weekday = d.get(Calendar.DAY_OF_WEEK); 此处有俩地方
        即一周当中的天数 而不是一月中的天数
    把这两个改好了就好了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();
    }
      

  2.   

    SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");  
      

  3.   

    怎么看怎么想java 核心技术上的代码   你看看源代码就知道哪有问题了
      

  4.   


    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_MONTH);
            System.out.println(" Sun Mon Tue Wed Thu Fri Sat");
               int i=0;
             while(i<8){
             i++;
             if(d.get(Calendar.DAY_OF_WEEK)==i){
             int s=4*i;
             System.out.printf("%"+s+"d", d.get(Calendar.DAY_OF_MONTH));
             break;
             }
            
             }
              d.set(Calendar.DAY_OF_MONTH,2);
             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(d.get(Calendar.DAY_OF_WEEK)==7)
                 System.out.println();
                d.add(Calendar.DAY_OF_MONTH,1);
            }while (d.get(Calendar.MONTH) == month);
            
            if(weekday != Calendar.SUNDAY)
                System.out.println();
        }
    }
      

  5.   

    我是java新手,刚学java两个月··前段时间写的,没有用Calendar类和Date类 日历查询 千万别喷我··import java.util.Scanner;
    public class Calendar { /**
     * @param args
     */
    public static void main(String[] args) {

    Scanner input= new Scanner(System.in);
    System.out.println("********日历查询********");
    System.out.println("请输入年份:");
            int Y=input.nextInt();
            System.out.println("请输入月份:");
            int M=input.nextInt();
            int day=0;//变量用来统计到现在日期相差的天数
            System.out.println("您要查询的日期为:"+Y+"年-"+M+"月");
            
            for(int i=0000;i<Y;i++){
             //闰年或非闰年
             if(Y%4==0&&Y%100!=0||Y%400==0){
                    day+=366;
            
                }else{
                 day+=365;
                }
            }
            
            for(int i=1;i<M;i++){
                switch(i){
             //月大31天
             case 1:
             case 3:
             case 5:
             case 7:
             case 8:
             case 10:
             case 12:
             day+=31;
            
             break;
             //月小 30天
             case 4:
             case 6:
             case 9:
             case 11:
             day+=30;
            
             break;
             //月平 29天
             case 2:
             if(Y%4==0&&Y%100!=0||Y%400==0){
                 day+=29;
             }else{
             day+=28;
             }
                break;
                }
            }
            int wDay=(day+1)%7;//对应星期天
            System.out.println("----------------------------------------------------------------");
             //查询输出
            System.out.println("星期日\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六\t");
            int mday=7-wDay;
            int count=0;
            //输出空格数
            for(int i=0;i<wDay;i++){
    System.out.print("\t");
    }
            switch(M){
         //月大31天
         case 1:
         case 3:
         case 5:
         case 7:
         case 8:
         case 10:
         case 12:
         for(int i=1;i<32;i++){
             if(i<=mday){
              for(int j=0;j<mday;j++){//判断第一行
                  System.out.print(i+"\t");
                  if(i==mday){
                         System.out.println();
                      }
                     break;
                 }
             }else{
              System.out.print(i+"\t");
              count++;
              if(count%7==0){
              System.out.println();
              }
             }
           
         }
        
         break;
         //月小 30天
         case 4:
         case 6:
         case 9:
         case 11:
         for(int i=1;i<32;i++){
             if(i<=mday){
              for(int j=0;j<mday;j++){//判断第一行
                  System.out.print(i+"\t");
                  if(i==mday){
                         System.out.println();
                      }
                     break;
                 }
             }else{
              System.out.print(i+"\t");
              count++;
              if(count%7==0){
              System.out.println();
              }
             }
           
         }
        
         break;
         //月平 29天
         case 2:
         if(Y%4==0&&Y%100!=0||Y%400==0){
         for(int i=1;i<32;i++){
                 if(i<=mday){
                  for(int j=0;j<mday;j++){//判断第一行
                      System.out.print(i+"\t");
                      if(i==mday){
                             System.out.println();
                          }
                         break;
                     }
                 }else{
                  System.out.print(i+"\t");
                  count++;
                  if(count%7==0){
                  System.out.println();
                  }
                 }
               
             }
            
         }else{
         for(int i=1;i<32;i++){
                 if(i<=mday){
                  for(int j=0;j<mday;j++){//判断第一行
                      System.out.print(i+"\t");
                      if(i==mday){
                             System.out.println();
                          }
                         break;
                     }
                 }else{
                  System.out.print(i+"\t");
                  count++;
                  if(count%7==0){
                  System.out.println();
                  }
                 }
               
             }
            
            break;
            } }
    }
    }