うるう年かどうかを判定

 このことを利用して任意の年の3月1日の前日を組み込み関数で調べて、2月29日なら 閏年と判定する方法もある。この方法はVBやVBAで使うとスマートだろう。

うるう年の定義

 閏年(うるうどし)とは基本的には西暦の年が4で割り切れる年のことだ。
 しかし西暦の年が100で割り切れるときはうるう年ではなく、400で割り切れるときは うるう年という例外もある。

 例えば...
2004年は4で割り切れるから閏年
2000年は4、100、400で割り切れるから閏年
1900年は4、100で割り切れるが、400で割れないから閏年ではない


ソースコード

//
//	閏年判定
//
bool	IsUruudoshi(int nYear)
{
	if(nYear % 4)
		return	false;		//4で割り切れないから閏年ではない

	if(nYear % 100)
		return	true;		//4で割り切れて、100で割り切れないから閏年

	if(nYear % 400)
		return	false;		//4と100で割り切れて、400で割り切れないから閏年でない

	return	true;			//4でしか割り切れないから閏年
}


そのほかの判定方法

 うるう年以外の場合は2月28日の翌日は3月1日となるが、うるう年の場合は2月28日の 翌日が2月29日となり、2月29日の翌日が3月1日になる。

カテゴリー「VC++ TIPS」 のエントリー