개발/코딩

달력 만들기

창훈e 2013. 9. 23. 17:31

package calendar;

import java.util.Calendar;
import java.util.Scanner;

public class Program {
 public static void main(String[] args) {
  int[] days = new int[42];
  Scanner in = new Scanner(System.in);
  while (true) {
   System.out.println("원하는 년도의 월을 입력하시오");
   Calendar cal = Calendar.getInstance();
   int curYear = cal.get(Calendar.YEAR);
   int curMonth = cal.get(Calendar.MONTH) + 1;// Month가 0부터 시작한다.
   curYear = in.nextInt(); // 년도 입력
   System.out.print("년");
   curMonth = in.nextInt(); // 월 입력
   System.out.print("월");
   cal.set(curYear, curMonth - 1, 1);
   int week = cal.get(Calendar.DAY_OF_WEEK);
   int start = 2 - week;// 각 월의 1일에 해당하는 요일 구하기
   int end = cal.getActualMaximum(Calendar.DAY_OF_MONTH);// 해당 달의 마지막

   /* System.out.printf("%d\n", week); */

   for (int i = 0, n = start; i < 42; i++, n++)
    if (1 <= n && n <= end) {
     days[i] = n;
    } else
     days[i] = 0; // end 날짜 이외는 0으로 표시

   System.out.printf("<%d년%d월>", curYear, curMonth);

   for (int i = 0; i < 42; i++) {
    if (i % 7 == 0) { // 일주일 표시
     System.out.println();
    }
    System.out.printf("%d\t", days[i]);
   }
  }
 }
}