Skip to content

fetch CurrentWeek #15

Description

@dezxcvb

전체 TaskViewModel 코드

import SwiftUI

class TaskViewModel: ObservableObject {
    @Published var currentWeek: [Date] = []
    @Published var currentDate: Date = Date()
    @Published var filteredTask: [Task]?
    @Published var addNewTask: Bool = false
    @Published var editTask: Task?
    
    init() {
        fetchCurrentWeek()
    }
    
    func fetchCurrentWeek() {
        let today = Date()
        let calendar = Calendar.current
        
        guard let firstWeekDay = calendar.date(from: calendar.dateComponents([.yearForWeekOfYear, .weekOfYear], from: today)) else {
            return
        }
        let weekdayRange = calendar.range(of: .weekday, in: .weekOfYear, for: today)!
        let days = (weekdayRange.lowerBound..<weekdayRange.upperBound).compactMap { calendar.date(byAdding: .day, value: $0 - 1, to: firstWeekDay) }
        currentWeek = days
    }
    
    func extractDate(date: Date, format: String) -> String {
        let formatter = DateFormatter()
        formatter.dateFormat = format
        return formatter.string(from: date)
    }
    
    func isToday(date: Date) -> Bool {
        let calender = Calendar.current

        return calender.isDate(currentDate, inSameDayAs: date)
    }
    
    func isCurrentHour(date: Date) -> Bool {
        let calender = Calendar.current
        let hour = calender.component(.hour, from: date)
        let currentHour = calender.component(.hour, from: Date())
        return hour == currentHour
    }
}

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions