日付操作

Java – 4桁の年から下2桁を取得する方法

Javaで4桁の年から下2桁を取得するには、文字列操作や数値演算を使用できます。

例えば、文字列操作ではStringsubstringメソッドを使い、year.substring(2)で下2桁を取得可能です。

また、数値演算では年を100で割った余りを求めることで、\(\text{year} \mod 100\)の結果として下2桁を得られます。

文字列操作を使った方法

Javaでは、文字列を操作することで4桁の年から下2桁を取得することができます。

以下にその方法を示します。

import java.util.Scanner;
public class App {
    public static void main(String[] args) {
        // ユーザーから4桁の年を入力してもらう
        Scanner scanner = new Scanner(System.in);
        System.out.print("4桁の年を入力してください: ");
        String yearInput = scanner.nextLine();
        
        // 文字列の最後の2文字を取得
        String lastTwoDigits = yearInput.substring(yearInput.length() - 2);
        
        // 結果を表示
        System.out.println("下2桁は: " + lastTwoDigits);
        
        // スキャナーを閉じる
        scanner.close();
    }
}
4桁の年を入力してください: 2023
下2桁は: 23

このコードでは、Scannerクラスを使用してユーザーから4桁の年を入力してもらい、substringメソッドを使って文字列の最後の2文字を取得しています。

substringメソッドは、指定したインデックスから文字列を切り出すことができるため、年の下2桁を簡単に取得できます。

数値演算を使った方法

数値演算を使用して4桁の年から下2桁を取得する方法もあります。

この方法では、年を整数として扱い、100で割った余りを求めることで下2桁を得ることができます。

以下にその実装例を示します。

import java.util.Scanner;
public class App {
    public static void main(String[] args) {
        // ユーザーから4桁の年を入力してもらう
        Scanner scanner = new Scanner(System.in);
        System.out.print("4桁の年を入力してください: ");
        int yearInput = scanner.nextInt();
        
        // 年を100で割った余りを計算
        int lastTwoDigits = yearInput % 100;
        
        // 結果を表示
        System.out.println("下2桁は: " + lastTwoDigits);
        
        // スキャナーを閉じる
        scanner.close();
    }
}
4桁の年を入力してください: 2023
下2桁は: 23

このコードでは、Scannerクラスを使用してユーザーから4桁の年を整数として入力してもらい、%演算子を使って100で割った余りを計算しています。

この方法により、年の下2桁を簡単に取得することができます。

フォーマッタを使った方法

JavaのString.formatメソッドを使用して、4桁の年から下2桁を取得する方法もあります。

この方法では、年を整数として扱い、フォーマッタを使って下2桁を取り出します。

以下にその実装例を示します。

import java.util.Scanner;
public class App {
    public static void main(String[] args) {
        // ユーザーから4桁の年を入力してもらう
        Scanner scanner = new Scanner(System.in);
        System.out.print("4桁の年を入力してください: ");
        int yearInput = scanner.nextInt();
        
        // フォーマッタを使って下2桁を取得
        String lastTwoDigits = String.format("%02d", yearInput % 100);
        
        // 結果を表示
        System.out.println("下2桁は: " + lastTwoDigits);
        
        // スキャナーを閉じる
        scanner.close();
    }
}
4桁の年を入力してください: 2023
下2桁は: 23

このコードでは、Scannerクラスを使用してユーザーから4桁の年を整数として入力してもらい、String.formatメソッドを使って下2桁をフォーマットしています。

%02dは、整数を2桁で表示し、必要に応じて先頭にゼロを追加するフォーマット指定子です。

この方法により、下2桁を常に2桁の形式で取得することができます。

よくあるエラーとその対処法

Javaで4桁の年から下2桁を取得する際に発生する可能性のあるエラーとその対処法を以下に示します。

エラー内容原因対処法
InputMismatchExceptionユーザーが整数以外の値を入力した場合入力値を検証し、整数以外の場合は再入力を促す
StringIndexOutOfBoundsException文字列の長さが4桁未満の場合入力値の長さを確認し、4桁でない場合はエラーメッセージを表示する
NumberFormatException文字列を整数に変換できない場合入力値を検証し、数値以外の場合はエラーメッセージを表示する
IllegalArgumentException年が4桁の範囲外(例: 999年や10000年)入力値を検証し、適切な範囲内でない場合はエラーメッセージを表示する

エラーの詳細と対処法

InputMismatchException

  • 原因: ユーザーが整数以外の値(例: 文字列や小数)を入力した場合に発生します。
  • 対処法: try-catchブロックを使用して、例外をキャッチし、再入力を促すメッセージを表示します。

StringIndexOutOfBoundsException

  • 原因: 文字列の長さが4桁未満の場合、substringメソッドを使用すると発生します。
  • 対処法: 入力値の長さを確認し、4桁でない場合はエラーメッセージを表示します。

NumberFormatException

  • 原因: 文字列を整数に変換しようとした際に、数値以外の文字が含まれている場合に発生します。
  • 対処法: 入力値を検証し、数値以外の場合はエラーメッセージを表示します。

IllegalArgumentException

  • 原因: 年が4桁の範囲外(例: 999年や10000年)である場合に発生します。
  • 対処法: 入力値を検証し、適切な範囲内でない場合はエラーメッセージを表示します。

これらのエラーを事前に考慮し、適切なエラーハンドリングを行うことで、プログラムの安定性を向上させることができます。

まとめ

この記事では、Javaを使用して4桁の年から下2桁を取得する方法について、文字列操作、数値演算、フォーマッタを使った3つのアプローチを紹介しました。

これらの方法を理解することで、年の下2桁を効率的に取得する手段を身につけることができ、プログラムの柔軟性が向上します。

ぜひ、実際にコードを試してみて、さまざまな入力に対してどのように動作するかを確認してみてください。

関連記事

Back to top button