D-Day 계산 어플 만들기
var calendar_start = Calendar.getInstance()
var calendar_end = Calendar.getInstance()
findViewById<Button>(R.id.btn_start).setOnClickListener {
// < 1 > datepickerdialog에 표시할 달력 (Calendar.getInstance()에는 현재 날짜정보 들어있음)
val today = Calendar.getInstance()
val year = today.get(Calendar.YEAR)
val month = today.get(Calendar.MONTH)
val day = today.get(Calendar.DATE)
val dlg = DatePickerDialog(this, object : DatePickerDialog.OnDateSetListener {
override fun onDateSet(view: DatePicker?, year: Int, month: Int, dayOfMonth: Int) {
// < 2 > picker에서 선택한 날짜로 설정
calendar_start.set(year, month + 1, dayOfMonth)
}
// < 3 > datepicker가 처음 떴을 때 오늘 날짜가 보이도록 설정
}, year, month, day)
dlg.show()
}
1. Calendar는 추상 클래스이기 때문에 객체를 직접 생성할 수 없고 getInstance() 함수를 통해 완전히 구현된 클래스의 인스턴스를 얻어야 한다.
(Calendar.getInstance() => 현재시간을 담고있는 Calendar 객체를 리턴)
2. 사용자가 picker에서 선택한 날짜로 시작 날짜를 설정해준다.
3. datepicker 가 처음 떴을 때 보일 날짜를 적어준다.
//milliseconds -> day 로 변환
val dday =
TimeUnit.MILLISECONDS.toDays(calendar_end.timeInMillis - calendar_start.timeInMillis)