Pada post kali ini, kita akan mempelajari bagaimana cara menghitung selisih hari pada date misalnya hari ini tgl 20 mei dan current yang kita hitung 25 mei maka kita seharusnya mendapatkan hasil 5.
Berikut code yang bisa kamu gunakan :
fun Date.getDifferentDaysFromNow(): Int {
val calendar = Calendar.getInstance().apply {
time = this@getDifferentDaysFromNow
}
val currentCalendar = Calendar.getInstance()
return calendar.get(Calendar.DAY_OF_YEAR) - currentCalendar.get(Calendar.DAY_OF_YEAR)
}
Sedangkan untuk menghitung sebelumnya, kamu bisa gunakan code ini :
fun Date.getDifferentDaysBeforeNow(): Int {
val calendar = Calendar.getInstance().apply {
time = this@getDifferentDaysBeforeNow
}
val currentCalendar = Calendar.getInstance()
return currentCalendar.get(Calendar.DAY_OF_YEAR) - calendar.get(Calendar.DAY_OF_YEAR)
}
Tentu saja kita hanya memutar penggunaan currentCalender dan calender.
Untuk penggunaannya :
date.getDifferentDaysBeforeNow()
Dimana type data value date ini seharunya adalah Date, jika date ini adalah String. Maka kamu perlu melakukan convert string ke Date seperti ini (perhatikan format date string yang kamu gunakan, disini kita menggunakan format UTC yyyy-MM-dd’T’HH:mm:ss.SSS’Z’) :
fun String.toDate(format: String = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'): Date {
try {
if (this.isEmpty()) return Date(Calendar.getInstance().timeInMillis)
val formatter = SimpleDateFormat(format, Constants.locale)
formatter.timeZone = TimeZone.getTimeZone("UTC")
return formatter.parse(this) ?: Date(Calendar.getInstance().timeInMillis)
} catch (e: ParseException) {
return Date(Calendar.getInstance().timeInMillis)
}
}
Nah itu dia, kamu bisa coba guys.
Besok kita bahas code apa lagi nih guys ?