swift 日期+扩展

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了swift 日期+扩展相关的知识,希望对你有一定的参考价值。

    ///checks the distance between two dates and returns true if there is no distance between them regarding the CalendarFormat
    func checkDateDistanceto(dateToCompare: Date, calendarFormat: CalendarFormat) -> Bool {
        var distance: Int = 1
        switch calendarFormat {
        case .day:
            guard let startDate = self.getFullHour(), let endDate = dateToCompare.getFullHour() else {
                return false
            }
            let dateComponents = (Calendar.current as NSCalendar).components(.hour, from: startDate, to: endDate, options: [])
            if let hour = dateComponents.hour {
                distance = hour
            } else {
                return false
            }
        case .week, .month:
            let dateComponents = (Calendar.current as NSCalendar).components(.day, from: self.startOfDay(), to: dateToCompare.startOfDay(), options: [])
            if let day = dateComponents.day {
                distance = day
            } else {
                return false
            }
        case .year:
            guard let startDate = self.startOfMonth(), let endDate = dateToCompare.startOfMonth() else {
                return false
            }
            let dateComponents = (Calendar.current as NSCalendar).components(.day, from: startDate, to: endDate, options: [])
            if let month = dateComponents.month {
                distance = month
            } else {
                return false
            }
        }
        if distance > 1 {
            return false
        } else {
            return true
        }
    }

以上是关于swift 日期+扩展的主要内容,如果未能解决你的问题,请参考以下文章

swift 日期+扩展

Swift日期比较函数 记录下 Comparing date in Swift

Swift - nextDate()按年搜索

swift DateComponents

swift DateComponents

swift DateComponents