반응형
swift 내장 Calendar를 사용해서 날짜를 계산하는 법을 알아보자.
1. D day 계산법
2. 기념일 계산법
let calendar = Calendar.current
let currentDate = Date()
let dateFormatter = DateFormatter()
var daysCount:Int = 0
func calculateDays() {
dateFormatter.dateFormat = "yyyy-MM-dd"
let startDate = dateFormatter.date(from: "2020-09-13")
daysCount = days(from: startDate)
let hundred = calendar.date(byAdding: .day, value: 100, to: startDate)
}
func days(from date: Date) -> Int {
return calendar.dateComponents([.day], from: date, to: currentDate).day + 1
}
먼저 달력 기능과 오늘 날짜를 받아온다.
currentDate를 print 해보니 2021-01-27 07:27:26 +0000 이렇게 나온다.
swift의 Date는 이런 식의 포맷을 가지고 있나보다. 년-월-일 시:분:초 +?
날짜 계산을 할 때 시간은 필요 없으니, 필요한 년-월-일만 받아와 쓸 수 있도록 날짜 포맷을 설정해준다.
기준 날짜로부터 오늘이 몇일 째인지 구해보는 D+day 계산을 위해, 새로운 days() 함수를 만들어준다.
days()는 기준 날짜를 인수로 받아 날짜 계산 후 Int 숫자를 반환하는 메서드로, 기준 날짜부터 1일로 두기 위해서는 + 1 을 해주어야 한다.
새로 만들어준 날짜 포맷에 맞게 기준 날짜를 정해주고, days()의 인수로 넣어주면 D+day 날짜 계산이 된다.
기준 일로부터 100일 째 같은 기념일 계산을 하기 위해서는 calender components의 'day' 형식을 받아와 기준 날짜에 숫자를 더해주면 된다.
728x90
반응형
'Project > ToyProject_Couple App' 카테고리의 다른 글
[Swift iOS] UIImagePickerController로 사진첩에서 사진 가져오기 (0) | 2021.03.11 |
---|---|
[Swift iOS] Open Weather Map API 사용해 날씨 데이터 불러오기 (0) | 2021.02.09 |
[Swift iOS] 캘린더 라이브러리 _FSCalendar 설치 및 사용하기 (0) | 2021.01.23 |
[Swift iOS] Font Awesome 설치 및 아이콘 사용하기 (0) | 2021.01.23 |
[Swift iOS] Bottom Navigation Bar 만들기 + switch views (0) | 2021.01.21 |