2014년 4월 9일 수요일

[Java]10000년의 달력을 출력해보자

  1. import java.util.Calendar;
  2.  
  3. public class CalendarTest {
  4.     public static void main(String[] args){
  5.         Calendar c = Calendar.getInstance();
  6.         //10000년도
  7.         c.set(Calendar.YEAR10000);
  8.         System.out.println(c.get(Calendar.YEAR)+"년");
  9.         //1~12월
  10.         for(int m=0; m<12; m++){
  11.             c.set(Calendar.MONTH, m);
  12.             c.set(Calendar.DATE1);
  13.             //요일(1 : 일요일, 2 : 월요일 ...)
  14.             int week = c.get(Calendar.DAY_OF_WEEK);
  15.             //System.out.println("week:"+week); //테스트코드
  16.             //해당 월을 출력
  17.             System.out.println(c.get(Calendar.MONTH)+1+"월");
  18.             //기준 요일 출력
  19.             System.out.println("일\t\t\t\t\t\t토");
  20.            
  21.             //월의 첫날
  22.             int firstDay = 1;
  23.             //월의 마지막날
  24.             int lastDay = c.getActualMaximum(Calendar.DATE);
  25.             //Day에 대한 반복문
  26.             for(int i = firstDay; i<(lastDay+week); i++){
  27.                 //firstDay가 week와 같거나 크지 않을 경우 1일이 아니므로 공백
  28.                 if(i<week){
  29.                     System.out.print("\t");
  30.                 }else{
  31.                     //Day가 두자리수미만 일때 오른쪽 정렬
  32.                     if((i-week+1)/10 == 0){
  33.                         System.out.print(" "+(i-week+1)+"\t");
  34.                     }else{
  35.                         System.out.print((i-week+1)+"\t");
  36.                     }
  37.                 }
  38.                 //7일째 마다 아래 칸으로 내려감
  39.                 if(i%7 == 0){
  40.                     System.out.println();
  41.                 }
  42.             }
  43.             System.out.println();
  44.             System.out.println("===================================================");
  45.         }
  46.     }
  47. }

댓글 없음:

댓글 쓰기