*   打印Windows系统日历格式
 * 
 *     2016年4月16日  星期六  今年的107天
 *
 *     日    一    二    三    四    五    六
 *		              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 30
 *
 *   Date类  Calendar类  DateFormat类 SimpleDateFormat类的应用和练习
 *
 */
 import java.text.SimpleDateFormat;
public class MyCalendar {

	public static void main(String[] args) {
		
		Date d=new Date();
		ShowMonth s=new ShowMonth();
		
		SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日  E  今年的第D天");
		System.out.println(sdf.format(d));
		System.out.println("日\t一\t二\t三\t四\t五\t六");
		s.show();
		
	}

}
import java.util.Calendar;
public class ShowMonth {
   
	Calendar c=Calendar.getInstance();
	//获得每个月的最大天数
    int sumDays =c.getActualMaximum(Calendar.DATE); 
  
    public void show(){
    	//设置当前日期为第一天(1日)
    	c.set(Calendar.DAY_OF_MONTH, 1);  
    	//得到当前(1日)是一周的第几天
    	int a = c.get(Calendar.DAY_OF_WEEK);
    	//打印当前(1日)日期前面的空格
    	  for(int i=1; i<a; i++) {
              System.out.print("\t");
          }
    	  
    	  //打印每个月的日期
    	  for(int i=1;i<=sumDays;i++){
    		  System.out.print(i+"\t");
    		  //如果是周六,换行输出
    		  if(c.get(Calendar.DAY_OF_WEEK)==Calendar.SATURDAY){
    			  System.out.println();
    		  }
    		// 每次输出日期后,将日期增加一天
    		  c.add(Calendar.DAY_OF_MONTH, 1);
    	  }
    	
    }
    
}