출처 : 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