ホームページ >Java >&#&チュートリアル >Java は 2 つの日付の間の日数を効率的に計算するにはどうすればよいでしょうか?

Java は 2 つの日付の間の日数を効率的に計算するにはどうすればよいでしょうか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-13 08:17:10441ブラウズ

How Can Java Efficiently Calculate the Number of Days Between Two Dates?

Java を使用した 2 つの日付間の日数の計算

2 つの日付の差を求めることは、一般的なプログラミング タスクです。 Java には、うるう年やサマータイムの処理など、このプロセスを簡略化するためのクラスとメソッドがいくつか用意されています。

Java 8 Time API を使用した日数の計算

Java 8 では、新しい Java が導入されました。 time パッケージは、日付と時刻を操作するための、より現代的で使いやすい API を提供します。 Java 8 を使用して日付の間の日数を計算するには、次の手順に従います。

  1. DateTimeFormatter.ofPattern("dd MM yyyy") を使用して各日付文字列を解析します。
  2. 2 つの間の期間を計算します。 Duration.between().
  3. を使用して期間を日数に変換します。期間.toDays().

例:

DateTimeFormatter dtf = DateTimeFormatter.ofPattern("dd MM yyyy");
String inputString1 = "23 01 1997";
String inputString2 = "27 04 1997";

try {
    LocalDateTime date1 = LocalDate.parse(inputString1, dtf);
    LocalDateTime date2 = LocalDate.parse(inputString2, dtf);
    long daysBetween = Duration.between(date1, date2).toDays();
    System.out.println("Days: " + daysBetween);
} catch (ParseException e) {
    e.printStackTrace();
}

暦日の計算

上記のアプローチでは、暦日ではなく、一般的な 24 時間の単位として日数をカウントします。暦日については、java.time.temporal.ChronoUnit.DAYS とその between() メソッドを使用します。

long daysBetween = ChronoUnit.DAYS.between(date1, date2);

うるう年とサマータイムの処理

両方の Java元の回答で提供されている 8 時間 API と SimpleDateFormat クラスは、うるう年とサマータイムを自動的に処理します

文字列を日付に変換する

文字列を日付に変換したり、その逆に変換したりすることは避けてください。 SimpleDateFormat は強力なツールですが、各日付を不必要に 2 回解析して書式設定します。 LocalDateTime.parse() メソッドを直接使用する方が効率的です。

以上がJava は 2 つの日付の間の日数を効率的に計算するにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。