閏年の判定のアルゴリズム

閏年は、4で割り切れ、100で割り切れるものを抜かし、それでも400で割り切れるものは含めたもの。コードにすると、以下の通り。

bool bLeap = (nYear%4==0) && ((nYear%100!=0) || (nYear%400==0))

ちなみに、その月の最大の日にちは、以下のように求められる。

int nYear = 2004; // 年を入れる
int nMonth = 5; // 月を入れる

bool bLeap = (nYear%4==0) && ((nYear%100!=0) || (nYear%400==0))
int maxDay;
switch(nMonth)
{
case 2:
maxDay = bLeap ? 29 : 28;
break;
case 4:
case 6:
case 9:
case 11:
maxDay = 30;
break;
default:
maxDay = 31;
}
[PR]
by isoq | 2004-06-28 20:11 | 開発日記

ソフトウェア開発で見つけたこと、気づいたことなどのメモと日記です


by あいそび
プロフィールを見る
画像一覧