Java | 1 日 60 分 × 7 日アプリ学習:Java基礎・オブジェクト指向 年齢計算編

Web APP Java
スポンサーリンク
スポンサーリンク

1日目のゴールと全体像

年齢計算アプリの1日目は 「LocalDate を使って“生年月日から年齢を計算する”最小アプリを作ること」 がテーマです。

ここで扱う内容は、Javaの実務でも頻繁に使われる重要スキルです。

  • LocalDate(Javaの日付クラス)
  • Period(年齢計算に使う差分クラス)
  • メソッド化(計算ロジックの分離)
  • クラスの基本構造
  • コレクションやファイル操作につながる設計の準備

初心者でも理解できるように、 「なぜそうするのか」を丁寧に説明しながら進めます。

LocalDate を使う理由

LocalDate は「日付を安全に扱うためのクラス」

Java 8 以降では、日付を扱うときに LocalDate を使うのが標準です。

LocalDate birthday = LocalDate.of(1990, 4, 10);
LocalDate today = LocalDate.now();
Java

深掘りポイント

  • LocalDate は「日付だけ」を扱う
  • DateCalendar より圧倒的に使いやすい
  • 年齢計算は Period と組み合わせると簡単

Javaの実務では、 LocalDate / LocalDateTime / Period / Duration が必須スキルです。

年齢計算の仕組みを理解する

年齢は「生年月日と今日の日付の差」で求める

Javaでは、次のように計算します。

Period age = Period.between(birthday, today);
int years = age.getYears();
Java

深掘りポイント

  • Period は「年・月・日」の差を表す
  • getYears() で年齢だけ取り出せる
  • 自分で計算式を書く必要がない(便利!)

年齢計算メソッドを作る

設計

  • メソッド名:calculateAge
  • 引数:LocalDate birthday
  • 戻り値:int(年齢)

コード(丁寧なコメント付き)

import java.time.LocalDate;
import java.time.Period;

public class AgeCalculator {

    // 年齢を計算するメソッド
    public static int calculateAge(LocalDate birthday) {

        // 今日の日付を取得
        LocalDate today = LocalDate.now();

        // 生年月日から今日までの差を計算
        Period period = Period.between(birthday, today);

        // 年齢(年数)だけ取り出す
        return period.getYears();
    }
}
Java

深掘りポイント

  • LocalDate.now() は「今日」
  • Period.between() が年齢計算の中心
  • メソッド化することで main がスッキリする

main メソッドで使ってみる

import java.time.LocalDate;

public class AgeApp {

    public static void main(String[] args) {

        // 生年月日を指定(例:1990年4月10日)
        LocalDate birthday = LocalDate.of(1990, 4, 10);

        // 年齢計算メソッドを呼び出す
        int age = AgeCalculator.calculateAge(birthday);

        // 結果表示
        System.out.println("生年月日: " + birthday);
        System.out.println("年齢: " + age + "歳");
    }
}
Java

LocalDate の便利な使い方(初心者向け)

文字列から日付を作る

LocalDate birthday = LocalDate.parse("1990-04-10");
Java

今日の日付

LocalDate today = LocalDate.now();
Java

年・月・日を個別に取り出す

int year = birthday.getYear();
int month = birthday.getMonthValue();
int day = birthday.getDayOfMonth();
Java

深掘りポイント

LocalDate は「日付を安全に扱うための道具」です。 自分で計算式を書く必要がないため、 バグが減り、コードが読みやすくなる という大きなメリットがあります。

1日目の完成コード(年齢計算アプリ)

import java.time.LocalDate;
import java.time.Period;

public class AgeCalculator {

    public static int calculateAge(LocalDate birthday) {
        LocalDate today = LocalDate.now();
        Period period = Period.between(birthday, today);
        return period.getYears();
    }

    public static void main(String[] args) {

        LocalDate birthday = LocalDate.of(1990, 4, 10);

        int age = calculateAge(birthday);

        System.out.println("=== 年齢計算結果 ===");
        System.out.println("生年月日: " + birthday);
        System.out.println("年齢: " + age + "歳");
    }
}
Java

1日目で本当に掴んでほしいこと

LocalDate は日付の標準ツール

日付計算は LocalDate / Period を使うのが正解です。

メソッドは「処理の部品」

計算ロジックをメソッドに分けることで、 コードが読みやすく・再利用しやすくなります。

クラスは「役割を分ける箱」

AgeCalculator と AgeApp のように 役割ごとにクラスを分けると、アプリが整理されます。

次のステップ

2日目では、 ユーザー入力(Scanner)で生年月日を受け取り、年齢を計算するアプリ へ進みます。

さらに、

  • 複数人の年齢を List で管理
  • CSVファイルから読み込み
  • 計算結果を保存

といった実用的なアプリへ成長していきます。

タイトルとURLをコピーしました