윤년을 구하는 알고리즘(An algorithm for leap year)
윤년이 되면 1년이 366일 되고, 평년의 경우에는 365일이 된다.
윤년을 구하는 방법은, 우선 4의 배수가 되는 해는 일단 윤년의 후보가 된다. 이 때, 4의 배수이면서 100의 배수이면서 400의 배수가 되면 윤년이 되나, 400의 배수가 아니면 윤년이 아니다. 그리고 나머지 4의 배수이면서 100의 배수가 아닌 경우에 윤년이 되는 것이다. 이와 같은 윤년의 조건을 표로 정리하면 다음과 같다.
4의 배수 100의 배수 400의 배수 윤년의 여부
O O O YES
O O X NO
O X X YES
X X X NO
int getDaysOfMonth(int mon, int year){
/* int mon : month of the year */
/* int year : the year */
if(mon==2){
if(year%4==0){
if(year%100==0){
if(year%400==0) return 29;
else return 28;
}
else return 29;
}
else return 28;
}
if(mon==4||mon==6||mon==9||mon==11) return 30;
else return 31;
}