Java8を使って2つの日付の期間を求める

Java 8: The Fundamentals (English Edition)』を読みながら気に入ったところを自分で動かしながら確認しているコードです。

Java8から新しく時間、日付に関するAPIが追加されました。
この導入のお陰で2つの日付から期間を求めるのが非常に簡単になりました。

package io.stream.datetime;

import java.time.Duration;
import java.time.LocalDateTime;
import java.time.Month;

public class DateTimeExample {

	public static void main(String[] args) {
		LocalDateTime dt = LocalDateTime.of(2018, Month.JANUARY,20,0,0);
		System.out.println("dt is "+ dt);
		
		LocalDateTime aTime = LocalDateTime.of(2018, Month.FEBRUARY,10,0,0);
		System.out.println("aTime is "+ aTime);
	
		long ns = Duration.between(dt, aTime).toDays();
		System.out.println("There are " + ns + " days between dt and aTime.");
	}

}

上のプログラムを実行した結果がこのように出力されます。

dt is 2018-01-20T00:00
aTime is 2018-02-10T00:00
There are 21 days between dt and aTime.

以前業務で期間を算出するコードを書いたときに非常に苦労したのですが、このように今は書く事ができるのですね。
Java8についてラムダ式に次いでこのTimeApiの導入が最高に素晴らしいと自分は思います。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です