はじめに
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+X、Y、Enterを使用してファイルを保存して終了します。
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+X、Y、Enterを使ってファイルを保存して終了します。
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+X、Y、Enterを使ってファイルを保存して終了します。
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+X、Y、Enterを使ってファイルを保存して終了します。
javacコマンドを使ってプログラムを再コンパイルします。
javac DateDemo.java
javaコマンドを使って再度プログラムを実行します。
java DateDemo
これにより、2020 年 2 月 29 日のエポック日数が出力されるはずです。
プロジェクトをクリーンアップする
このステップでは、DateDemo.java と DateDemo.class ファイルを削除することでプロジェクトをクリーンアップします。
端末で次のコマンドを実行して DateDemo.java ファイルを削除します。
rm DateDemo.java
端末で次のコマンドを実行して DateDemo.class ファイルを削除します。
rm DateDemo.class
まとめ
この実験では、toEpochDay() メソッドを使って LocalDate をエポック日に変換する方法を学びました。また、toEpochDay() メソッドを使って 2 つの日付の差を計算する方法と、現在の日付のエポック日数を取得する方法も学びました。最後に、うるう年に該当する日付で toEpochDay() メソッドを使う方法を学びました。



