Rumah >Java >javaTutorial >Bagaimana untuk Mengira Perbezaan Tarikh dengan Cekap dalam Android/Java?

Bagaimana untuk Mengira Perbezaan Tarikh dengan Cekap dalam Android/Java?

Barbara Streisand
Barbara Streisandasal
2024-11-21 06:02:09918semak imbas

How to Efficiently Calculate the Date Difference in Android/Java?

Menentukan Perbezaan Tarikh dalam Android/Java

Mengira perbezaan antara dua tarikh adalah keperluan biasa dalam pelbagai aplikasi. Dalam pengaturcaraan Android, terdapat berbilang pendekatan untuk menentukan bilangan hari antara tarikh semasa dan tarikh tertentu dalam format "yyyy/mm/dd."

Menggunakan Perpustakaan JodaTime

Untuk penyelesaian yang boleh dipercayai dan fleksibel, pertimbangkan untuk menggunakan perpustakaan JodaTime. Ia menyediakan keupayaan pengendalian tarikh dan manipulasi yang mantap. Berikut ialah contoh:

import org.joda.time.LocalDate;
import org.joda.time.Period;
import org.joda.time.PeriodType;

LocalDate today = LocalDate.now();
LocalDate thatDay = LocalDate.parse("1985/08/25");

Period period = new Period(thatDay, today, PeriodType.days());
long days = period.getDays();

Pendekatan ini menggunakan JodaTime untuk menghuraikan rentetan tarikh yang diberikan dan mengira perbezaan hari dari hari ini.

Penghampiran Manual

Sebagai alternatif, anda boleh mencuba anggaran manual menggunakan langkah berikut:

  • Hilang rentetan tarikh yang diberikan ke dalam nilai integer individu untuk tahun, bulan dan hari.
  • Buat dua Kalendar kejadian, satu untuk tarikh semasa dan satu untuk tarikh yang diberikan, dan tetapkan medan masing-masing.
  • Kira perbezaan masa dalam milisaat antara dua kejadian Kalendar.
  • Bahagikan perbezaan masa dengan bilangan milisaat dalam sehari (24 60 60 * 1000) untuk mendapatkan anggaran bilangan hari.

Contoh Kod:

SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MM/dd");
Date d = formatter.parse("1985/08/25");

Calendar thatDay = Calendar.getInstance();
thatDay.setTime(d);
Calendar today = Calendar.getInstance();

long diff = today.getTimeInMillis() - thatDay.getTimeInMillis();
long days = diff / (24 * 60 * 60 * 1000);

Nota: Anggaran manual ini mungkin tidak tepat sepenuhnya untuk tarikh yang hampir dengan sempadan tahun atau bulan.

Atas ialah kandungan terperinci Bagaimana untuk Mengira Perbezaan Tarikh dengan Cekap dalam Android/Java?. 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
Artikel sebelumnya:Skim Mengenai ClojureArtikel seterusnya:Skim Mengenai Clojure