Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在swift 4中比较日与日的问题_Ios_Swift - Fatal编程技术网

Ios 在swift 4中比较日与日的问题

Ios 在swift 4中比较日与日的问题,ios,swift,Ios,Swift,需要进行比较,以检查日期是否已过日期 我试过这个 let calendar = NSCalendar.current //Get just MM/dd/yyyy from current date let components = calendar.dateComponents([], from: Date()) //Convert to NSDate let pastDates = self.calendar.selectedDates.filter { $0 < calenda

需要进行比较,以检查日期是否已过日期

我试过这个

let calendar = NSCalendar.current

//Get just MM/dd/yyyy from current date
let components = calendar.dateComponents([], from:  Date())

//Convert to NSDate
let pastDates = self.calendar.selectedDates.filter { $0 <  calendar.date(from: components as DateComponents)! }
let calendar=NSCalendar.current
//仅从当前日期获取MM/dd/yyyy
让components=calendar.dateComponents([],from:Date())
//转换为NSDate
让pastDates=self.calendar.selectedDates.filter{$0
更新下一行,为您提供一个
日期
对象

let components = calendar.dateComponents([.month, .day, .year], from:  Date())

当前,您没有在数组中提供任何
日期
组件,因此您将不会获得
日期
对象

更新下一行以提供
日期
对象

let components = calendar.dateComponents([.month, .day, .year], from:  Date())

目前,您没有在数组中提供任何
日期
组件,因此您将不会获得
日期
对象

我不明白您的问题是什么,但希望这能帮助您:

let beforeDateStr = "04/12/2018"
let todayDate = Date()

let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "MM/dd/yyyy"

let beforeDateFormatted = dateFormatter.date(from: beforeDateStr)

if Calendar.current.compare(todayDate, to: beforeDateFormatted!, toGranularity: .day) == .orderedDescending {
    print("before date day is lesser than current date")
} else {
    print("before date day is equal or greater than todays date")
}

我不明白你的问题是什么,但希望这能帮助你:

let beforeDateStr = "04/12/2018"
let todayDate = Date()

let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "MM/dd/yyyy"

let beforeDateFormatted = dateFormatter.date(from: beforeDateStr)

if Calendar.current.compare(todayDate, to: beforeDateFormatted!, toGranularity: .day) == .orderedDescending {
    print("before date day is lesser than current date")
} else {
    print("before date day is equal or greater than todays date")
}

要查找较小或较大的日期,请执行以下操作:

您可以使用以下简单代码:

let differenceBetweenTwoDate = Calendar.current.dateComponents([.day], from: previousDate, to: Date())

    if differenceBetweenTwoDate.day! > 0{

        print("date is bigger")
    }else{

        print("date is smaller")
    }

希望有帮助

要查找较小或较大的日期:

您可以使用以下简单代码:

let differenceBetweenTwoDate = Calendar.current.dateComponents([.day], from: previousDate, to: Date())

    if differenceBetweenTwoDate.day! > 0{

        print("date is bigger")
    }else{

        print("date is smaller")
    }

希望有帮助

这是如何在当前日期和时间中添加小时或天的方法-

calendar.date(byAdding: .hour, value: 1, to: currentDate)
calendar.date(byAdding: .day, value: 7, to: currentDate)
这就是你如何比较两个日期,计算小时、分钟和天数的方法

let calendar = Calendar.current
                    let dateFormatter = DateFormatter()
                    dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss"
                    dateFormatter.timeZone = TimeZone(abbreviation: "UTC")
                    let anyDataTime = dateFormatter.date(from: anotherDateTime)

                    let components = calendar.dateComponents([.minute], from: Date(), to: anyDataTime!)
                    let hour = (Double(components.minute!) / 60.0).rounded()

这就是如何在当前日期和时间中添加小时或天-

calendar.date(byAdding: .hour, value: 1, to: currentDate)
calendar.date(byAdding: .day, value: 7, to: currentDate)
这就是你如何比较两个日期,计算小时、分钟和天数的方法

let calendar = Calendar.current
                    let dateFormatter = DateFormatter()
                    dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss"
                    dateFormatter.timeZone = TimeZone(abbreviation: "UTC")
                    let anyDataTime = dateFormatter.date(from: anotherDateTime)

                    let components = calendar.dateComponents([.minute], from: Date(), to: anyDataTime!)
                    let hour = (Double(components.minute!) / 60.0).rounded()

你能解释一下这个问题吗。?你是否需要比较两个日期,并检查日期是否过期。你没有从日期中得到任何日期成分。你能解释更多关于这个问题吗。?您是否需要比较两个日期并检查日期是否已过?您没有从日期中获取任何日期组件
let pastDates=calendar.selectedDates.filter{calendar.current.compare($0,to:date(),toGranularity:.day)==.orderedAscending}
let pastDates=calendar.selectedDates.filter{Calendar.current.compare($0,to:Date(),toGranularity:.day)==.orderedAscending}