У меня есть следующий код, чтобы получить разницу в дате.Однако, так как я новичок в kotlin, я не знаю другого способа написать следующий код в уменьшенном / компактном виде ... Есть ли способ сделать этот большой код маленьким?Некоторый пример кода или подсказка будут прекрасны!Я хотел бы услышать от вас!
fun getDiffWeek(year1: Int, month1: Int): Int {
return getDiffWeek(year1, month1, 1)
}
fun getDiffWeek(year1: Int, month1: Int, day1: Int): Int {
val calendar = GregorianCalendar.getInstance() as GregorianCalendar
calendar.set(Calendar.YEAR, year1)
calendar.set(Calendar.MONTH, month1 - 1)
calendar.set(Calendar.DAY_OF_MONTH, day1)
calendar.set(Calendar.HOUR_OF_DAY, 0)
calendar.set(Calendar.MINUTE, 0)
calendar.set(Calendar.SECOND, 0)
calendar.set(Calendar.MILLISECOND, 0)
val currCalendar = GregorianCalendar.getInstance() as GregorianCalendar
currCalendar.timeInMillis = System.currentTimeMillis()
currCalendar.set(Calendar.HOUR_OF_DAY, 0)
currCalendar.set(Calendar.MINUTE, 0)
currCalendar.set(Calendar.SECOND, 0)
currCalendar.set(Calendar.MILLISECOND, 0)
val diffTime = calendar.timeInMillis - currCalendar.timeInMillis
return if (diffTime < 0) {
-1
} else Math.ceil(diffTime / ONE_WEEK.toDouble()).toInt()
}