[TIL] 2021.03.22

승아·2021년 3월 22일
0

👩🏻‍💻 오늘 공부한 내용

폰트 설정 ( 참고 사이트 )

  1. 폰트 다운
  • TTF와 OTF의 차이
  • TTF는 윈도우용 OTF는 맥용이라고 알려져있지만 사실 둘 다 호환가능하다고한다.
  • TTF폰트로 맞춰져있는 경우가 많아 맥OS 상에서는 특수문자가 다른것으로 보인다거나 폰트이름이 안보인다거나 하는 경우가 생긴다고 한다.
  • 마음에 드는것을 다운받아주자 !
  1. 다운받은 폰트를 추가
  2. Target Membership을 체크
  3. Resource에 추가되었는지 확인
  4. Info.plist에 폰트 추가
    -Fonts provided by application 추가 후 item에 폰트 이름을 넣어줍니다.

오늘날짜 얻는법 ( 참고 사이트 )

  • DateFormatter() 활용
var formatter = DateFormatter() 
formatter.dateFormat = "yyyy년 MM월 dd일 HH시 mm분 ss초" 
var current_date_string = formatter.string(from: Date()) 
print(current_date_string)

// 필요한 데이터만 출력 가능
var formatter = DateFormatter() 
formatter.dateFormat = "yyyy년" 
var current_date_string = formatter.string(from: Date()) 
print(current_date_string)

var formatter = DateFormatter() 
formatter.dateFormat = "MM월" 
var current_date_string = formatter.string(from: Date()) 
print(current_date_string)

달력 만들기 ( 참고 사이트 )

var numOfDaysInMonth: [Int] = [31, 30, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]

func setupCalendar(_ currentYear: Int, _ currentMonth: Int) -> [Int]{
    let currentMonthIndex = currentMonth - 1 // month 리턴이 (1 ~ 12)라 1을 빼준다

    // 윤년 체크
    if currentYear % 4 == 0 {
        numOfDaysInMonth[currentMonthIndex] = 29
    }
    
    var day: [Int] = []
    // 1일의 요일값을 구해준다.
    let firstWeekDay = getDayOfWeek("\(currentYear)-\(currentMonth)") ?? 0
    
    // 시작하는 요일 전에 남는 공간을 0으로 채워준다
    for _ in 1...firstWeekDay{
        day.append(0)
    }
    
    // 해당 요일만큼 넣준다.
    for i in 1...numOfDaysInMonth[currentMonthIndex]{
        day.append(i)
    }
    
    return day
}

func getDayOfWeek(_ today:String) -> Int? {
    let formatter  = DateFormatter()
    formatter.dateFormat = "yyyy-MM"
    guard let todayDate = formatter.date(from: today) else { return nil }
    let myCalendar = Calendar(identifier: .gregorian)
    let weekDay = myCalendar.component(.weekday, from: todayDate)
    // Sun = 1, Mon = 2, Tue = 3 ...
    return weekDay - 1
}

print(setupCalendar(2021, 3))

0개의 댓글