sladuf
200
sladuf
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (83)
    • ๐Ÿ“š Programming (32)
      • Swift (13)
      • JAVA (2)
      • Python (6)
      • SQL (6)
      • Web (5)
    • ๐Ÿ“ฑ iOS (25)
      • Base (7)
      • SwiftUI (9)
      • UIKit (7)
      • ์ธ๊ฐ• & ์ฑ… (2)
    • ๐Ÿ”— Algorithm (20)
      • Python (12)
      • Swift (3)
      • Tip (5)
    • ๐Ÿ—‚ ETC (6)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • Swift
  • ์Šค์œ„ํ”„ํŠธ

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

๊ธ€์“ฐ๊ธฐ ์„ค์ •
hELLO ยท Designed By ์ •์ƒ์šฐ.
sladuf

200

[Swift] Custom Calendar ๋‹ฌ์˜ ๋งˆ์ง€๋ง‰ ๋‚  ๊ตฌํ•˜๊ธฐ
๐Ÿ“ฑ iOS/Base

[Swift] Custom Calendar ๋‹ฌ์˜ ๋งˆ์ง€๋ง‰ ๋‚  ๊ตฌํ•˜๊ธฐ

2023. 1. 16. 01:52

 

 

์ด ๊ธ€์€ 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
    '๐Ÿ“ฑ iOS/Base' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [Swift] ์„œ๋ฒ„์— iOS ์ด๋ฏธ์ง€ ๋ณด๋‚ผ ๋•Œ ์šฉ๋Ÿ‰ ์ด์Šˆ & ํ•ด๊ฒฐ
    • [Swift] json value type์ด ๋‹ฌ๋ผ์ง€๋Š” response์— ๋Œ€์‘ํ•˜์—ฌ API Responder๋งŒ๋“ค๊ธฐ
    • [RxSwift] ๊ฐœ๋…์žก๊ธฐ (Subscribe, Observable, Subject)
    • [Stanford iOS] ์•„ํ‚คํ…์ฒ˜ & MVC
    sladuf
    sladuf

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”