Java の LocalDate の toEpochDay メソッド

JavaBeginner
オンラインで実践に進む

はじめに

Java のLocalDateクラスには、日付をエポック日に変換するために使用できるtoEpochDay()メソッドがあります。エポック日数は、1970 年 1 月 1 日以降に経過した日数です。この実験では、toEpochDay()メソッドとその構文の使い方を学びます。

プロジェクトをセットアップする

toEpochDay()メソッドを使用するには、まず Java プロジェクトを作成する必要があります。ターミナルを開き、以下のコマンドを実行して「myProject」という名前のディレクトリを作成します。

mkdir myProject

次に、cdコマンドを使用してプロジェクトディレクトリに移動します。

cd myProject/

Java クラスを作成する

このステップでは、DateDemo.javaという名前の Java ファイルを作成します。ターミナルで以下のコマンドを実行してファイルを作成します。

touch DateDemo.java

以下のコマンドを使用して、テキストエディタでファイルを開きます。

touch DateDemo.java

(注:元の英文で 2 回同じコマンドが記載されていますが、翻訳文ではそのままにしています。)

LocalDate の toEpochDay() を実装する

このステップでは、LocalDateをエポック日に変換するためにtoEpochDay()メソッドを実装します。

DateDemo.javaファイルに以下のコードを追加します。

import java.time.LocalDate;

public class DateDemo {
    public static void main(String[] args) {
        // 1970 年 1 月 10 日の LocalDate オブジェクトを作成する
        LocalDate localDate = LocalDate.of(1970, 1, 10);

        // localDate オブジェクトのエポック日数を取得する
        long epochDay = localDate.toEpochDay();

        // エポック日数を表示する
        System.out.println("Epoch Day Count: " + epochDay);
    }
}

Ctrl+XYEnterを使用してファイルを保存して終了します。

Java ファイルをコンパイルする

このステップでは、javacコマンドを使用してDateDemo.javaファイルをコンパイルします。ターミナルで以下のコマンドを実行します。

javac DateDemo.java

これにより、同じディレクトリにDateDemo.classファイルが生成されます。

Java プログラムを実行する

このステップでは、DateDemoプログラムを実行します。ターミナルで以下のコマンドを実行します。

java DateDemo

これにより、プログラムが実行され、1970 年 1 月 10 日のエポック日数が出力されます。

異なる日付で LocalDate の toEpochDay() をテストする

このステップでは、異なる日付でtoEpochDay()メソッドをテストします。LocalDateオブジェクトを 2021 年 1 月 15 日を表すように変更します。

LocalDate localDate = LocalDate.of(2021, 1, 15);

javacコマンドを使用してプログラムを再コンパイルします。

javac DateDemo.java

javaコマンドを使用して再度プログラムを実行します。

java DateDemo

これにより、2021 年 1 月 15 日のエポック日数が出力されるはずです。

toEpochDay() メソッドを使って 2 つの日付の差分を計算する

このステップでは、toEpochDay()メソッドを使って 2 つの日付の差を日数で計算します。

mainメソッドに以下のコードを追加します。

// 2 つの LocalDate オブジェクトを作成する
LocalDate date1 = LocalDate.of(2010, 5, 10);
LocalDate date2 = LocalDate.of(2020, 3, 15);

// 2 つの日付の差を日数で計算する
long diffInDays = date2.toEpochDay() - date1.toEpochDay();

// 日数の差を表示する
System.out.println("Difference in days: " + diffInDays);

Ctrl+XYEnterを使ってファイルを保存して終了します。

javacコマンドを使ってプログラムを再コンパイルします。

javac DateDemo.java

javaコマンドを使って再度プログラムを実行します。

java DateDemo

これにより、2010 年 5 月 10 日と 2020 年 3 月 15 日の差が日数で出力されるはずです。

現在の日付で toEpochDay() メソッドを使用する

このステップでは、toEpochDay()メソッドを使用して現在の日付のエポック日数を取得します。

mainメソッドに以下のコードを追加します。

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

// 今日の日付のエポック日数を取得する
long todayEpochDay = today.toEpochDay();

// 今日の日付のエポック日数を表示する
System.out.println("Today's Epoch Day Count: " + todayEpochDay);

Ctrl+XYEnterを使ってファイルを保存して終了します。

javacコマンドを使ってプログラムを再コンパイルします。

javac DateDemo.java

javaコマンドを使って再度プログラムを実行します。

java DateDemo

これにより、今日の日付のエポック日数が出力されるはずです。

うるう年の日付で toEpochDay() メソッドを使用する

このステップでは、うるう年に該当する日付でtoEpochDay()メソッドを使用します。

mainメソッドに以下のコードを追加します。

// 2020 年 2 月 29 日の LocalDate オブジェクトを作成する
LocalDate leapDate = LocalDate.of(2020, 2, 29);

// 2020 年 2 月 29 日のエポック日数を取得する
long leapEpochDay = leapDate.toEpochDay();

// 2020 年 2 月 29 日のエポック日数を表示する
System.out.println("Leap Day Epoch Day Count: " + leapEpochDay);

Ctrl+XYEnterを使ってファイルを保存して終了します。

javacコマンドを使ってプログラムを再コンパイルします。

javac DateDemo.java

javaコマンドを使って再度プログラムを実行します。

java DateDemo

これにより、2020 年 2 月 29 日のエポック日数が出力されるはずです。

プロジェクトをクリーンアップする

このステップでは、DateDemo.javaDateDemo.class ファイルを削除することでプロジェクトをクリーンアップします。

端末で次のコマンドを実行して DateDemo.java ファイルを削除します。

rm DateDemo.java

端末で次のコマンドを実行して DateDemo.class ファイルを削除します。

rm DateDemo.class

まとめ

この実験では、toEpochDay() メソッドを使って LocalDate をエポック日に変換する方法を学びました。また、toEpochDay() メソッドを使って 2 つの日付の差を計算する方法と、現在の日付のエポック日数を取得する方法も学びました。最後に、うるう年に該当する日付で toEpochDay() メソッドを使う方法を学びました。