Получение диапазона дат от двух разных дат

У меня есть две даты: начальная и конечная. Я должен быть в состоянии быстро получить все промежуточные дни, учитывая месяц. Проблема в том, что каждая цифра в дате связана с переменной. Причина в том, что я использую 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 будет содержать все промежуточные даты

Другие вопросы по тегам