์ด ๊ธ์ UI๋ฅผ ์ ์ธํ๊ณ ๋ ์ง ๊ณ์ฐ์ ํ๋ ๋ก์ง๋ง ๋ด๊ณ ์์ต๋๋ค
Custom Calendar๋ฅผ ๋ง๋ค๋ค๋ณด๋ ํด๋นํ๋ ๋ฌ์ ๋ง์ง๋ง ๋ ์ด ์ธ์ ์ธ์ง ๊ณ์ฐํด์ผ ํ๋ค.
์๊ณ ๋ฆฌ์ฆ ์ฒ๋ผ ์ ๊ทผํ๋ฉด ์ค ๋ฌ๋ ๊ณ์ฐํด์ค์ผ ํ๊ณ ์๋ ์ธก๋ฉด์์๋ ๋นํจ์จ์ ์ด๋ผ๊ณ ์๊ฐํด์
foundation์์ ์๋ calendar๋ผ๋ ๊ตฌ์กฐ์ฒด๋ฅผ ์ฌ์ฉํด์ ๋ง๋ค์๋ค!
๋จผ์ ๋ ์ง ๊ณ์ฐ์ ํ์ํ Calendar์ DateFormatter๋ฅผ ๋ง๋ค์ด์ฃผ์
let calendar = Calendar(identifier: .gregorian)
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
์ฒซ ๋ ์ ๋ฌด์กฐ๊ฑด 1์ผ์ด๋๊น ์ง์ ์ ๋ ฅํด์ค๋ค
let st = dateFormatter.date(from: "\(year)-\(month)-01")!
๋ง์ง๋ง ๋ ์ ๊ตฌํ๋ ๋ฐฉ๋ฒ์ ๊ตฌํ๊ณ ์ ํ๋ ๋ฌ์ ๋ค์ ๋ฌ 1์ผ์ ๊ตฌํด์ ๋นผ ์ค ๊ฒ์ด๋ค
(ex. 2์1์ผ - 1์1์ผ = 31์ผ)
// ๋ค์๋ฌ ๊ตฌํ๊ธฐ
let end = calendar.date(byAdding: .month, value: +1, to: st)!
let component = calendar.dateComponents([.day], from: st, to: end)
component.day // end-st
full code
let formatter = DateFormatter()
let calendar = Calendar(identifier: .gregorian)
func lastDay(year: String, month: String) -> Int?{
formatter.dateFormat = "yyyy-MM-dd"
let st = formatter.date(from: "\(year)-\(month)-01")!
let end = calendar.date(byAdding: .month, value: +1, to: st)!
let result = calendar.dateComponents([.day], from: st, to: end)
guard let day = result.day else {
return nil
}
return day
}
๋ ์ข์ ๋ฐฉ๋ฒ ์์ผ๋ฉด ๊ณต์ ํด์ฃผ์ธ์ ~~ ๐
'๐ฑ iOS > Base' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Swift] ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ NetworkManager๋ง๋ค๊ธฐ (feat. Generic) (3) | 2023.05.05 |
---|---|
[Swift] ์๋ฒ์ iOS ์ด๋ฏธ์ง ๋ณด๋ผ ๋ ์ฉ๋ ์ด์ & ํด๊ฒฐ (0) | 2023.03.23 |
[Swift] json value type์ด ๋ฌ๋ผ์ง๋ response์ ๋์ํ์ฌ API Responder๋ง๋ค๊ธฐ (0) | 2023.02.12 |
[RxSwift] ๊ฐ๋ ์ก๊ธฐ (Subscribe, Observable, Subject) (0) | 2023.02.04 |
[Stanford iOS] ์ํคํ ์ฒ & MVC (0) | 2022.05.05 |