01.JAVA/Java2009. 8. 25. 09:58
반응형

출처 : http://fendee.egloos.com/8682738

윤년이 되려면,

1.연도가 4 로 나누어 떨어질것
2.단, 100으로 나누어 떨어지는 해는 제외한다.
3.400으로 나누어 떨어지는 해는 윤년이다.

이것을 공식으로 처리하면,(변수 year 는 연도)

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

현재 년도를 year 에 대입한후, 위 식의 값이 true 이면 윤년이고, false 이면 윤년이 아니다.


java.util.Calendar 를 이용한, 날짜 출력 및 윤년계산

<a.java>


import java.io.*;
import java.util.*;
import java.util.Calendar;

public class a
{
  public static void main(String [] args)
  {
    Date today = new Date();
    System.out.println(today);

    Calendar cal = Calendar.getInstance();
   
    int year = cal.get(cal.YEAR);  //YEAR 는 모두 대문자로 써야한다.
    // 또는 cal.get(Calendar.YEAR);
    int year2 = cal.get(Calendar.YEAR);
    System.out.println("다른 방식:" + year2);
   
    System.out.println(year);
    int mont = cal.get(cal.MONTH) + 1;  //MONTH 는 모두 대문자로 써야한다.(월에는 1을 더해줘야 한다.)
    System.out.println(mont);
    int dat = cal.get(cal.DATE); //DATE 는 모두 대문자로 써야한다.
    System.out.println(dat);
           
    System.out.println("오늘은 " + year + "년 " + mont + "월 " + dat + "일 입니다");
   
    int weeknum = cal.get(cal.DAY_OF_WEEK);
    String weekstr = "00";
    switch(weeknum){
      case 1 : weekstr = "일"; break;
      case 2 : weekstr = "월"; break;
      case 3 : weekstr = "화"; break;
      case 4 : weekstr = "수"; break;
      case 5 : weekstr = "목"; break;
      case 6 : weekstr = "금"; break;
      case 7 : weekstr = "토"; break;
    }
    System.out.println(weekstr + "요일");
   
    int hour = cal.get(cal.HOUR);
    int min = cal.get(cal.MINUTE);
    int sec = cal.get(cal.SECOND);
    String thistime = hour + ":" + min + ":" + sec;
   
    System.out.println("현재시각은 " + thistime + " 입니다");
   
   
    //(year % 4 == 0 && year % 100 !=0) || (year % 400 == 0)
    if((year % 4 == 0 && year % 100 !=0) || (year % 400 == 0)){
      System.out.println("올해는 윤년입니다");
    }else{
      System.out.println("올해는 윤년이 아닙니다");
    }
  }
}



첨부파일: 20090303(tue)-calendar_util.zip
Posted by 1010