使用日历获取准确的天数 Swift?

Using Calendar to get exact amount of days Swift?

我是 swift 的新手,我正在尝试使用 Swift 中的内置日历来找到合适的天数并将其解析为我的日期变量,我该怎么做去做? Atm 我的时间跨度只是硬编码,但从长远来看并不可靠。我需要返回示例 1 个月。

   switch data {
                case .failure(_):
                    print("No access to quote data")
                    break
                        
                case .success(let data):
                    let startDate = Date()
                        cropClient.delegate = auth
                        var timeSpan: Int
                        var date = Calendar.current.date(byAdding: .day, value: timeSpan, to: startDate)
                        
                        switch configuration.timeSpan {
                            case .unknown:
                                return
                            case .week:
                                timeSpan = -7
                            case .1month:
                                timeSpan = -30
                            case .3months:
                                timeSpan = -90
                            case .year:
                                timeSpan = -365
                        }
    }

解决方案是您的switch语句需要确定两个变量——日历单位和数量,而不仅仅是数量。这样,无论一个月或一年中有多少天,您都将获得正确的日期。

let startDate = Date()
        
let timeSpan: Int
let calendarUnit: Calendar.Component
        
switch configuration.timeSpan {
case .unknown:
    return
case .week:
    timeSpan = -7
    calendarUnit = .day
case .oneMonth:
    timeSpan = -1
    calendarUnit = .month
case .threeMonths:
    timeSpan = -3
    calendarUnit = .month
case .year:
    timeSpan = -1
    calendarUnit = .year
}
let date = Calendar.current.date(byAdding: calendarUnit, value: timeSpan, to: startDate)