比较Swift中的日期非常简单,很容易理解.例如,它可以用单行写入
if date1 > date2
Run Code Online (Sandbox Code Playgroud)
但我想要检查Date1是否恰好是3年或(X)年小于或大于Date2.
如何使用swift完成?
你可以试试这个
let components = Calendar.current.dateComponents([.year], from: Date(), to: secondDate)
print(components.year)
Run Code Online (Sandbox Code Playgroud)
这应该做你要问的:
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)