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は「日付だけ」を扱うDateやCalendarより圧倒的に使いやすい- 年齢計算は 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 + "歳");
}
}
JavaLocalDate の便利な使い方(初心者向け)
文字列から日付を作る
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 + "歳");
}
}
Java1日目で本当に掴んでほしいこと
LocalDate は日付の標準ツール
日付計算は LocalDate / Period を使うのが正解です。
メソッドは「処理の部品」
計算ロジックをメソッドに分けることで、 コードが読みやすく・再利用しやすくなります。
クラスは「役割を分ける箱」
AgeCalculator と AgeApp のように 役割ごとにクラスを分けると、アプリが整理されます。
次のステップ
2日目では、 ユーザー入力(Scanner)で生年月日を受け取り、年齢を計算するアプリ へ進みます。
さらに、
- 複数人の年齢を List で管理
- CSVファイルから読み込み
- 計算結果を保存
といった実用的なアプリへ成長していきます。


