Rumah >Java >javaTutorial >Bagaimanakah Java 8 Boleh Mengira Perbezaan Antara Dua Kejadian LocalDateTime dalam Tahun, Bulan, Hari, Jam dan Minit?
Java 8: Mengira Perbezaan Antara Dua Kejadian LocalDateTime dalam Berbilang Unit
Mengira perbezaan antara dua kejadian LocalDateTime dalam pelbagai unit masa boleh hadir cabaran. Satu pendekatan ialah memanfaatkan kelas Tempoh dan Tempoh yang diperkenalkan di Java 8.
Cabaran dengan Pelaksanaan Awal
Kod yang disediakan cuba mengira perbezaan dengan menggabungkan Tempoh ( yang mengendalikan tahun, bulan dan hari) dan Tempoh (yang mengurus jam, minit dan saat). Walau bagaimanapun, terdapat beberapa ketidakkonsistenan dalam pengiraan:
Diperbaiki Pengiraan
Untuk memastikan pengiraan yang tepat, pertimbangkan untuk menggunakan enum ChronoUnit, yang menyediakan kaedah untuk mengekstrak unit masa tertentu daripada tarikh dan masa. Berikut ialah versi yang dipertingkatkan:
import java.time.ChronoUnit; import java.time.LocalDateTime; import java.time.Period; public class CalculateLocalDateTimeDifference { 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); Period period = Period.between(fromDateTime.toLocalDate(), toDateTime.toLocalDate()); long minutes = ChronoUnit.MINUTES.between(fromDateTime, toDateTime); long hours = ChronoUnit.HOURS.between(fromDateTime, toDateTime); System.out.println(period.getYears() + " years " + period.getMonths() + " months " + period.getDays() + " days " + hours + " hours " + minutes + " minutes."); } }
Penjelasan
Algoritma yang dipertingkatkan ini memberikan hasil yang tepat untuk perbezaan masa positif dan negatif.
Atas ialah kandungan terperinci Bagaimanakah Java 8 Boleh Mengira Perbezaan Antara Dua Kejadian LocalDateTime dalam Tahun, Bulan, Hari, Jam dan Minit?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!