forked from woowacourse/android-movie-ticket
-
Notifications
You must be signed in to change notification settings - Fork 0
/
PlayingTimes.kt
29 lines (24 loc) · 910 Bytes
/
PlayingTimes.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package woowacourse.movie
import java.time.DayOfWeek
import java.time.LocalDate
import java.time.LocalTime
class PlayingTimes(val startDate: LocalDate, val endDate: LocalDate) {
private val _times: MutableMap<LocalDate, List<LocalTime>> = mutableMapOf()
val times: Map<LocalDate, List<LocalTime>>
get() = _times.toMap()
init {
var date = startDate
while (!date.isEqual(endDate.plusDays(1))) {
_times[date] = makeTimes(date)
date = date.plusDays(1)
}
}
private fun makeTimes(date: LocalDate) = buildList<LocalTime> {
var startHour = 10
if (isWeekends(date.dayOfWeek)) startHour = 9
for (hour in startHour until 24 step 2) {
add(LocalTime.of(hour, 0))
}
}
private fun isWeekends(dayOfWeek: DayOfWeek): Boolean = dayOfWeek == DayOfWeek.SATURDAY || dayOfWeek == DayOfWeek.SUNDAY
}