ALL is Well!

敏捷是一条很长的路,摸索着前进着

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  30 随笔 :: 23 文章 :: 71 评论 :: 0 Trackbacks
/**
 * 
@author bzwm
 * 
 
*/

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Calendar;
import java.util.GregorianCalendar;

public class CalendarTest {
    
public static void main(String[] args) throws IOException {
        BufferedReader in 
= new BufferedReader(new InputStreamReader(System.in));
        System.out.print(
"请输入一个年份:");
        String years 
= in.readLine();
        CalendarPrinter cp 
= new CalendarPrinter(years);
        cp.printCal();
    }

}


class CalendarPrinter {

    
private int year;

    
private static final int monthCount = 12;

    
public CalendarPrinter(String years) {
        
if (!years.matches("\\d{4}")) {
            System.out.println(
"year that inputted is illagel.");
            
return;
        }

        year 
= Integer.parseInt(years);
    }


    
public void printCal() {
        
// construct d as current date
        GregorianCalendar gCal = new GregorianCalendar();

        
//set year
        gCal.set(Calendar.YEAR, year);
        
for (int month = 0; month < monthCount; month++{
            gCal.set(Calendar.MONTH, month);
            printOut(gCal);
        }

    }


    
private void printOut(Calendar cal) {
        
int month = cal.get(Calendar.MONTH);

        
// set cal to start date of the month
        cal.set(Calendar.DAY_OF_MONTH, 1);

        
int weekday = cal.get(Calendar.DAY_OF_WEEK);

        
// print heading
        System.out.println("Sun Mon Tue Wed Thu Fri Sat");

        
// indent first line of calendar
        for (int i = Calendar.SUNDAY; i < weekday; i++)
            System.out.print(
"    ");

        
do {
            
// print day
            int day = cal.get(Calendar.DAY_OF_MONTH);
            
if (day > 0)
                System.out.print(
" " + day + " ");
            
else
                System.out.print(
"  " + day + " ");

            
// start a new line after every Saturday
            if (weekday == Calendar.SATURDAY)
                System.out.println();

            
// advance d to the next day
            cal.add(Calendar.DAY_OF_MONTH, 1);
            weekday 
= cal.get(Calendar.DAY_OF_WEEK);
        }
 while (cal.get(Calendar.MONTH) == month);
        
// the loop exits when d is day 1 of the next month

        
// print final end of line if necessary
        if (weekday != Calendar.SUNDAY)
            System.out.println();
    }

}

----2008年12月01日
posted on 2010-09-01 11:09 李 明 阅读(392) 评论(0)  编辑  收藏 所属分类: Java

只有注册用户登录后才能发表评论。


网站导航: