読み込み中...

Javaで簡単年齢計算!たったの6ステップでマスター

年齢計算のJavaプログラムを書いたイラスト Java
この記事は約26分で読めます。

【サイト内のコードはご自由に個人利用・商用利用いただけます】

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

本記事のサンプルコードを活用して機能追加、目的を達成できるように作ってありますので、是非ご活用ください。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を満たす現役のプログラマチームによって監修されています。

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

プログラミングの世界は広大で多岐にわたる知識が求められます。

しかし、その第一歩として、シンプルな年齢計算プログラムの作成をマスターすることで、Java言語の基本的な側面を理解することができます。

このガイドでは、Java言語を利用して年齢を計算する基本的な方法を徹底的に解説いたします。

年齢計算は日常生活の多くの側面で利用されます。

たとえば、Webサイトでユーザーの年齢を確認したり、年齢に適した商品やサービスを提供したりします。

Javaはこのようなアプリケーションを作成するための強力なツールとなります。

さらに、Javaは多くの企業やオーガニゼーションで幅広く利用されているため、Javaでのプログラム作成スキルは非常に価値があります。

●年齢計算の基本知識

年齢計算は一見シンプルに見えますが、いくつかの重要な点を理解しておくことが非常に重要です。

基本的には、現在の日付と誕生日の日付を比較し、その差を年単位で計算します。

しかし、月や日にちの差も考慮する必要があります。

Javaでは、このような計算を行うためのいくつかの方法がありますが、基本的なアプローチとしては、CalendarクラスやLocalDateクラスを利用する方法があります。

○Javaとは

Javaは、1990年代初頭にサンマイクロシステムズによって開発されたプログラミング言語です。

その特徴としては、オブジェクト指向プログラミングが容易に行える点や、プラットフォームに依存しないことが挙げられます。

また、豊富なライブラリと共に、強力なコミュニティのサポートも受けられるので、多くの開発者が好んで使用します。

特に、Webアプリケーションやエンタープライズアプリケーションの開発によく利用されます。

○年齢計算の重要性

年齢計算は、さまざまなシステムやアプリケーションで必要とされる機能です。

例えば、年齢制限があるコンテンツへのアクセス制限を設ける場合や、ユーザーの年齢層を分析してマーケティング戦略を立てる際に使用されます。

また、年齢計算は健康診断や保険の見積もりなど、さまざまなビジネス領域でも活用されます。

このように、年齢計算は多岐にわたる分野でその重要性を発揮します、そしてJava言語を使って簡単に実装することが可能です。

●Javaで年齢計算の作り方

Javaで年齢計算をする方法は多くのアプリケーションやシステムで用いられる基本的な技術です。

例えば、人事管理システムやヘルスケアアプリ、さらにはオンラインショッピングサイトで顧客の年齢に基づく商品の推奨など、さまざまな場面で活用されています。

ここでは、Javaを使用して簡単に年齢を計算する方法を詳しく解説していきます。

○詳細な使い方

年齢計算を行う際、基本的な考え方は現在の年から生まれた年を引くことで得られますが、誕生日がまだ来ていない場合は1を引く必要があります。

Javaでこのロジックを実装するには、次のステップが必要となります。

□変数の設定

まずは、計算に必要な変数を設定することから始めます。

下記のコードでは、現在の年と誕生年を格納する変数を設定しています。

int currentYear = 2023; // 例として2023年としていますが、実際にはシステム日付から取得することが多いです。
int birthYear = 1995;

この変数を使用して、年齢の基本計算を行うことができます。

しかし、まだ誕生日が来ていない場合の考慮が必要ですので、次のステップで詳しく説明します。

□計算方法

年齢の基本計算は、上述したように現在の年から誕生年を引くことで求められます。

しかし、誕生日が来ていない場合の考慮を入れることでより正確な年齢を計算することができます。

int age = currentYear - birthYear;

// 誕生日が来ていない場合は、1を引く
if (/* 誕生日が来ていない条件 */) {
    age = age - 1;
}

このように、誕生日が来ていないかどうかの条件を設定することで、正確な年齢を計算することができます。

●詳細なサンプルコード

Javaプログラミングにおける年齢計算の取り組みは、初心者でもわかりやすい方法で実行できます。

ここでは基本的な年齢計算の方法をサンプルコードとともに紹介します。

サンプルコードには詳細な説明が含まれ、日本語のコメントも併せて記載されます。

それでは、さっそく見ていきましょう。

○サンプルコード1:基本的な年齢計算

まず最初に、Javaで基本的な年齢計算を行う方法を見ていきましょう。

下記のコードは現在の年から生年を引くことで、年齢を計算します。

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

public class AgeCalculator {
    public static void main(String[] args) {
        LocalDate birthDate = LocalDate.of(1990, 1, 1);  // 生年月日を設定します
        LocalDate currentDate = LocalDate.now();  // 現在の日付を取得します

        Period period = Period.between(birthDate, currentDate);  // 生年月日と現在の日付の差を計算します
        int age = period.getYears();  // 年齢を計算します

        System.out.println("年齢は " + age + " 歳です。");  // 年齢を出力します
    }
}

このコードについて詳しく説明いたします。

まず最初にLocalDateクラスをインポートします。これは日付を表現するクラスです。

次に、AgeCalculatorというクラスを作成し、その中にmainメソッドを定義します。

mainメソッドの中では、まずLocalDate.ofメソッドを使用して生年月日を設定します。

ここでは1990年1月1日と設定しています。次に、LocalDate.nowメソッドを使用して現在の日付を取得します。

その後、Period.betweenメソッドを使用して生年月日と現在の日付の差を計算します。

これによりPeriodオブジェクトが得られ、getYearsメソッドを使用して年齢を計算します。

最後に、System.out.printlnメソッドを使用して年齢を出力します。

この場合、出力結果は「年齢は 33 歳です。」となります(実行時の年により異なります)。

○サンプルコード2:閏年を考慮した計算

Java言語を使用して閏年を考慮した年齢計算を行うプログラムを作成するには、いくつかのステップを踏む必要があります。

まず、ユーザーから入力された誕生日と現在の日付を取得することから始めます。

次に、これらの日付データを利用して年齢を計算します。

閏年を考慮することで、正確な年齢計算が可能となります。

Javaで閏年を考慮した年齢を計算するプログラムのサンプルコードを紹介します。

このプログラムでは、LocalDateクラスを用いて現在の日付を取得し、ChronoUnitクラスのbetweenメソッドを使って年数を計算します。

さらに、閏年を考慮して日数の計算も行います。

import java.time.LocalDate;
import java.time.temporal.ChronoUnit;

public class AgeCalculator {
    public static void main(String[] args) {
        // 誕生日をyyyy-mm-ddの形式で入力
        LocalDate birthDate = LocalDate.of(2000, 2, 29);

        // 現在の日付を取得
        LocalDate currentDate = LocalDate.now();

        // 年数を計算
        long years = ChronoUnit.YEARS.between(birthDate, currentDate);

        // 月日を考慮した年齢計算
        if (birthDate.plusYears(years).isAfter(currentDate)) {
            years = years - 1;
        }

        // 結果を表示
        System.out.println("あなたの年齢は " + years + " 歳です");
    }
}

このコードの実行結果を解説いたします。

上記のコードでは、誕生日として2000年2月29日(閏年の日付)を指定しています。

その後、現在の日付を取得し、ChronoUnitクラスのbetweenメソッドを用いて年数を計算しています。

ただし、月日を考慮して正確な年齢を計算するための条件分岐も行っています。

これにより、正確な年齢が計算され、”あなたの年齢は XX 歳です”という形で結果が表示されます。

○サンプルコード3:誕生日までの日数を計算

Javaを使って誕生日までの日数を計算するプログラムを作成します。

まずは、必要なライブラリをインポートしましょう。

次に、メインクラスとメインメソッドを設定します。誕生日をLocalDateオブジェクトとして設定し、今日の日付を取得します。

その後、Periodクラスを使用して誕生日までの期間を計算します。

今回は、そのプロセスを詳しく説明し、実行後の結果も見ていきます。

まず初めに、次のコードをご覧ください。

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

public class BirthdayCountdown {
    public static void main(String[] args) {
        LocalDate today = LocalDate.now();
        LocalDate birthday = LocalDate.of(2024, 1, 1);

        Period period = Period.between(today, birthday);
        System.out.println("誕生日までの日数は " + period.getDays() + " 日です。");
    }
}

このコードの解説を行います。

まず、java.timeパッケージからLocalDateとPeriodクラスをインポートしています。

次に、BirthdayCountdownという名前のクラスを作成し、その中にmainメソッドを定義しています。

メインメソッド内で、todayという変数に今日の日付を取得し、birthdayという変数に誕生日の日付を設定しています。

その後、Periodクラスのbetweenメソッドを利用して今日と誕生日との間の期間を計算し、periodという変数に格納しています。

最後に、System.out.printlnを使って、計算した期間の日数部分を取得し、それをコンソールに出力しています。

このコードを実行すると、コンソールに「誕生日までの日数は XX 日です。」と表示されます。XXの部分は実際の日数に置き換えられます。

こちらのコードは非常に簡単なものであり、今日の日付と誕生日の日付を比較して、その間の日数を取得することができます。

しかし、このコードでは年間の日数計算に関する処理は行っていません。

また、月間の日数計算も行っていませんので、月と年に関する差も考慮する必要があります。

これらの拡張を行うことで、更に高機能な誕生日カウントダウンプログラムを作成することが可能です。

○サンプルコード4:使用者の年齢を計算

Java言語を利用して、使用者の年齢を計算するプログラムの作成に挑戦してみましょう。

今回のサンプルコードは使用者が入力した誕生日から現在の年齢を計算するというものです。

サンプルコードの作成過程を丁寧に説明しますので、初心者の方でも安心して学べます。

では、早速サンプルコードとその説明に入っていきましょう。

まず最初に、Java言語でのプログラム作成に欠かせないjava.timeパッケージをインポートします。

次に、主要なクラスとして「CalculateAge」というクラスを作成します。

このクラス内にメインメソッドを作成し、そこから年齢計算のプロセスを開始します。

import java.time.LocalDate;
import java.time.Period;
import java.util.Scanner;

public class CalculateAge {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.print("誕生日をYYYY-MM-DDの形式で入力してください: ");
        String input = scanner.nextLine();

        LocalDate birthDate = LocalDate.parse(input);
        LocalDate currentDate = LocalDate.now();

        Period period = Period.between(birthDate, currentDate);

        System.out.println("あなたの年齢は " + period.getYears() + " 歳です。");
    }
}

次にこのコードの詳しい説明をします。

まずはじめにjava.timeパッケージからLocalDateとPeriodクラスをインポートしています。

そしてjava.utilパッケージからScannerクラスもインポートしております。

これらのクラスは日付を扱うのに必要なクラスと、ユーザーからの入力を受け取るのに必要なクラスです。

次に「CalculateAge」というクラスを作成しました。

このクラスの中にmainメソッドを作成しております。mainメソッドの中で、まずScannerオブジェクトを作成し、ユーザーからの入力を受け取れるようにしています。

次に、ユーザーに誕生日をYYYY-MM-DDの形式で入力してもらう指示を出します。

入力されたデータはString型の変数inputに格納されます。

その後、input変数に格納された文字列をLocalDate.parseメソッドを利用して、LocalDate型のオブジェクトbirthDateに変換します。

また、現在の日付を取得するためにLocalDate.nowメソッドを利用し、それをcurrentDateというオブジェクトに格納します。

そして、Period.betweenメソッドを利用して、birthDateオブジェクトとcurrentDateオブジェクトの間の期間を計算します。

この期間をperiodというオブジェクトに格納します。

最後に、periodオブジェクトのgetYearsメソッドを利用して計算された年齢を取得し、それを表示します。

このコードを実行すると、ユーザーが入力した誕生日から計算して現在の年齢が表示される結果となります。

○サンプルコード5:GUIを用いた年齢計算アプリケーション

GUIを用いた年齢計算アプリケーションを作成するプロセスは極めて興味深く、かつ有用なテーマと言えます。

ここではJavaを使用して、ユーザーが自身の誕生日を入力し、その結果として現在の年齢が計算され表示されるアプリケーションを作成する手順をご紹介します。

また、このプロセスを通じて、Javaの基本的なプログラミング技術とGUIの作成方法を学ぶことができます。

まず、必要なライブラリをインポートします。

ここではSwingライブラリを用いてGUIを作成します。次に、メインクラスとして公開クラスを作成します。

その中で、主なフレームの設定と各種コンポーネント(ラベル、テキストフィールド、ボタン等)の配置を行います。

下記のサンプルコードは、基本的なフレームワークを設定し、誕生日を入力するテキストフィールドと「計算」ボタンを配置し、ボタンが押された際に年齢を計算し表示する機能を有するJavaアプリケーションを表しています。

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class AgeCalculatorApp {
    public static void main(String[] args) {
        JFrame frame = new JFrame("年齢計算アプリケーション");
        frame.setSize(400, 200);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        JPanel panel = new JPanel();
        frame.add(panel);
        placeComponents(panel);

        frame.setVisible(true);
    }

    private static void placeComponents(JPanel panel) {

        panel.setLayout(null);

        JLabel userLabel = new JLabel("誕生日:");
        userLabel.setBounds(10, 20, 80, 25);
        panel.add(userLabel);

        JTextField userText = new JTextField(20);
        userText.setBounds(100, 20, 165, 25);
        panel.add(userText);

        JButton calculateButton = new JButton("計算");
        calculateButton.setBounds(10, 80, 80, 25);
        panel.add(calculateButton);

        JLabel resultLabel = new JLabel("あなたの年齢:");
        resultLabel.setBounds(10, 110, 200, 25);
        panel.add(resultLabel);

        calculateButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                String birthDateString = userText.getText();
                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
                try {
                    Date birthDate = sdf.parse(birthDateString);
                    Date currentDate = new Date();
                    long age = (currentDate.getTime() - birthDate.getTime()) / (365 * 24 * 60 * 60 * 1000L);
                    resultLabel.setText("あなたの年齢: " + age + "歳");
                } catch (ParseException parseException) {
                    resultLabel.setText("日付の形式が正しくありません");
                }
            }
        });
    }
}

このコードでは、Swingライブラリを用いてGUIフレームを作成し、誕生日を入力するテキストフィールドと「計算」ボタンを設置しています。

そして、「計算」ボタンが押されると、誕生日のテキストフィールドから入力されたデータを取得し、現在の日付と比較して年齢を計算する動作を行います。

そして、計算された年齢をラベルに表示します。

また、日付の形式が正しくない場合には、エラーメッセージを表示します。

このコードを実行すると、GUIアプリケーションが起動し、ユーザーは自身の誕生日を「yyyy-MM-dd」の形式で入力します。

そして、「計算」ボタンをクリックすると、現在の日付と比較して年齢が計算され、その年齢がラベルに表示されます。

●Javaでの年齢計算の応用例とサンプルコード

Javaの年齢計算機能は、企業の人事管理システムやヘルスケアアプリの開発など、さまざまな応用例が存在します。

ここでは、その一部を紹介し、具体的なサンプルコードを交えながら解説いたします。

まずは、企業の人事管理システムにおける応用例1を考えてみましょう。

○応用例1:企業の人事管理システム

企業の人事管理システムでは、従業員の年齢を計算することで、年金計算や退職金の算定、健康診断のスケジュール作成などに利用されます。

従業員の生年月日から現在の年齢を計算する簡易なサンプルコードを紹介します。

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

public class AgeCalculation {
    public static void main(String[] args) {
        LocalDate birthDate = LocalDate.of(1980, 6, 15);
        LocalDate currentDate = LocalDate.now();

        Period period = Period.between(birthDate, currentDate);
        int age = period.getYears();

        System.out.println("従業員の年齢は: " + age + "歳です");
    }
}

このサンプルコードでは、java.time.LocalDatejava.time.Periodクラスを使用して年齢を計算します。

まず、従業員の生年月日をLocalDate.ofメソッドを使って指定し、その後LocalDate.nowメソッドを使用して現在の日付を取得します。

次に、Period.betweenメソッドを使用して生年月日と現在の日付の間の期間を計算し、その結果から年齢を取得します。

最後に、得られた年齢をコンソールに出力します。

次にヘルスケアアプリケーションの応用例2について見ていきましょう。

○応用例2:ヘルスケアアプリ

ヘルスケアアプリケーションでは、利用者の年齢に基づいて適切な健康アドバイスや運動プログラムを提供することができます。

下記のサンプルコードは、利用者が入力した生年月日から年齢を計算し、それに基づいてアドバイスを出力する簡易的なプログラムです。

import java.time.LocalDate;
import java.time.Period;
import java.util.Scanner;

public class HealthCareApp {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.println("生年月日をYYYY-MM-DDの形式で入力してください: ");
        String input = scanner.nextLine();

        LocalDate birthDate = LocalDate.parse(input);
        LocalDate currentDate = LocalDate.now();

        Period period = Period.between(birthDate, currentDate);
        int age = period.getYears();

        if (age < 20) {
            System.out.println("年齢は" + age + "歳です。定期的な運動を心掛けましょう。");
        } else if (age < 40) {
            System.out.println("年齢は" + age + "歳です。バランスの良い食事を心掛け、定期的な健康診断を受けましょう。");
        } else {
            System.out.println("年齢は" + age + "歳です。健康管理をしっかりと行いましょう。");
        }

        scanner.close();
    }
}

このプログラムでは、利用者が生年月日を入力すると、そのデータを基に年齢を計算し、それに応じた健康アドバイスを提供します。

このような機能は、ヘルスケアアプリケーションの開発において非常に有用です。

○サンプルコード6:年齢に応じた商品推奨システム

商品推奨システムは、特定の商品を顧客に推奨するためのプログラムで、顧客の年齢を基にした商品推奨は、ターゲットに合った商品を提案しやすくなるため、非常に効果的です。

Javaプログラミング言語を使って年齢に応じた商品推奨システムを作成する方法について、詳しく解説していきます。

まずは、基本的な年齢計算の方法から始めましょう。

下記のサンプルコードは、顧客の年齢を計算し、それに基づいて商品を推奨するシステムを表しています。

import java.time.LocalDate;
import java.time.Period;
import java.util.HashMap;
import java.util.Map;

public class ProductRecommendation {

    public static void main(String[] args) {
        HashMap<String, String> productRecommendations = new HashMap<>();
        productRecommendations.put("10-19", "青少年向けの漫画");
        productRecommendations.put("20-29", "最新の技術ガジェット");
        productRecommendations.put("30-39", "健康とウェルネスの商品");
        productRecommendations.put("40-49", "高級スキンケア製品");
        productRecommendations.put("50以上", "健康とウェルネスの商品");

        int birthYear = 1990;
        int birthMonth = 5;
        int birthDay = 20;

        LocalDate birthDate = LocalDate.of(birthYear, birthMonth, birthDay);
        LocalDate currentDate = LocalDate.now();

        int age = Period.between(birthDate, currentDate).getYears();

        String productRecommendation = getProductRecommendation(productRecommendations, age);
        System.out.println("推奨商品: " + productRecommendation);
    }

    public static String getProductRecommendation(HashMap<String, String> recommendations, int age) {
        if (age < 20) {
            return recommendations.get("10-19");
        } else if (age < 30) {
            return recommendations.get("20-29");
        } else if (age < 40) {
            return recommendations.get("30-39");
        } else if (age < 50) {
            return recommendations.get("40-49");
        } else {
            return recommendations.get("50以上");
        }
    }
}

こちらのコードは、まずハッシュマップを用いて各年齢層に適した商品をリストアップします。

次に、ユーザーの誕生年月日を設定し、現在の年齢を計算します。

そして、その年齢を基にして商品推奨システムが適した商品を推奨します。

このコードを実行すると、顧客の年齢に基づいて最適な商品を推奨してくれます。

例えば、このコードでは1990年5月20日生まれの顧客に対して、「健康とウェルネスの商品」を推奨します。

○サンプルコード7:年齢に応じた映画推薦システム

年齢に応じておすすめの映画を推薦するプログラムをJavaで実装する方法を解説します。

まずは基本的な流れとして、ユーザーから年齢の入力を受け取り、その年齢に適した映画のリストを返すシステムを作ります。

映画のリストは年齢ごとにカテゴリ分けされ、適切な推薦ができるように配慮します。

まず最初に、Javaでのプログラムの基本的な構造を理解しましょう。

基本的なクラス構造とメインメソッドの作成から始めます。

下記のサンプルコードは、年齢を入力として受け取り、その年齢に適した映画のリストをコンソールに出力する簡単なプログラムです。

import java.util.Scanner;

public class MovieRecommendation {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.print("年齢を入力してください: ");
        int age = scanner.nextInt();

        recommendMovies(age);
    }

    public static void recommendMovies(int age) {
        if(age < 13) {
            System.out.println("おすすめの映画: トイ・ストーリー, くまのプーさん");
        } else if(age >= 13 && age < 18) {
            System.out.println("おすすめの映画: ハリー・ポッター, パーシー・ジャクソン");
        } else {
            System.out.println("おすすめの映画: インセプション, ショーシャンクの空に");
        }
    }
}

こちらのコードの説明をさせていただきます。

このコードは年齢に基づいて映画を推薦するシンプルなコマンドラインアプリケーションを表しています。

まずScannerクラスを用いて年齢の入力を受け取ります。

その後、recommendMoviesメソッドが呼ばれ、年齢に応じた映画の推薦がコンソールに出力されます。

実際にこのコードを実行してみると、ユーザーは年齢を入力すると、それに応じた映画の推薦が表示されます。

たとえば、年齢を12と入力すると、「おすすめの映画: トイ・ストーリー, くまのプーさん」と表示されます。

まとめ

今までJavaの基本知識から年齢計算の方法、注意点やカスタマイズ方法に至るまで幅広くご紹介してきました。

さらに、多くの実用的なサンプルコードを交えながら詳しく説明を行いました。

以上がJavaで年齢計算を行う際の基本的な知識と方法、さらに応用例までを網羅したガイドとなります。

この記事がJavaで年齢計算を行う際の参考となれば幸いです。

今後もプログラミングの学習を続け、さらなる高みを目指していきましょう。

最後までご覧いただき、誠にありがとうございました。