年齢計算機

生年月日から、満年齢を年・月・日単位で正確に計算します。

使い方

生年月日と「基準日」(既定では今日)を選ぶと、人が話すときと同じ「○年○か月○日」の形式で年齢を表示します。さらに、生まれてからの総日数・総週数、次の誕生日までの日数も表示します。ビザ申請、退職計画、年齢に応じた節目の確認、あるいは雑学的な興味にも便利です。月をまたぐ計算は会話と同じ感覚で行われ、今年の誕生日がまだなら「去年と同じ年齢」のままです。

計算式

年 = 基準日.年 − 生年月日.年 月 = 基準日.月 − 生年月日.月 日 = 基準日.日 − 生年月日.日 日 < 0 の場合:月 -= 1、日 += 前月の日数 月 < 0 の場合:年 -= 1、月 += 12

総日数は2つの時刻のミリ秒差を 86,400,000 ms/日 で割って算出します。途中で日数が早まらないよう、round() ではなく floor() を使用しています。うるう年や夏時間の切り替えはJavaScriptのDate演算が処理します。誕生日の生時刻より1秒でも前に基準時刻があれば、まだ前年齢のままになります。

計算例

  • 生年月日 1990年1月15日。基準日 2024年4月28日。
  • 年 = 2024 − 1990 = 34。月 = 4 − 1 = 3。日 = 28 − 15 = 13。繰り下げ不要。
  • 結果:34年3か月13日。生まれてからの総日数 ≈ 12,521日。次の誕生日まで ≈ 262日。

よくある質問

2月29日生まれの場合、年齢はどう扱われますか?

うるう年でない年では、JavaScriptのDateは「2月29日」を「3月1日」として解釈するため、うるう年生まれの人は技術的には毎年誕生日を迎えます。本ツールもこの挙動に従い、非うるう年の3月1日を基準日にすると誕生日は経過済みと扱われます。多くの法制度も同じ慣習ですが、台湾など一部では非うるう年の誕生日を2月28日として扱う例もあります。

年・月・日の内訳と総日数が一致しないのはなぜですか?

月によって日数が異なるためです。「34年3か月13日」はカレンダー的な表現、「12,521日」は素直な日数カウント。同じ経過時間を別の形で表しているだけです。年 × 365.25 + 月 × 30.44 で近似はできますが、ぴったりは一致しません。

タイムゾーンは考慮されますか?

本ツールはブラウザのローカルタイムゾーンを使って両方の日付を扱います。日付入力は日単位なので、タイムゾーンの影響はほぼ無視できます。ただし、現在使っているタイムゾーンとは異なる地域で深夜直前に生まれた場合、結果が1日ずれる可能性があります。法的な厳密な年齢が必要な場合は、出生時の現地時間を確認して手動で調整してください。

なぜ「生年月日は基準日以前である必要があります」と表示されるのですか?

年齢はマイナスになれないためです(自分より年上にはなれません)。「将来のある日に何歳になっているか」を知りたい場合は、上に生年月日、下にその未来の日付を入れてください。計算式は同じで、その時点での年齢が表示されます。