閏年
読み:うるうどし
外語:leap year

 と季節を合わせるため、一年を1日増やす年のこと。
目次

概要
 地球の公転周期の有理数近似365.2422≒365+1/4-1/100+1/400より、4年に一度うるう年を設けるが、西暦が100で割り切れる年は閏年としない。但し400で割り切れる年は閏年とする。つまり4年毎に閏年を置くが400年に3日は無しとするというのが、現行のグレゴリオ暦である。
 増える一日をどこに置くかは歴史的な経緯もあるが、現在は2月29日とする。

特徴

法的根拠
 日本における閏年の法的根拠は、明治天皇による勅令である。大臣の名は略す。
 朕閏年ニ關スル件ヲ裁可シ茲ニ之ヲ公布セシム
 御名御璽
 明治三十一年五月十日
 勅令第九十號
 神武天皇〓位紀元年數ノ四ヲ以テ整除シ得ヘキ年ヲ閏年トス但シ紀元年數ヨリ六百六十ヲ減シテ百ヲ以テ整除シ得ヘキモノノ中更ニ四ヲ以テ商ヲ整除シ得サル年ハ平年トス
 皇紀を元にしているが、いきなり660を引くことを要求しており、つまり西暦にして計算している点がポイントである。
 なお、太陽暦への変更は、明治五年十一月九日太政官達第三百三十七号であった。

2月29日生まれの人

法律
 日本における2月29日生まれの人の扱いは、法律での規定が存在する。
 原文は次の通り。大臣の名は略す。
 年齡計算二關スル法律
 朕帝國議會ノ協贊ヲ經タル年齡計算二關スル法律ヲ裁可シ茲ニ之ヲ公布セシム
 御名御璽
 明治三十五年十二月一日
 法律第五十號
 年齡ハ出生ノ日ヨリ之ヲ起算ス
 民法第四十三條ノ規定ハ年齡ノ計算ニ之ヲ準用ス
 明治六年第三十六號布告ハ之ヲ廢止ス
 民法第百四十三条は、次の通りである。
 民法
 (暦による期間の計算)
 第百四十三条 週、月又は年によって期間を定めたときは、その期間は、暦に従って計算する。
 2 週、月又は年の初めから期間を起算しないときは、その期間は、最後の週、月又は年においてその起算日に応当する日の前日に満了する。ただし、月又は年によって期間を定めた場合において、最後の月に応当する日がないときは、その月の末日に満了する。

考え方
 誕生日の前日の終了をもって満年齢は加齢されるため、平年・閏年を問わず、2月28日の終了をもって2月29日生まれの者は1年加齢することになる。つまり、平年においては3月1日生まれの人と同じ扱いである。
 ただ、祝い事などのために「誕生日」を定める必要がある場合、平年にあっては2月29日が無いため「みなし」誕生日を置く必要があり、日本の法律においては前日つまり2月28日とみなすことになっている。ただしあくまで「みなし」誕生日であり、2月28日の段階ではまだ法律上は加齢されていない。
 民間においては、2月28日にみなす場合と、3月1日にみなす場合がある。
 いずれにしても、「4年に一回しか年を取らない」などということはない。前後の日に生まれた人が20歳になっても2月29日生まれはまだ5歳で小学校にも行けない…前後の日に生まれた人が60歳で還暦を迎えても2月29日生まれはまだ15歳で中学生、義務教育すら終わっていないので就職も出来ない…などということが無いようになっている。

プログラム
 閏年判定の処理は、次のようになる。

Perl
sub is_leap
{
    my $year = shift;
    (not $year % 4 and $year % 100) or (not $year % 400);
}

C言語
/* 閏年なら 1 が返る */
int is_leap (int year)
{
    return (!(year%4)) && (year%100) || (!(year%400));
}

再検索