Я не уверен, правильно ли я понял вашу проблему, но все равно попробую.
По сути, у вас есть матрица NxM
(где N=7
и M=weeks.size
), гдекаждая строка представляет неделю.
Предположим, у вас есть день с индексом (i0,j0)
, который вы хотите переместить на k
позиций вперед (или назад, если k
отрицательно). Так что вам просто нужно вычислить новый целевой индекс (i1,j1)
на основе этого ввода.
Легко видеть, что (i1,j1) = (i0 + k/N, j0 + k%N)
fun getNewPosition(src: Point, k: Int): Point {
return Point(src.x + k/7, src.y + k%7)
}
point.x
- это число недели, а point.y
- это число дней.
Теперь вам нужно решить, что вам делать
, если у вас нет этого индекса в вашей структуре,
, если у вас уже есть день с этим индексом.