이번에는 안드로이드 날씨앱을 구현하는 중에 요일이 필요하여 요일을 구하는 방법을 알아보았습니다.
1. 현재 날짜의 요일 구하는 방법
val currentDate = LocalDate.now()
// 현재 날짜의 요일 가져오기
val dayOfWeek: DayOfWeek = currentDate.dayOfWeek
println("현재 요일: $dayOfWeek") // 현재 요일: SATURDAY
1번 방법은 LocalDate를 가져와서 DayOfWeek()에서 제공하는 dayOfWeek을 이용하는 방법입니다.
2 - 1. 입력 데이터를 통해서 요일을 구하는 방법
val inputString = "20231216"
// SimpleDateFormat을 사용하여 Date 객체로 변환
val sdf = SimpleDateFormat("yyyyMMdd", Locale.getDefault())
val date: Date = sdf.parse(inputString)
// Date 객체를 LocalDate로 변환
val localDate: LocalDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate()
// LocalDate에서 요일 가져오기
val dayOfWeek: DayOfWeek = localDate.dayOfWeek
// 요일 출력
println("$inputString 의 요일: $dayOfWeek") // 20231216 의 요일: SATURDAY
2 - 1번 방법은 주어진 입력을 LocalDate로 변환하여 1번의 방법과 같이 DayOfWeek을 사용해서 얻는 방법입니다.
2 - 2. 입력 데이터를 통해서 요일을 구하는 방법
val date = "20231216"
// 입력 문자열을 파싱하기 위한 SimpleDateFormat 객체를 생성합니다. 이 객체는 "yyyyMMdd" 형식의 날짜를 파싱할 수 있도록 설정
val input = SimpleDateFormat("yyyyMMdd")
// 출력 포맷을 지정하는 SimpleDateFormat 객체를 생성합니다. 여기서 "E"는 요일을 나타내는 포맷
val output = SimpleDateFormat("E")
println("$date 의 요일 : ${output.format(input.parse(date))}") //20231216 의 요일: 토
2 - 2번 방법은 SimpleDateFormat에서 제공해 주는 "E"를 사용해서 요일을 받아오는 방법입니다.
3. Calendar을 사용해서 요일을 구하는 방법
val currentDate1 = Date()
val calendar = Calendar.getInstance()
calendar.time = currentDate1
println("현재 요일: ${calendar[Calendar.DAY_OF_WEEK]}") // 현재 요일: 1
// 1 : 일요일, 2: 월요일 ..., 7: 토요일
Calendar을 사용해서 결과를 얻어오는 방법입니다. 이 방법은 숫자로 리턴해줍니다.
이렇게 요일을 구하는 방법은 많이 있습니다. 여기서 자기가 편한대로 조금씩 수정하면서 사용하면 될 것 같습니다.
반응형
'Kotlin' 카테고리의 다른 글
[Kotlin] 배열, 리스트 자르기 (2) | 2024.01.04 |
---|---|
[Kotlin] sumOf 함수를 알아보자. (0) | 2023.12.24 |
[Kotlin] Collect vs CollectLatest에 대하여 알아보자. (0) | 2023.12.20 |
[Kotlin] 기초 문법 : flatten() 함수 (0) | 2023.12.16 |
[Kotlin] tailrec 꼬리 재귀 함수에 대하여 알아보기 (0) | 2023.12.08 |