У меня есть следующая логика условий, и я хочу упростить ее, есть ли способ сделать ее лучше, не слишком много || &&? Некоторые образцы или примеры будут прекрасны! Я хотел бы услышать от вас!
Логика, которую я хочу достичь
с 0:00 и за 3 дня до месяца рождения,
месяц рождения один раз или 31 января и
подарок проходит каждый 29-31 декабря
val birthYear = child.birthYear!!.toInt()
val birthMonth = child.birthMonth!!.toInt()
val date = DateTime()
val year = date.year
val month = date.month
val day = date.day
val maxDayOfMonth = date.maxDayOfMonth
class DateTime {
private var mCalendar: Calendar = Calendar.getInstance().also { it.clear() }
val year: Int
get() = mCalendar.get(Calendar.YEAR)。。。。。
Ниже приведена логика, которую я хочу сделать проще
return date.year > child.birthYear!!.toInt() &&
((birthMonth == 1 && month == 12 || birthMonth - 1 == month)
&& day >= maxDayOfMonth - 2 || birthMonth == month)