Получение диапазона дат от двух разных дат
У меня есть две даты: начальная и конечная. Я должен быть в состоянии быстро получить все промежуточные дни, учитывая месяц. Проблема в том, что каждая цифра в дате связана с переменной. Причина в том, что я использую Date Picker с диапазоном, но все значения задаются отдельно (например, startDay, startMonth, startYear и endDay, endMonth, endYear). Итак, мне нужно получить все даты между этими датами. Это должно выглядеть так:
"24/02/2018|25/02/2018|26/02/2018|27/02/2018|28/02/2018|01/03/2018"
Посмотрите на это: 01/03/2018.
РЕШЕНИЕ:
fun getDaysBetweenDates(startdate: Date, enddate: Date): List<String> {
val dates = ArrayList<String>()
val calendar = GregorianCalendar()
calendar.time = startdate
while (calendar.time.before(enddate)) {
val result = calendar.time
val formatter = SimpleDateFormat("dd/MM/yyyy")
val today = formatter.format(result)
today.split("|")
dates.add(today)
calendar.add(Calendar.DATE, 1)
}
return dates
}
Что ж, спасибо за помощь OleV.V. и asm0dey.
1 ответ
Похоже, что вы можете достичь желаемого с помощью простого цикла while - просто добавляйте дни один за другим к начальной дате, пока не достигнете конца диапазона дат.
Так это будет выглядеть
val interimDates = arrayListOf<Date>()
var initial: Date = Date()// obtained earlier
val c = Calendar.getInstance()
c.time = initial
while (initial < finalDate /*also obtained earlier*/) {
c.add(Calendar.DATE, 1)
interimDates.add(c.time)
initial = c.time
}
В конце interimDates
будет содержать все промежуточные даты