[TIL] #34 Date Picker Dialog - Specifying a Date Range

Yeon·2023년 9월 7일
0

내일배움캠프 - Kotlin

목록 보기
45/58
post-thumbnail

📅 Date Picker 날짜 범위 지정

1. maxDate

미래를 쓰지 않고 오늘을 포함한 과거 날짜만 불러오려면 maxDate를 사용하여 DatePicker에 최대 날짜를 설정했다!

생년월일 같이 미래 날짜가 필요 없을때 사용하면 좋다!

val calendar = Calendar.getInstance()
var selectedYear = calendar.get(Calendar.YEAR)
var selectedMonth = calendar.get(Calendar.MONTH)
var selectedDay = calendar.get(Calendar.DAY_OF_MONTH)

// 최대 날짜 설정
val maxDateCalendar = Calendar.getInstance()
maxDateCalendar.set(selectedYear, selectedMonth, selectedDay, 0, 0, 0)
datePicker.maxDate = maxDateCalendar.timeInMillis

2. minDate

만약 과거를 쓰지 않고 미래 날짜만 쓰고 싶다면 minDate를 사용하여 아래와 같이 최소 날짜를 설정하면 된다!

val calendar = Calendar.getInstance()
var selectedYear = calendar.get(Calendar.YEAR)
var selectedMonth = calendar.get(Calendar.MONTH)
var selectedDay = calendar.get(Calendar.DAY_OF_MONTH)

// 최소 날짜 설정
val minDateCalendar = Calendar.getInstance()
minDateCalendar.set(selectedYear, selectedMonth, selectedDay, 0, 0, 0)
datePicker.minDate = minDateCalendar.timeInMillis

3. maxDate + minDate

만약 일정 기간의 날짜만 사용하고 싶다면 최대 날짜와 최소 날짜 둘 다 써주면 된다!

최소 날짜를 오늘 날짜로, 최대날짜는 1년 후로 지정한 코드이다!

val calendar = Calendar.getInstance()
var selectedYear = calendar.get(Calendar.YEAR)
var selectedMonth = calendar.get(Calendar.MONTH)
var selectedDay = calendar.get(Calendar.DAY_OF_MONTH)

// 최소 날짜 설정
val minDateCalendar = Calendar.getInstance()
minDateCalendar.set(selectedYear, selectedMonth, selectedDay, 0, 0, 0)
datePicker.minDate = minDateCalendar.timeInMillis

// 최대 날짜 설정
val maxDateCalendar = Calendar.getInstance()
maxDateCalendar.set(selectedYear+1, selectedMonth, selectedDay, 0, 0, 0)
datePicker.maxDate = maxDateCalendar.timeInMillis

4. 결과물

아래는 최소 날짜 설정, 최대 날짜 설정, 둘 다 설정한 코드를 순서대로 실행한 것이다.

example

0개의 댓글