Java - Menghitung Selisih Tanggal

[Update]
Mulai JDK 8, menghitung selisih antara dua waktu dapat dilakukan dengan lebih praktis menggunakan tipe data java.time.LocalDate
Dimulai dengan menentukan tanggal awal, misalnya sebagai berikut
LocalDate birthDate = LocalDate.of(1990, 01, 22);
LocalDate.of digunakan untuk menginisialisasi tanggal, dengan memasukkan tiga parameter yaitu tahun, bulan, dan tanggal.
Selanjutnya membuat variabel baru untuk menampung tanggal hari ini
LocalDate now = LocalDate.now();
Selisih antara tanggal awal dengan tanggal hari ini dapat dihitung menggunakan java.time.Period
Period diff = Period.between(birthDate, now);
Selisih antara dua tanggal dapat diperinci menjadi tahun, bulan, hingga hari
System.out.printf("\nDifference is %d years, %d months and %d days old\n\n", diff.getYears(), diff.getMonths(), diff.getDays());

Source code lengkap dapat dilihat sebagai berikut ini

--------------------------------------------
Untuk menghitung selisih antara dua waktu di Java, dapat digunakan tipe data Date.
Buat variabel untuk mengambil tanggal hari ini
Date currentDate = new Date();
Kemudian tentukan tanggal yang akan dihitung selisihnya dengan tanggal hari ini, bisa digunakan String yang diisi dengan tanggal yang akan dihitung
String birthDateInString = "22/01/1990";
Selanjutnya perlu untuk mengubah format tanggal dari String ke tipe Date, gunakan SimpleDateFormat untuk memformat tanggal yang sebelumnya ditulis dalam bentuk String
SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy");
Buat variabel dengan tipe Date untuk menampung tanggal hasil parsing dari String
Date birthDate = null;
Selanjutnya lakukan parsing tanggal dari format String menjadi Date
birthDate = format.parse(birthDateInString);
Setelah tanggal berhasil diparsing ke tipe Date, dapat dicari selisih waktunya dari tanggal hari ini dalam satuan miliseconds
long diff = currentDate.getTime() - birthDate.getTime();
Dari variabel diff dalam satuan miliseconds, selanjutnya bisa dihitung selisih waktu dalam satuan lain
long diffSeconds = diff / 1000;
long diffMinutes = diff / (60 * 1000);
long diffHours = diff / (60 * 60 * 1000);
long diffDays = diff / (24 * 60 * 60 * 1000);
long diffMonths = (diff / (24 * 60 * 60 * 1000)) / 30;
long diffYears = ((diff / (24 * 60 * 60 * 1000)) / 30) / 12;
Untuk diffMonths, nilai yang didapatkan adalah perkiraan karena semua bulan disamakan 30 hari.

Source code lengkap dapat dilihat sebagai berikut ini

Comments

Popular posts from this blog

Contoh Inheritance (Pewarisan) di Java

Deploy CodeIgniter 3 Menggunakan Docker

Physical address dan Logical Address (1)