Swift 4比较日期

And*_*eem 0 ios swift

比较Swift中的日期非常简单,很容易理解.例如,它可以用单行写入

if date1 > date2
Run Code Online (Sandbox Code Playgroud)

但我想要检查Date1是否恰好是3年或(X)年小于或大于Date2.

如何使用swift完成?

Sh_*_*han 6

你可以试试这个

 let components = Calendar.current.dateComponents([.year], from: Date(), to: secondDate)
 print(components.year)
Run Code Online (Sandbox Code Playgroud)


Lor*_*eto 5

这应该做你要问的:

func dateIsNYearsBeforeDate(date1: Date, date2: Date, nYears: Int) -> Bool {
    let calendar = Calendar.current

    // Extract the components of the dates
    let date1Components = calendar.dateComponents([.year, .month, .day, .hour, .minute, .second], from: date1)
    let date2Components = calendar.dateComponents([.year, .month, .day, .hour, .minute, .second], from: date2)

    // Check if the dates are in the same month and day
    let isSameMonth = date1Components.month == date2Components.month
    let isSameDay = date1Components.day == date2Components.day

    // Skip this if you want to check only the date and not the time
    let isSameHour = date1Components.hour == date2Components.hour
    let isSameMinute = date1Components.minute == date2Components.minute
    let isSameSecond = date1Components.second == date2Components.second

    let yearsDifference = date2Components.year! - date1Components.year!

    return isSameMonth && isSameDay && isSameHour && isSameMinute && isSameSecond && yearsDifference == nYears
}
Run Code Online (Sandbox Code Playgroud)