ホームページ > Java > &#&チュートリアル > Java 8 は、負の値を処理しながら、2 つの LocalDate 間の時間差をどのように正確に計算できるでしょうか?

Java 8 は、負の値を処理しながら、2 つの LocalDate 間の時間差をどのように正確に計算できるでしょうか?

Mary-Kate Olsen
リリース: 2024-12-08 05:55:11
オリジナル
356 人が閲覧しました

How Can Java 8 Accurately Calculate Temporal Differences Between Two LocalDates, Handling Negative Values?

Java 8: 2 つの LocalDates 間の時間的差異の決定

年、月、日、時間で表される 2 つの LocalDateTime オブジェクト間の差異の計算、分、秒を計算するのは複雑なタスクになる可能性があります。 1 つのアプローチは、Java 8 で導入された Period クラスと Duration クラスを利用することです。ただし、コードが示すように、差異に負の値が含まれる場合、不正確な結果が生じる可能性があります。

問題

コードは、年、月、日を表す 2 つの日付の間の期間を計算します。次に、時差を秒単位で計算し、これらの秒を時、分、秒に変換します。ただし、「開始」日付が「終了」日付より大きい場合に発生する可能性のある負の値は考慮されていません。

解決策

対処方法この問題では、ChronoUnit 列挙型を使用して時差を直接決定できます。 ChronoUnit は、2 つの LocalDateTime オブジェクト間の分や時間などの時間単位を計算する便利な方法を提供します。

ChronoUnit を使用して更新されたコードは次のとおりです。

import java.time.ChronoUnit;
import java.time.LocalDateTime;

public class Main {

    public static void main(String[] args) {
        LocalDateTime toDateTime = LocalDateTime.of(2014, 9, 9, 19, 46, 45);
        LocalDateTime fromDateTime = LocalDateTime.of(1984, 12, 16, 7, 45, 55);

        long years = ChronoUnit.YEARS.between(fromDateTime, toDateTime);
        long months = ChronoUnit.MONTHS.between(fromDateTime, toDateTime);
        long days = ChronoUnit.DAYS.between(fromDateTime, toDateTime);
        long hours = ChronoUnit.HOURS.between(fromDateTime, toDateTime);
        long minutes = ChronoUnit.MINUTES.between(fromDateTime, toDateTime);
        long seconds = ChronoUnit.SECONDS.between(fromDateTime, toDateTime);

        System.out.println(years + " years " + months + " months " + days + " days " +
                hours + " hours " + minutes + " minutes " + seconds + " seconds.");
    }
}
ログイン後にコピー

この変更により、コードは次のようになります。 2 つの LocalDateTime オブジェクト間の時間的な差を正確に計算します。

以上がJava 8 は、負の値を処理しながら、2 つの LocalDate 間の時間差をどのように正確に計算できるでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート