Rumah >Java >javaTutorial >Bagaimana untuk Mengira Perbezaan Hari dengan Tepat antara Dua Tarikh Masa Joda?

Bagaimana untuk Mengira Perbezaan Hari dengan Tepat antara Dua Tarikh Masa Joda?

Patricia Arquette
Patricia Arquetteasal
2024-12-01 14:59:15936semak imbas

How to Accurately Calculate the Day Difference between Two Joda-Time Dates?

Mengira Perbezaan Hari antara Tarikh-Masa Joda

Dalam Masa Joda, menentukan perbezaan antara dua tarikh dalam hari memerlukan pertimbangan percanggahan masa . Untuk mengira bilangan hari dengan tepat, adalah perlu untuk mengabaikan jam, minit dan saat.

Penyelesaian Asal Menggunakan Days.daysBetween

Kaedah Days.daysBetween muncul untuk menyediakan penyelesaian yang sesuai, tetapi ia menghadapi masalah apabila satu tarikh pada waktu petang dan satu lagi pada waktu pagi. Ini disebabkan oleh keadaan di mana "permulaan hari" boleh merujuk secara samar-samar kepada 1 pagi berbanding tengah malam dalam beberapa zon waktu.

Pengiraan Tepat menggunakan LocalDate

Untuk mengelakkan kekaburan ini , adalah disyorkan untuk menggunakan LocalDate dan bukannya DateTime bersamaan dengan Days.daysBetween. LocalDate mewakili tarikh tanpa maklumat masa, memastikan bahawa hasilnya mencerminkan perbezaan dalam hari sahaja.

Contoh

Pertimbangkan contoh berikut:

DateTime start = new DateTime(2013, 10, 20, 5, 0, 0, DateTimeZone.forID("America/Sao_Paulo"));
DateTime end = new DateTime(2013, 10, 21, 13, 0, 0, DateTimeZone.forID("America/Sao_Paulo"));

int daysBetween = Days.daysBetween(start.toLocalDate(), end.toLocalDate()).getDays();

System.out.println(daysBetween); // Prints 1

Kesimpulan

Dengan menggunakan LocalDate, perbezaan hari pengiraan menjadi tepat, menghapuskan ketidakkonsistenan yang disebabkan oleh variasi zon waktu dan potensi tarikh mula dan tamat untuk menjangkau hari yang berbeza disebabkan perbezaan masa.

Atas ialah kandungan terperinci Bagaimana untuk Mengira Perbezaan Hari dengan Tepat antara Dua Tarikh Masa Joda?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn