月の日数計算ツールとは?
このツールは、どの年のどの月でも、その月が何日あるかを正確に教えてくれます。多くの月は日数が決まっていて、1月は必ず31日、4月は必ず30日です。しかし2月だけは、その年が閏年(うるう年)かどうかによって28日か29日に変わります。本ツールは、グレゴリオ暦の正しい閏年ルールを使って、その判定を瞬時に行います。
使い方
プルダウンから月を選び、年を入力して送信するだけです。結果には、その月の日数と、選んだ年が閏年かどうかが表示されます。試しに「2024年2月」と「2023年2月」を比べてみると、違いがよくわかります。
計算式の仕組み
各月の日数は、次のような一覧表(ルックアップテーブル)にあらかじめ格納されています:$$\text{days} = [31, 28+L, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]_{\,month-1}$$これを \(month - 1\) の位置で参照します。変動するのは2月だけで、その年が条件を満たす場合に閏日(\(L\))として +1 されます。閏年の条件は、年が4で割り切れることです。ただし、100で割り切れる「世紀年」は例外で、さらに400でも割り切れる必要があります。閏年の判定は次の式で行われます:$$L = (y \bmod 4 = 0) \land (y \bmod 100 \neq 0 \lor y \bmod 400 = 0)$$そのため2000年は閏年でしたが、1900年は閏年ではありませんでした。
計算例
2024年2月の場合:\(2024 \div 4 = 506\) で余りがなく、しかも世紀年ではないため閏年です(\(L = 1\))。表より $$28 + 1 = 29 \text{ 日}$$ となります。一方、2023年2月は \(L = 0\) なので28日です。
よくある質問
なぜ2月は年によって29日になるのですか? 太陽年は約365.24日のため、暦と地球の公転をずれないように保つには、およそ4年に一度、1日を追加する必要があるからです。
2100年は閏年ですか? いいえ。2100年は100で割り切れますが400では割り切れないため、2100年2月は28日になります。
必ず31日ある月はどれですか? 1月、3月、5月、7月、8月、10月、12月です。