java输出万年历

import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;


public class MyDate {
	
	  public static void main(String[] args) {
	        MyDate date = new MyDate(); 
	        
	        Calendar calendar = Calendar.getInstance() ;
	        int month = calendar.get(Calendar.MONTH ) + 1 ;
	        calendar.set(Calendar.MONTH , month ) ; 
	        date.myCalendar( calendar.getTime() ) ; 
	    } 
	    //实现日历的方法  
	    public void myCalendar(Date date) { 
	        GregorianCalendar now = new GregorianCalendar(); 
	        // 打印当前时间  
	        // 设置当前时间  
	        now.setTime(date); 
	        // 从日期中取得当前的日  
	        int toDay = now.get(Calendar.DAY_OF_MONTH); 
	        // 从日期中取得当前的月  
	        int month = now.get(Calendar.MONTH) ; 
	        // 设置now的日期为1  
	        now.set(Calendar.DAY_OF_MONTH, 1); 
	        // 得到now是一周的第几天  
	        int week = now.get(Calendar.DAY_OF_WEEK); 
	        // 打印日历头部标示  
	        System.out.println("日\t一\t二\t三\t四\t五\t六");
	        // 打印当前日期前面的空格  
	        for (int i = Calendar.SUNDAY; i < week; i++) { 
	            System.out.print("\t");  
	        } 
	        // 打印日历主体  
	        while (now.get(Calendar.MONTH) == month) { 
	            int day = now.get(Calendar.DAY_OF_MONTH); 
	            // 对输出的日历进行对齐,小于10的加上一个空格  
	            if (day < 10) { 
	                // 如果是当前日期,加上标示  
	                if (day == toDay) { 
	                    System.out.print("▲" + day + "▲\t"); 
	                } else { 
	                    System.out.print(" " + day + "\t"); 
	                } 
	            } else { 
	                // 如果是当前日期,加上标示  
	                if (day == toDay) { 
	                    System.out.print("▲" + day + "▲\t"); 
	                } else { 
	                    System.out.print("" + day + "\t"); 
	                } 
	            }
	            //如果是周六,进行换行  
	            if (week == Calendar.SATURDAY) { 
	                System.out.println(); 
	            } 
	            //每次输出日期后,将日期增加一天  
	            now.add(Calendar.DAY_OF_MONTH, 1); 
	            //重新获得一周的第几天  
	            week = now.get(Calendar.DAY_OF_WEEK);  
	        }
	    }
	    
}


posted @ 2013-06-29 23:02  坚固66  阅读(301)  评论(0编辑  收藏  举报