閏年

太陽暦

太陽暦では、季節に暦を一致させるため、暦年の平均の長さを平均回帰年（365.242 189 44日≒365日5時間48分45.168秒）になるべく一致させる。
太陽暦では、平年は365日であり、閏年は閏日が挿入されて366日である。現在広く採用されているグレゴリオ暦では、閏年は400年間に97回ある。

古代エジプト

古代エジプトの暦には閏年はなく、1暦年は常に365日であった。そのため、4.129年に1日の割合で暦と季節がずれた。当時すでに回帰年は365.25日という観測値が得られていたが、暦に反映されることはなかった。農民は暦ではなく恒星・シリウスの動きを頼りに農作業のスケジュールを決めた。

ユリウス暦

ユリウス暦は、紀元前46年に古代ローマで採用され、4年に1回を閏年としていた。但し、導入直後は混乱が見られ、3年に1回を閏年としたり、暫く閏年を置かない期間があった（詳細はユリウス暦を参照）。
ユリウス暦では、閏年には2月の日数を1日増やして29日とする。閏日を2月に挿入したのは、ローマ暦の初期にはMartius（後の3月）が年初でFebruarius（後の2月）が年末だったからである。厳密には共和政初期にIanuarius（後の1月）を年初とするように変更されたが、まだ古い慣習が残っていた。
ユリウス暦の置閏法では1暦年は平均365.25日となり、約128年に1日の割合で暦と季節がずれるが、これでも閏年を置かない場合に比べれば大きな進歩であった。しかし、1500年以上に亘って使われていくうちに、次第に暦と天文学上の現象がずれてきた。ローマ・カトリック教会では325年のニカイア公会議で春分を3月21日と定めてそれを基に復活祭の日付を決めることにしたが、日数が多いが故に、16世紀には天文学上の春分が暦の上では3月11日となってしまい、問題視されるようになった。

閏週

太陽暦の置閏法には、約4年に1度の閏年に1日の閏日を挿入する以外の方法もあり得る。

平年を365日とするもの

約29年毎に閏年を設け、その年に1週間の閏週を挿入するという置閏法も可能であり、そのような暦が提案されたこともある（en:Leap week calendar）。この暦の根拠は次の通りである。
　0.2422日/年　×　29年　＝　7.024 日
したがって、29年間に7日の閏日（つまり1週間の閏週）を挿入すればよい。

太陰暦

純粋な太陰暦では、そもそも暦と季節とを一致させないので、太陽暦のような閏日はない。その代わり、平均朔望月（29.530 589日）が1日の整数倍でないことで生じる、暦と月相とのずれを補正するための閏日がある。

ヒジュラ暦

ヒジュラ暦（イスラム暦）での置閏法（または、日付の付け方）には、観測に基づく方法と計算に基づく方法があるが、ここでは後者の方法（en:Tabular Islamic calendar）によるものを示す。
通常は小の月（29日）と大の月（30日）が交互に繰り返す。しかしこれでは1暦月は平均29.5日となり、月相とは少しずつずれていく。そこで、30暦年に11回、小の月に閏日を挿入して大の月とする。これにより1暦月は平均29.530 555日となり、朔望月とほぼ一致する。
閏日を含む年が閏年となり、暦年の長さは平年は354日、閏年は355日である。閏年はヒジュラ紀元の年数を30で割った余りが2、5、7、10、13、16、18、21、24、26、29となる年である。
この方法によるヒジュラ暦では、約2450年で暦と月相が1日ずれる。

太陰太陽暦

太陰太陽暦では、暦を季節と月相の双方に一致させなければならない。そのため、理屈の上では2種類の閏がある。ただし、通常は暦と月相を一致させるシステムは閏とは呼ばれず、暦と季節を一致させるための閏のみが存在する。
太陰太陽暦では1暦年の長さは平均朔望月のほぼ整数倍でしか選べない。1平均回帰年は12.368平均朔望月なので、平年は12ヶ月（354日前後）、閏年は閏月が挿入されて13ヶ月（384日前後）となる。
閏年を2.715年に1回入れれば、平均暦年と平均回帰年が一致する。実際に行われた置閏法には、8年に3回、19年に7回（メトン周期）、76年に28回（カリポス周期）などがある。

中国暦

中国暦ならびに派生した和暦（以下、まとめて中国暦と書く）では、太陽と月の運行を実際に観測し、季節と暦のずれが最小になるように閏月を入れる。具体的に述べると次のようになる。
暦月は朔日（月齢0を含む日）から次の朔日の前日までとする。冬至（太陽が黄経270°を通過する日）を含む暦月を11月とし、他の各中気（黄道上の太陽の位置が黄経30°の整数倍である日）を含む暦月を1月から12月とする。しかし、中気から中気までは平均すると30.437日で暦月の平均（=平均朔望月）より長いため、中気を含まず名前の付かない暦月が残ることがある。その暦月が閏月となる。例えば、閏月が7月と8月の間に生じたらその月は「閏7月」と呼ばれる。そして、閏月を含む年が閏年である。なお、中気の間隔は一定ではないため1暦月に複数の中気が含まれることがあるので、それに備え優先順位など細則が決められている。
中国暦では、暦と月相の一致も実際の新月に暦月をスタートさせることで実現されている。そのため、29日の小の月と30日の大の月が不規則に出現する。ただしヒジュラ暦のような「平年」といえる状態がないため、これは閏とはいわない。
中国暦では閏年、閏月、月の大小のパターンに規則性はなく、遠い未来の暦は決定できない。その代わり、太陽と月の運行の観測を怠らず正しく運用されれば暦と月相は永久にずれることはない（ただし、太陰太陽暦である以上、暦と季節の間に最大±0.5朔望月=約15日の差はできる）。

閏秒

閏年は季節と月相に対する暦のズレを補正するシステムだが、閏秒はこれとはまったく別の目的のためのもので暦とは無関係であり、原子時計により決められる協定世界時と地球の自転で決まる世界時との差を補正するためのシステムである。したがって、閏秒が実施される年であってもその年を閏年とはいわない。

コンピュータシステムと閏年

コンピュータシステムにおいて閏年を判定するアルゴリズムの記述には問題がある場合が多く、しばしばこれが原因でシステムは重大な障害を起こす。これは例えば、「4で割り切れる年」としかしていなかったり、year == 2000 || year == 2004のようにある程度先の閏年しかコードしていないなどが挙げられる。
この他、年数処理のバグにより、年自体を誤って判断することで閏年関係のシステムに重大な障害が発生したケースもある。2010年には二進化十進表現の問題から、2016年と認識されて「閏年である」と誤認したバグが多くみられた。→2010年問題#年数処理のバグ
グレゴリオ暦の閏年は次のようにすると正しく判定できる。

まずプログラムで処理しやすくするために閏年の規則を読み替えてみる。

条件1.　400で割り切れる場合は閏年
条件2.　400で割り切れない場合、100で割り切れる場合は平年
条件3.　条件1.2.を両方とも満たさない(400で割り切れず、かつ100でも割り切れない場合),4で割り切れれば閏年、そうでない場合は平年
ExcelではIFS関数を使用し以下のように記述できる。
=IFS(MOD(A1,400)=0,"閏年",MOD(A1,100)=0,"平年",MOD(A1,4)=0,"閏年",1,"平年")（Excelなど）

誕生日

グレゴリオ暦の場合、2月29日生まれの者の誕生日は閏年に限り到来し、平年に誕生日は存在しない。このため、誕生日を基準に何かを行う場合は、平年ではその前後の日（2月28日か3月1日）を誕生日とみなす必要がある。
日本の法律では、誕生日を基準とした行政手続に限り「みなし誕生日」を2月28日としている。また、年齢計算については、もともと期間の満了は起算日応当日の前日であるところ、起算日を例外的に1日早く初日（出生日）とする関係で、1年間の満了（加齢）も1日早く誕生日の前日となる。このため、2月29日生まれの者は、平閏を問わず、毎年2月28日24時に加齢される（→満年齢、年齢計算ニ関スル法律）。