Skip to content

Commit

Permalink
chore: CalendarViewModel에 로직 추가 (#32)
Browse files Browse the repository at this point in the history
  • Loading branch information
AhnSangHee committed Jun 12, 2022
1 parent 236925a commit 17ca65a
Showing 1 changed file with 32 additions and 4 deletions.
36 changes: 32 additions & 4 deletions iOS/airbnb/Present/Main/Calendar/ViewModel/CalendarViewModel.swift
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,40 @@ final class CalendarViewModel {
static let weeks = ["", "", "", "", "", "", ""]

let today = Date() // 오늘의 날짜
let dateOfToday = Date() // 날짜를 계산하는 기준 날짜
var dateOfToday = Date() // 날짜를 계산하는 기준 날짜
let dateComponents = DateComponents()
let dateStringOfToday: String? = nil
let totalDates = [String]() // dates를 담는 배열
let daysCountInMonth = 0 // 해당 월이 며칠까지 있는지
let weekdayStarting = 0 // 시작일
var totalDates = [String]() // dates를 담는 배열
var daysCountInMonth = 0 // 해당 월이 며칠까지 있는지
var weekdayStarting = 0 // 시작일
let calendarManager = CalendarManager()

func previousMonth() {
dateOfToday = calendarManager.minusMonth(date: dateOfToday)
self.calculateMonth()
}

func nextMonth() {
dateOfToday = calendarManager.plusMonth(date: dateOfToday)
self.calculateMonth()
}

// 월별 날짜를 계산하고 뷰에 표시
func calculateMonth() {
let firstDayOfMonth = calendarManager.firstOfMonth(date: dateOfToday) // 첫째날의 전 일.. 예를 들면 7월 1일 이전인 6월 30일 나옴.
let firstWeekday = calendarManager.weekDay(date: firstDayOfMonth) // 해당 월에서 첫번째로 시작하는 요일

daysCountInMonth = calendarManager.calendar.range(of: .day, in: .month, for: firstDayOfMonth)!.count
weekdayStarting = 1 - firstWeekday

self.totalDates.removeAll()

for day in weekdayStarting...daysCountInMonth {
if day < 1 {
self.totalDates.append("")
} else {
self.totalDates.append(String(day))
}
}
}
}

0 comments on commit 17ca65a

Please sign in to comment.