Java Calendar

Programming/JAVA,JSP 2013. 12. 31. 17:39 Posted by TanSanC
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

import java.util.Scanner;

 

public class Calendar {

   public static void main(String args[]) {

 

       int year;

       int month;

       int totalDays = 0;

       int totalYearDays = 0;

 

       Scanner sc = new Scanner(System.in);

       System.out.println("연도 입력 : ");

       year = sc.nextInt();

       System.out.println("월 입력 : ");

       month = sc.nextInt();

 

       // 해당 년 월의 총 일수 구하기

       switch (month) {

       case 1:

       case 3:

       case 5:

       case 7:

       case 8:

       case 10:

       case 12:

          totalDays = 31;

          break;

       case 4:

       case 6:

       case 9:

       case 11:

          totalDays = 30;

          break;

       case 2:

          if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {

             totalDays = 29; // 윤년

          } else {

             totalDays = 28; // 평년

          }

          // year 4의 배수이면 윤년

          // 그런데, year 100의 배수이면 평년

          // 그런데, year 400의 배수이면 윤년

          // 2003 : 평년

          // 2004 : 윤년

          // 2100 : 평년

          // 2400 : 윤년

       }

       // 2000 1 1일 토요일

       // 1900 : 365

       // 1901 : 365

       // 1902 : 365

       // 1903 : 365

       // 1904 : 366

       //

       // 2012 1 1 ?

       // 0 1 1

       int wcount = 0;

       wcount = (365 * year + year / 4 - year / 100 + year / 400) % 7;

 

       System.out.printf("%4s%4s%4s%4s%4s%4s%4s\n", "", "", "", "", "",

             "", "");

 

       // 3

       // wcount + 1 + 2

 

       for (int i = 1; i < month; i++) {

          switch (i) {

          case 1:

          case 3:

          case 5:

          case 7:

          case 8:

          case 10:

          case 12:

             wcount += 31;

             break;

          case 4:

          case 6:

          case 9:

          case 11:

             wcount += 30;

             break;

          case 2:

             if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {

                 wcount += 29; // 윤년

             } else {

                 wcount += 28; // 평년

             }

             // year 4의 배수이면 윤년

             // 그런데, year 100의 배수이면 평년

             // 그런데, year 400의 배수이면 윤년

             // 2003 : 평년

             // 2004 : 윤년

             // 2100 : 평년

             // 2400 : 윤년

          }

       }

       wcount = wcount % 7;

 

       for (int i = 0; i < wcount; i++) {

          System.out.printf("%5s", "");

       }

       for (int i = 1; i <= totalDays; i++) {

          System.out.printf("%5d", i);

          if (wcount % 7 == 6)

          {

             System.out.println("");

          }

          wcount++;

       }

   }

}

 

 

'Programming > JAVA,JSP' 카테고리의 다른 글

JAVA 배열 정렬 예제  (0) 2014.01.06
JAVA 행렬 합곱 예제  (0) 2014.01.06
JAVA Calendar #2  (0) 2013.12.31
Calendar #1  (0) 2013.12.31
JAVA 파일 검색 코드  (0) 2013.12.28