달력 만들기

개발/코딩 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]);
   }
  }
 }
}

'개발 > 코딩' 카테고리의 다른 글

정수 10개를 입력받아 배열에 저장후 큰순서 대로 프린트  (0) 2013.09.24
로또 중복안되게...짜증나네  (0) 2013.09.23
lotto  (0) 2013.09.17
성적 입력(switch)  (0) 2013.09.17
성적 계속 입력 (do-while문)  (0) 2013.09.16